📄 form.asm
字号:
.model small
.stack
.data
str1 db 0dh,0ah,'Please give a choice:',0dh,0ah,'$'
str2 db '0-exit,1-[],2-|\,3-\|',0dh,0ah,'$'
shift db 0dh,0ah,'$'
.code
.startup
go: mov ah,9
lea dx,str1
int 21h
mov ah,9
lea dx,str2
int 21h
first: mov ah,1
int 21h
cmp al,'0'
jz last
cmp al,'1'
jz loop1
cmp al,'2'
jz loop2
cmp al,'3'
jz loop3
mov ah,9
lea dx,shift
int 21h
jmp first
loop1: mov ah,9
lea dx,shift
int 21h
call form1
jmp go
loop2: mov ah,9
lea dx,shift
int 21h
call form2
jmp go
loop3: mov ah,9
lea dx,shift
int 21h
call form3
jmp go
last: .exit 0
form1 proc
push ax
push bx
push cx
push dx
mov cl,1h
mov ch,cl
mov bl,0h
do1: mov ah,2
mov bh,ch
add bh,30h
mov dl,bh
int 21h
mov ah,2
mov dl,'*'
int 21h
mov ah,2
mov bh,cl
add bh,30h
mov dl,bh
int 21h
mov ah,2
mov dl,'='
int 21h
mov al,ch
mul cl
mov bh,10
div bh
mov dh,ah
cmp al,0
jz crlf1
mov ah,2
mov dl,al
add dl,30h
int 21h
jmp next1
crlf1: mov ah,2
mov dl,' '
int 21h
next1: mov ah,2
mov dl,dh
add dl,30h
int 21h
mov ah,2
mov dl,' '
int 21h
inc bl
cmp bl,9h
jnz a1
mov bl,0
mov ah,9
lea dx,shift
int 21h
a1: cmp ch,cl
jz b1
inc cl
jmp do1
b1: inc ch
cmp ch,9h
ja c1
mov cl,1h
jmp do1
c1: pop dx
pop cx
pop bx
pop ax
ret
form1 endp
form2 proc
push ax
push bx
push cx
push dx
mov cl,1h
mov ch,cl
do2: mov ah,2
mov bh,ch
add bh,30h
mov dl,bh
int 21h
mov ah,2
mov dl,'*'
int 21h
mov ah,2
mov bh,cl
add bh,30h
mov dl,bh
int 21h
mov ah,2
mov dl,'='
int 21h
mov al,ch
mul cl
mov bh,10
div bh
mov dh,ah
cmp al,0
jz crlf2
mov ah,2
mov dl,al
add dl,30h
int 21h
jmp next2
crlf2: mov ah,2
mov dl,' '
int 21h
next2: mov ah,2
mov dl,dh
add dl,30h
int 21h
mov ah,2
mov dl,' '
int 21h
cmp ch,cl
jz a2
inc cl
jmp do2
a2: mov ah,9
lea dx,shift
int 21h
inc ch
cmp ch,9h
ja b2
mov cl,1h
jmp do2
b2: pop dx
pop cx
pop bx
pop ax
ret
form2 endp
form3 proc
push ax
push bx
push cx
push dx
mov cl,9h
mov ch,cl
do3: mov ah,2
mov bh,ch
add bh,30h
mov dl,bh
int 21h
mov ah,2
mov dl,'*'
int 21h
mov ah,2
mov bh,cl
add bh,30h
mov dl,bh
int 21h
mov ah,2
mov dl,'='
int 21h
mov al,ch
mul cl
mov bh,10
div bh
mov dh,ah
cmp al,0
jz crlf3
mov ah,2
mov dl,al
add dl,30h
int 21h
jmp next3
crlf3: mov ah,2
mov dl,' '
int 21h
next3: mov ah,2
mov dl,dh
add dl,30h
int 21h
mov ah,2
mov dl,' '
int 21h
cmp cl,1h
jz a3
dec cl
jmp do3
a3: mov ah,9
lea dx,shift
int 21h
dec ch
cmp ch,1h
jb c3
mov cl,ch
mov bl,9h
sub bl,ch
mov al,7h
mul bl
mov dh,al
b3: mov ah,2
mov dl,' '
int 21h
dec dh
cmp dh,0h
jnz b3
jmp do3
c3: pop dx
pop cx
pop bx
pop ax
ret
form3 endp
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -