汇编程序求sum=1+2+3+.>100,并求出累加的最后一个自然数的值
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/27 15:32:08
汇编程序求sum=1+2+3+.>100,并求出累加的最后一个自然数的值
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
为什么我的这个程序运行是错的
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
为什么我的这个程序运行是错的
add al,bl
这句就错了,al是8位的寄存器,只能存储0-255之间的数字,你的结果超过了啊.应该用ax
再问: 没有超过255啊,超过100就不退出了那个循环了啊
再答: 没看清楚,你是想求 和>100时的bl的值啊 那错在add bl,30h bl可能大于0fh,加上30h后不是数字了 如果bl的值在0-9范围内,你的程序是对的。 大于9以后要处理两位数
再问: 我改了,结果还错 start: mov bl,1 mov al,0 begin: add al,bl inc bl cmp al,100 jle begin mov dl,bl mov cl,4 shr dl,cl add dl,30h mov ah,02h int 21h and bl,0fh add bl,30h mov dl,bl mov ah,02h int 21h mov ah,4ch int 21h ret main endp code ends end start
再答: 逻辑上没错误了,具体处理上还有错,你要的是16进制吗?是否需要化成10进制? 30h-39h对应数字0-9 超过3ah是些标点符号,你的程序显示符号了?
再问: 输出了0? 我知道了要进行十进制调整指令 daa
这句就错了,al是8位的寄存器,只能存储0-255之间的数字,你的结果超过了啊.应该用ax
再问: 没有超过255啊,超过100就不退出了那个循环了啊
再答: 没看清楚,你是想求 和>100时的bl的值啊 那错在add bl,30h bl可能大于0fh,加上30h后不是数字了 如果bl的值在0-9范围内,你的程序是对的。 大于9以后要处理两位数
再问: 我改了,结果还错 start: mov bl,1 mov al,0 begin: add al,bl inc bl cmp al,100 jle begin mov dl,bl mov cl,4 shr dl,cl add dl,30h mov ah,02h int 21h and bl,0fh add bl,30h mov dl,bl mov ah,02h int 21h mov ah,4ch int 21h ret main endp code ends end start
再答: 逻辑上没错误了,具体处理上还有错,你要的是16进制吗?是否需要化成10进制? 30h-39h对应数字0-9 超过3ah是些标点符号,你的程序显示符号了?
再问: 输出了0? 我知道了要进行十进制调整指令 daa
汇编程序求sum=1+2+3+.>100,并求出累加的最后一个自然数的值
编程完成功能:求SUM=1+2+3+…>100,并求出累加的最后一个自然数的值
编写一个完整的汇编程序,计算100以内的偶数累加之和(2+4+6+……+100),并定义字类型变量SUM,并将相加结果保
汇编程序关于自然数相减的汇编程序,新手求教导
编制程序完成求1+2+3+...+N的累加和,直到累加到1000,统计被累加的自然数的个数
java编程!用户从键盘输入一个整数n,程序求出n的累加和并输出.(如:1+2+3+4+……+n)
写一个求∑n的函数,在主函数中输入一个整数求出该数的累加和(1+2+3+...n).
写一个求∑n!的函数,在主函数中输入一个整数求出该数的累加和(1!+2!+3!+...20!).
VFP程序的题目,求1+3+5+7+9+11+...这样的奇数之和.若累加数大于500时,则结束累加.编程序求出100到
C语言:π/4=1-1/3+1/5-…求π的近似值,直到最后一位的绝对值小于10^(-5),并统计累加项数,下面哪里错了
SQL使用while 语句求1到100之间的累加和并输出
按下面的公式求sum的值 程序编程题 sum=m-(m+1)+(m+2)-(m+3)+.