dup是duplicate的缩写,重复的意思;
用来定义重复的字节、字、双字、结构等内存缓冲区;
db x dup(),x是重复的次数,()里是要重复的数,逗号分隔;
db 重复的次数 dup (重复的字节性数据)
dw 重复的次数 dup (重复的字型数据)
dd 重复的次数 dup (重复的双字性数据)
例子:
db 3 dup (0)
定义了3个字节,它们都是0,相当于 db 0,0,0
db 3 dup (0,1,2)
定义了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个字符,它们是 ‘abcABCabcABCabcABC’
相当于 db ‘abcABCabcABCabcABC’
例子,
data segment
db 100 dup(0)
db 100 dup('12')
dw 100 dup('1')
db 256 dup(0)
data ends
括号中,数字直接写,字符用单引号;如果要重复的是数字或字符序列,用逗号隔开;
emu8086看一下;
对9和字符B的重复如下图,重复5次,
对 7,11 的重复,
对 'cd','CD' 的重复;十进制99和100是字符c和d的ascii码;十进制67、68是字符C和D的ascii码;绿色这列是十六进制;