伪指令dd
db用来定义 字节型数据。
dw用来定义 字型数据。
dd用来定义 dword(double word,双字)型数据。
data segment
db 1
dw 1
dd 1
data ends
在data段中定义了3个数据:
1)第一个数据为01H,在data:0处,占1个字节。(即从data:0向后找8位或1个字节)
2)第二个数据为0001H,在data:1处,占1个字。(即从data:0向后找16位或2个字节)
3)第三个数据为00000001H,在data:3处,占2个字。(即从data:0向后找32位或4个字节)
例:用div计算data段中第一个数据除以第二个数据后的结果,商存在第三个数据单元中。
assume ds:data, cs:code
data segment
dd 100001 //186A1H
dw 100
dw 0
data ends
code segment
stark: mov ax, data
mov ds, ax
mov ax, ds:[0] //都是字节为单位
mov dx, ds:[2]
mov bx, ds:[4]
div bx //div word ptr ds:[4]
mov ds:[6], ax
mov ax, 4c00H
int 21H
code ends
end
dup 数据重复指令
dup是一个操作符,在汇编语言中同db、dw、dd等一样,也是由编译器识别处理的符号。它是和 db、dw、dd等数据定义伪指令配合使用的,用来进行数据的重复。
db 3 dup (0)
定义了3个字节,它们的值都是0,相当于 db 0,0,0
db 3 dup (1,2,3)
定义了9个字节,它们是0、1、2、0、1、2、0、1、2,相当于db 0,1,2,0,1,2,0,1,2
db 3 dup ('abc', 'ABC')
定义了18个字节,相当于db ‘abcABCabcABCabcABC’.
dup格式:
db 重复的次数 dup (重复的字节类型数据)
dw 重复的次数 dup (重复的字类型数据)
dd 重复的次数 dup (重复的双字类型数据)