📄 wen.asm
字号:
data segment
msg1 db 'Enter:','$'
err db 'enter error!','$'
num1 dw ?
num2 dw ?
sum dw ?
crlf 13,10,'$'
flag db ?
oper db ?
data ends
code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov ah,9
lea dx msg1
int 21h
lea si,buffer
mov flag,0
mov oper,0
mov bx,0
next:
mov ah,01
int 21h
test flag,01h
jnz follow
sub al,30h
jl error
cmp al,9d
jg error
mov flag,1
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
jmp next:
follow:
test oper,01h
jnz follow2
cmp al,2bh
jnz next1
mov oper,1
mov num1,bx
mov bx,0
jmp next
next1:
cmp al,2dh
jnz next2
mov oper,2
mov num1,bx
mov bx,0
jmp next
next2:
cmp al,2ah
jnz next3
mov oper,3
mov num1,bx
mov bx,0
jmp next
next3:
cmp al,2fh
jnz next4
mov oper,4
mov num1,bx
mov bx,0
jmp next
next4:
sub al,30h
jl error
cmp al,9d
jg error
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
follow2:
cmp al,oah
jz exit
sub al,30h
jl error
cmp al,9d
jg error
mov flag,1
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
jmp next
error:
mov ah,9
lea dx,err
int 21h
jmp end1
exit: mov num2,bx
end1:
ret
main endp
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -