汇编实现个位数加法即时输出

对个位数加法在键盘输入数字+数字后直接显示结果(虽然过程很简单,但计算机处理这个过程不简单!)

DATA SEGMENT
STR DB ?
ANSWER DB ?,?,?,'$'
BUFF DB 0DH,'Input error','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV CX,3
LEA SI,STR

INPUT:
MOV AH,01H
INT 21H
CMP CX,2
JE JIAHAO
JIASHU:
CMP AL,30H
JL ERR
CMP AL,39H
JA ERR

MOV [SI],AL
INC SI
LOOP INPUT


MOV BX,OFFSET STR
MOV AL,STR[BX]
SUB AL,30H
MOV DL,STR[BX+1]
SUB DL,30H
ADD DL,AL
CMP DL,10
JB GW
LEA SI,ANSWER
MOV AL,'='
MOV [SI],AL
MOV AL,31H
MOV [SI+1],AL
ADD DL,26H          ;dl十六进制数的个位修正为十进制ASCII个位(08h+09h=11h,11h+26h=37h,即7的ascii)
MOV [SI+2],DL
JMP DISPLAY
GW:
LEA SI,ANSWER
MOV AL,3DH
MOV [SI],AL
MOV AL,30H            ;和是个位数,直接转化ASCII
MOV [SI+1],AL
ADD DL,30H
MOV [SI+2],DL
DISPLAY:
MOV DX,OFFSET ANSWER
MOV AH,09H
INT 21H

MOV AX,4C00H
INT 21H

JIAHAO:
CMP AL,2BH
JNZ ERR
LOOP INPUT

ERR:
MOV DX,OFFSET BUFF
MOV AH,09H
INT 21H
JMP INPUT

CODE ENDS
END START
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值