主题:新手求救
qianyicy
[专家分:0] 发布于 2006-12-09 20:30:00
问个问题,
如何用汇编进行32位加法运算啊,
就比如AX=ffffh,bx=0322h
我怎么进行AX+BX啊,
急,在线等,
谢谢
回复列表 (共4个回复)
沙发
wp2011 [专家分:130] 发布于 2006-12-10 16:04:00
高位存在DX中,低位存在AX中。
板凳
yclz [专家分:1520] 发布于 2006-12-10 18:09:00
就比如AX=ffffh,bx=0322h
这都是16位[em7]
3 楼
七夜飘雪 [专家分:500] 发布于 2006-12-11 11:57:00
data segment
list1 dw ?
list2 dw ?
data ends
code segment
assume cs:code , ds:data
start:
mov ax,data
mov ds,ax
mov ax,-1
mov bx,0322h
cwd
mov list1,ax
mov list2,dx
mov ax,bx
cwd
add ax,list1
adc dx,list2
MOV AH,4CH
INT 21H
code ends
end start
4 楼
七夜飘雪 [专家分:500] 发布于 2006-12-11 12:03:00
你所说的是十六位不是十六位的,多没什么关系,关键就是怎么实现32位的加法,就拿你的是十六位来做列子:你只要把他扩展为32位在实现就是了:就想我上面,
不过你也可以不用你的16位而用两个三十二位来做列子:这样你只要list1 ,list2里定义为DW就可以了, 在给两个初始值:
我来回复