汇编语言伪指令dd

data segment
  db 1
  dw 1
  dd 1
data ends

在data段中定义了3个数据:
第一个数据为01H,在data:0处,占1个字节;
第二个数据为0001 H,在data: l处,占1个字;
第三个数据为00000001H,在data:3处,占2个字。
问题
用div计算data段中第一个数据除以第二个数据后的结果,商存在第三个数据的存储单元中。

data segment
  dd 100001
  dw 100
  dw 0
data ends

分析
data段中的第一个数据是被除数,为dword(双字)型,32位,所以在做除法之前,用dx和ax存储。应将data:0字单元中的低16位存储在ax中,data:2字单元中的高16位存储在dx中。程序如下。

mov ax,data
mov ds,ax
mov ax,ds:[0]       ;ds:0字单元中的低16位存储在ax中
mov dx,ds:[2]        ;ds:2字单元中的高16位存储在dx中
div word ptr ds:p4]  ;用dx:ax中的32位数据除以ds:4字单元中的数据
mov ds:[6],ax       ;将商存储在ds:6字单元中
;用div计算data段中第一个数据除以第二个数据后,商存放到第三个数据的存储单元中.
;余数存储到第四个存储单元中.
 assume cs:codesg,ds:datasg
 datasg segment            ;储存 0B60:0 F A1 86 01 00 64 00 00 00 00 00
     dd 100001
     dw 100
     dw 0
     dw 0
 datasg ends
 codesg segment
 start:  mov ax,datasg
        mov ds,ax
        mov ax,ds:[0]                ;ax存储低16位
        mov dx,ds:[2]                ;dx存储高16位
        div  word  ptr  ds:[4]       ;计算除法
        mov ds:[6],ax                ;商存储第3个单元
        mov ds:[8],dx                ;余数存储第4个单元
    
        mov ax,4c00h
       int 21h
 codesg ends
 end start

汇编伪指令db,dw,dd
db
db定义字节类型变量,一个字节数据占1个字节单元,读完一个,偏移量加1

dw
dw定义字类型变量,一个字数据占2个字节单元,读完一个,偏移量加2

dd
dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4


发布日期:

所属分类: 编程 标签:  


没有相关文章!