
怎样用汇编语言编写一个32位二进制数相加程序?
初学汇编语言,不知道是不是用DD来存储32位二进制数,能麻烦具体讲讲DD的用法吗?那像我这样写对了吗XXX和YYY是32位二进制数吗?谢谢~~DSEGSEGMENTXXX...
初学汇编语言,不知道是不是用DD来存储32位二进制数,能麻烦具体讲讲DD的用法吗?
那像我这样写对了吗XXX和YYY是32位二进制数吗?谢谢~~
DSEG SEGMENT
XXX Dw 5678H,1234H
YYY Dw 4321H,8765H
SUM DD ?
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:MOV AX,DSEG
MOV DS,AX
MOV AX,XXX
ADD AX,YYY
MOV WORD PTR SUM,AX
MOV AH,4CH
INT 21H
CSEG ENDS
END START 展开
那像我这样写对了吗XXX和YYY是32位二进制数吗?谢谢~~
DSEG SEGMENT
XXX Dw 5678H,1234H
YYY Dw 4321H,8765H
SUM DD ?
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:MOV AX,DSEG
MOV DS,AX
MOV AX,XXX
ADD AX,YYY
MOV WORD PTR SUM,AX
MOV AH,4CH
INT 21H
CSEG ENDS
END START 展开
展开全部
给你个前辈的博客地址:
http://blog.csdn.net/liumang_D/article/details/3899462
具体请再问,,,
不对!
AX寄存器是16位的,EAX才是32位的,不能这样传!
http://blog.csdn.net/liumang_D/article/details/3899462
具体请再问,,,
不对!
AX寄存器是16位的,EAX才是32位的,不能这样传!
追问
如果用了EAX,那其他的寄存器岂不是都要相应改变?那该怎么改呢?
追答
首先不能一次存储,
在cmd下的模拟DOS下只能运行16位的,存储32位的,可以分两次存储,
例如把0x8877放入ds:[bx]指向的位置,就可以使用下面的方法
mov AX,77
mov ds:[bx],ax
mov ax,88
mov ds:[bx+1],ax
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询