回 帖 发 新 帖 刷新版面

主题:初学  不知道他错在哪里了

data SEGMENT
num1 DD 11111111H
num2 DD 22222222H
result DD ?
data ENDS

code SEGMENT
ASSUME CS:code;ds:data
start:
MOV AX,data
MOV DS,AX
              
MOV SI ,OFFSET num1
MOV AX ,WORD PTR [SI]
MOV BX ,WORD PTR [SI+2]
MOV CX ,WORD PTR [SI+4]
MOV DX ,WORD PTR [SI+6]

ADD AX,CX
ADC BX,DX

MOV WORD PTR [SI+8] ,AX
MOV WORD PTR [SI+10],BX 


END start
1、只使用16位的寄存器,实现32位十六进制数的加法运算
2、加数NUM1和被加数NUM2请预先在数据段定义并初始化
3、加法结果请保存至数据段预先定义的变量RESULT

回复列表 (共2个回复)

沙发

end start之前要加上code ends

最后要加上返回dos的指令:

mov ax, 4c00h
int 21h

板凳


先把汇编格式自己好好看看吧,楼上说的很对啊,哈哈!

我来回复

您尚未登录,请登录后再回复。点此登录或注册