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

汇编语言

Posted by YiMiTuMi on April 2, 2020

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

龙舌兰 – 是为爱付出一切