当前位置:编程学习 > 汇编语言 >>

汇编,求一个一加到一百的程序,要求每句都有详细注释。重要是注释,要在未来汇编上能编译。

补充:不要省略任何语句呀??我需要一个完整程序并有详细注释?最好如每个语句作用都有
追问:木有注释??还有,这样能直接得到??不要省略呀??我需要一个完整程序并有详细注释我们现在上汇编好蛋疼,完全不懂就做这些题。注释灰常需要。比如 segment,为什么?然后这21h有是怎样输出什么的??完全不懂的撒?
答案:ASSUME CS:CODE
CODE SEGMENT 
 START:   //这是代码定义格式,通用的。不用管
MOV DX,0   //初始化dx
MOV BX,1   //从1开始加
MOV CX,100   //cx 相当于计数器

S:
ADD DX,BX   //相当于dx=dx+bx
INC BX      //每次bx加1,相当于bx=bx+1
LOOP S    //循环S,上面是整个循环体
MOV AX,4C00H
INT 21H        //这是固定的
 CODE ENDS   //结束程序
END START
最后结果保存在DX里了 ,这太简单了,不需要再解释了吧
其他:xor ecx,ecx
mov eax,64h
.while eax==0
add ecx,eax
dec eax
.endw
ECX是你要的结果 assume cs:code
code segment
start:
mov dx,0
mov bx,1
mov cx,100
s:
add dx,bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
结果帮你保存到dx里了 
程序非常简单,应该不需要任何注释了 看书慢慢领悟 参考一下:
http://hi.zhaoxi.net/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/5feeaf616e6828c68cb10ddf.html ORG 0000H            //这个就不用解释了吧?
SJMP MAIN             //跳转到主程序
ORG 0030H
MAIN:                     //主程序开始
MOV A,#0;             //ACC寄存器清零
LOOP:                   //
INC A;                    //ACC寄存器加一
CJNE A,#100,LOOP;    //判断ACC是否等于100,若不等于就跳转到LOOP,等于就顺序执行
END                       //程序结束

上一个:汇编语言中03B进栈后为什么变成0FF3B啊?
下一个:关于Win32汇编的问题?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,