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

求助汇编代码 !!!!!

学编译原理,要编小编译器,其他工作都完成了,就差生成目标代码了(汇编),汇编以前学过,有点忘了,求助!! main() { int a,b,c; a=3;b=2; c=a+b; if (c==5) c=c-1; else c=c+1; while(c==3) { c=a-b; } } 这样一个小程序,写成汇编要怎么写,不用管源代码写的有没有问题,我故意这样写的。谢谢了,如果有一点注释就更好了!
答案:8086汇编语言:
DATA SEGMENT
BUFA DB 3;定义a
BUFB DB 2;定义b
BUFC DB 0;定义c  
DATA ENDS
CODE SEGMENT    
    MAIN PROC FAR
    ASSUME CS:CODE,DS:DATA
    START:PUSH DS
    XOR AX,AX
    PUSH AX
    MOV AX,DATA
    MOV DS,AX
 
MOV AL,BUFA
MOV BL,BUFB
ADD AL,BL
MOV BUFC,AL;c=a+b
CMP BUFC,5
JZ NEXT
INC BUFC;如果c不等于5,则c+1
NEXT:DEC BUFC;如果c=5,则c-1 
CMP BUFC,3
JZ NEXT1
JMP EXIT1
NEXT1:MOV AL,BUFA
MOV BL,BUFB
SUB AL,BL
MOV BUFC,AL;如果c=3,则c=a-b
EXIT1: MOV AH,4CH
   INT 21H 
   RET
   MAIN ENDP
   CODE ENDS
END START
其他:不懂,我出来学学! 

上一个:汇编中,INT20是如何令程序退出的?
下一个:请问在汇编语言中 “[a | b]" 是不是等同于 if a......else b 。 谢谢你的回答!!!

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