汇编中DUP和EQU指令的含义是什么?

在汇编语言中,FUP指令和EQU指令的具体含义是什么?... 在汇编语言中,FUP指令和EQU指令的具体含义是什么? 展开
 我来答
床前明月儿
高能答主

2020-01-24 · 探索生活中的另一种可能
床前明月儿
采纳数:101 获赞数:171953

向TA提问 私信TA
展开全部

DUP是伪指令,EQU是等于指令。

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

EQU 伪指令把一个符号名称与一个整数表达式或一个任意文本连接起来。


扩展资料

MOV 传送字或字节。

MOVSX 先符号扩展,再传送。

MOVZX 先零扩展,再传送。

PUSH 把字压入堆栈

POP 把字弹出堆栈。

PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈。

POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈。

PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈。

POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈。

BSWAP 交换32位寄存器里字节的顺序

XCHG 交换字或字节。( 至少有一个操作数为寄存器,段寄存器不可作为操作数)

CMPXCHG 比较并交换操作数。( 第二个操作数必须为累加器AL/AX/EAX )

XADD 先交换再累加。( 结果在第一个操作数里 )

XLAT 字节查表转换。

参考资料来源:百度百科-汇编指令

问明6E
高粉答主

2019-06-05 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:13.1万
展开全部

在汇编定义变量的时候会用到dup。

变量名类型初值表

Dup用于把一个相同值赋值若干次。重复次数dup(数据项)

具体比如:

sdb30dup(0)

定义一个字节型变量,该变量占用30个字节,所有字节被初始化成0

equ是一个代码替换指令

比如:

sequbx+si

movcx,[s]

那么上面两句代码相当于如下指令:

movcx,[bx+si]

扩展资料:

EQU等价语句

1、一般格式

等价语句的一般使用格式如下:

符号名EQU表达式

作用是左边的符号名代表右边的表达式。

注意:等价语句不会给符号名分配存储空间,符号名不能与其它符号同名,也不能被重新定义。

2、用符号名代表常量或表达式

当把一个常量或表达式定义成一个具有一定含义的符号名后,在程序中就可以用该符号名来代表该常量或表达式。

例如:

NUMBEREQU100;给缓冲区的长度取一个符号名

BUFF_LENEQUNUMBER+2

CREQU13;给“回车”符的ASCII码定义一个符号名

LFEQU10;给“换行”符的ASCII码定义一个符号名

BUFFERDBNUMBER,?,NUMBERDUP(?);用符号名来定义缓冲区

3、用符号名代表字符串

用一个具有一定含义的符号名定义某一个较长的字符串,在随后的程序中就用该符号名。例如:

GREETINGEQU"Howareyou!"

在该定义之后,就可使用符号名GREETING来代表字符串"Howareyou!"。

4、用符号名关键字或指令助忆符

用一个(组)程序员自己习惯的符号名来代替汇编语言中的关键字或指令助忆符。但在此建议不要这样做,因为程序的编写者习惯,程序的其他阅读者可能会觉得很别扭。

例如:

MOVEEQUMOV;给指令MOV取另一个符号名MOVE

COUNTEREQUCX;给寄存器CX取一个叫“计数器”的符号名

上面的定义只是给原来的助忆符MOV和CX起了另一个别名,而原来助忆符MOV和CX仍然可以使用,所以,我们可编写如下语句:

MOVEAX,CX;相当于指令:MOVAX,CX

MOVCOUNTER,BX;相当于指令:MOVCX,BX

5、用符号名定义存储单元的别名

可对一片存储单元定义另一个数据类型的符号名,有关叙述参见前面的操作符THIS。

例如:

WORD1EQUTHISWORD;给后面的字节存储单元取一个字属性的符号名;

BYTE1DB12h,21h

FLAGDW1234H

FLAG1EQUbyteptrFLAG;给FLAG的低字节取一个字节属性的符号名;

FLAG2EQUbyteptrFLAG+1;给FLAG的高字节取一个字节属性的符号名;

有了上述定义后,可编写如下语句:

MOVAX,WORD1;执行后,(AX)=2112H

MOVBL,FLAG1;执行后,(BL)=34H

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
想后又忘记了
推荐于2017-09-25 · TA获得超过203个赞
知道答主
回答量:35
采纳率:0%
帮助的人:8.7万
展开全部
在汇编定义变量的时候会用到dup。
变量名 类型 初值表
Dup用于把一个相同值赋值若干次。
重复次数 dup(数据项)
具体比如s db 30 dup(0)
定义一个字节型变量,该变量占用30个字节,所有字节被初始化成0
equ是一个代码替换指令
比如:s equ bx+si
mov cx,[s]
那么上面两句代码相当于如下指令:mov cx,[bx+si]
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_fmlyht
2011-07-28 · TA获得超过2359个赞
知道大有可为答主
回答量:2398
采纳率:0%
帮助的人:1847万
展开全部
DUP和EQU都是伪指令

EQU相当于一个宏,类似域C语言中的#define
DUP重复数据定义,使数据定义指令重复指定的次数!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6205bc1
2011-07-27 · TA获得超过6004个赞
知道大有可为答主
回答量:5933
采纳率:20%
帮助的人:2780万
展开全部
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

equ 类似 define的作用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式