回 帖 发 新 帖 刷新版面

主题:新手求救

问个问题,

如何用汇编进行32位加法运算啊,

就比如AX=ffffh,bx=0322h

我怎么进行AX+BX啊,

急,在线等,
谢谢

回复列表 (共4个回复)

沙发

高位存在DX中,低位存在AX中。

板凳


就比如AX=ffffh,bx=0322h
这都是16位[em7]

3 楼

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 楼

你所说的是十六位不是十六位的,多没什么关系,关键就是怎么实现32位的加法,就拿你的是十六位来做列子:你只要把他扩展为32位在实现就是了:就想我上面,
不过你也可以不用你的16位而用两个三十二位来做列子:这样你只要list1 ,list2里定义为DW就可以了, 在给两个初始值:

我来回复

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