汇编写1到100累加

来源:百度知道 编辑:UC知道 时间:2024/06/16 23:22:50
刚学汇编,写了个1到100的累加,但不知道为什么,总是运行不出来.还有,到底怎么把累加后得到的结果赋给sum?exit那个地方不是需要等待输入吗?为什么运行后直接退出了?哪位帮我指点下,最好告诉我错的原因,该怎么写等,本人菜鸟,谢谢!!
以下是我写的代码:

DATA SEGMENT
sum db 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
mov AX, 0
mov BX, 100
d10:
add AX, BX
dec BX
cmp BX, 0
jne d10
mov AH, 09H
lea AX, sum
int 21H
jmp exit
exit:
MOV AH,01H
INT 21H
CODE ENDS
END START

lea 那个地方我也不知道怎么用,可不可以用bx, cx或dx??
LS的,谢谢哈!!
我按你说的改过后,还是不行,可能是我没改正确.我是新手,实在搞不懂,能不能帮我改下代码发上来啊??
谢谢!!

第一,
sum db 0
不能存放太大的数据,用
sum dw 0

第二,
09号功能是显示字符串
字符串中 DS:DX表示串地址,以'$'结尾
你先把数字sum转换成一个个字符,用02号功能输出吧
================================
DATA SEGMENT
sum dw 0
str db 10 dup(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
mov AX, 0
mov BX, 100
d10:
add AX, BX
dec BX
cmp BX, 0
jne d10

mov sum,ax;

lea si,str;
xor dx,dx;
xor cx,cx;
xor di,di;

mov sum,ax;
mov bx,10;
xor dx,dx;

int_to_str:
div bx;
cmp ax,0;商
je step2;
mov cx,dx;
add cl,'0';
mov [si],cl;
inc di;
inc si;
xor dx,dx;
jmp int_to_str;

step2:
cmp dx,0;余数
je end_itostr;
mov cx,dx;
add cl,'0';
mov [si],cl;
inc di;

end_itostr:
;print
mov cx,di;
xor ax,ax;