打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【转】汇编语言摘录35:伪指令dd、dup
 前面对于数据的定义:db:定义字节型数据(8位);dw:定义字型数据(16位)。

dd定义dowrd(double word,双字)型数据。比如:
data segment
db 1
dw 1
dd 1
data ends

解释:
在data段总定义了3个数据:
第一个数据为01H,在data:0处,占一个字节;
第二个数据为0001H,在data:1处,占1个字(2个字节);
第三个数据为00000001H,在data:3处,占2个字(4个字节)。


用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, data:[0]           ;ds:0字单元中的低16位存储到ax中
mov dx, data:[2]            ;ds:2字单元中的高16位存储到16中
div word ptr ds:[4]         ;用dx:ax中的32位数据除以ds:4字单元中的数据
mov ds:[6], ax              ;将商存储到ds:6字单元中


dup是一个操作符,在汇编语言中同db、dw、dd等一样,也是由编译器识别处理的符号。它是和db、dw、dd等数据定义伪指令配合使用的,用来进行数据的重复。

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'。


dup的使用格式如下:
db 重复的次数 dup (重复的字节型数据)。
dw 重复的次数 dup (重复的字型数据)。
dd 重复的次数 dup (重复的双字数据)。


dup是一个十分有用的操作符,比如我们要定义一个容量为200个字节的栈段,如果不用dup,则需要大量的代码来进行定义。如果用dup的话:
stack segment
db 200 bup (0)
stack ends




本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
51单片机指令系统:伪指令分析(10)
汇编语言11---基本语法与分段_db 100 dup(0)
8086CPU常见汇编指令、debug命令
包含多个段的程序中,段位置不一样时段的大小
学 Win32 汇编[6]: 伪指令 DUP 与数组
[汇编]子程序结构
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服