汇编程序求sum=1+2+3+......>100,并求出累加的最后一个自然数的值

codesegmentmainprocfarassumecs:codestart:movbl,1moval,0begin:addal,blincblcmpal,100jl... code segment
main proc far
assume cs:code
start: mov bl,1
mov al,0
begin: add al,bl
inc bl
cmp al,100
jle begin
add bl,30h
mov dl,bl
mov ah,02h
int 21h
mov ah,4ch
int 21h
ret
main endp
code ends
end start
为什么我的这个程序运行是错的
展开
baitang3671b
2011-12-11 · TA获得超过5040个赞
知道大有可为答主
回答量:4421
采纳率:31%
帮助的人:1098万
展开全部
add al,bl
这句就错了,al是8位的寄存器,只能存储0-255之间的数字,你的结果超过了啊。应该用ax
更多追问追答
追问
没有超过255啊,超过100就不退出了那个循环了啊
追答
没看清楚,你是想求 和>100时的bl的值啊
那错在add bl,30h
bl可能大于0fh,加上30h后不是数字了
如果bl的值在0-9范围内,你的程序是对的。
大于9以后要处理两位数
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式