?? a.asm
字號(hào):
data segment
msg1 db 'Enter:','$'
err db 'Enter Error!','$'
buf db 20
db ?
db 20 dup(?)
fnu1 db 0
num1 dw 0
fnu2 db 0
num2 dw 0
oper db 0
flag1 db 0
flag2 db 0
crlf db 13,10,'$'
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,data
lea dx,msg1
mov ah,9
int 21h
lea dx,buf
mov ah,10
int 21h
mov dl,buf+1
lea si,buf+2
again:
mov al,[si]
test flag1,01h
jnz follow
cmp al,2dh
jnz next
mov fnu1,1
inc si
dec dl
jnz again
jmp error
next:
sub al,30h
jl error
cmp al,9d
jg error
mov flag1,1
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
inc si
dec dl
jnz again
follow:
test flag2,01h
jnz follow2
sub al,30h
jl error
cmp al,9d
jg error
mov flag2,1
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
inc si
dec dl
jnz again
follow2:
test oper,01h
jnz follow3
cmp al,2bh
jnz next1
mov oper,1
mov num1,bx
mov bx,0
inc si
dec dl
jnz again
next1:
cmp al,2dh
jnz next2
mov oper,2
mov num1,bx
mov bx,0
inc si
dec dl
jnz again
next2:
cmp al,2ah
jnz next3
mov oper,3
mov num1,bx
mov bx,0
inc si
dec dl
jnz again
next3:
cmp al,2fh
jnz follow3
mov oper,4
mov num1,bx
mov bx,0
inc si
dec dl
jnz again
follow3:
cmp al,0ah
jz exit
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
inc si
dec dl
jnz again
error:
mov ah,9
lea dx,err
int 21h
jmp end1
exit:
mov num2,bx
end1:
ret
main endp
code ends
end start
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -