用汇编语言写一个四则运算

 

 

stack segment para stack 'stack'
   db 256 dup(00)
stack ends
data segment para stack 'data'
   a db 'error!','$'
code segment para public 'code'
assume cs:code
main proc far
   mov ax,data
   mov ds,ax
   mov dh,4
   

k7:
   call getchar
   mov bh,al
   call getchar
   mov ah,bh
   call asctohex
   mov bl,al
   call getchar
   mov cl,al
   call getchar
   mov bh,al
   call getchar
   mov ah,bh
   call asctohex
   mov bh,al
   call getchar
   mov al,bl
   mov ah,0


   cmp cl,'+'
   jz k1
   cmp cl,'-'
   jz k2
   cmp cl,'*'
   jz k3
   cmp cl,'/'
   jz k4
   lea dx,a
   mov ah,09h
   int 21h
   
  
k1:add al,bh
   jmp k5
k2:sub al,bh
   jmp k5
k3:mul bh
   jmp k5
k4:div bh

   
k5:mov ch,al
   mov al,ah
   call hextoasc
   mov dl,ah
   call dispchar
   mov dl,al
   call dispchar
   mov al,ch
   call hextoasc
   mov dl,ah
   call dispchar
   mov dl,al
   call dispchar
   mov dl,0dh
   call dispchar
   mov dl,0ah
   call dispchar


   dec dh
   cmp dh,0
   jz k6
   jmp k7

k6:mov ah,4ch
   int 21h
main endp
getchar proc near
   mov ah,01h
   int 21h
   ret
getchar endp
asctohex proc near
   cmp al,41h
   jc asc1
   sub al,07h
asc1:sub al,30h
   cmp ah,41h
   jc asc2
   sub ah,07h
asc2:sub ah,30h
   shl ah,1
   shl ah,1
   shl ah,1
   shl ah,1
   add al,ah
   ret
asctohex endp
hextoasc proc near
   mov ah,al
   and al,0fh
   cmp al,0ah
   jc hex1
   add al,07h
hex1:add al,30h
   shr ah,1
   shr ah,1
   shr ah,1
   shr ah,1
   cmp ah,0ah
   jc hex2
   add ah,07h
hex2:add ah,30h
   ret
hextoasc endp
dispchar proc near
   push ax
   mov ah,2
   int 21h
   pop ax
   ret
dispchar endp
code ends
end main

运行的结果有错误,块嵌套不匹配。

转载于:https://www.cnblogs.com/yulixuewen/archive/2011/10/17/2317509.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值