(二十一)dd指令 和 dup指令--汇编笔记

伪指令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 (重复的双字类型数据)

龙舌兰 – 是为爱付出一切

Previous

(十九)word ptr 和 byte ptr --汇编笔记

Next

(二十)div 指令(除法指令)和 mul 指令(乘法指令)--汇编笔记