打印

汇编程序equ与data的区别

[复制链接]
796|9
手机看帖
扫描二维码
随时随地手机跟帖
沙发
dirtwillfly| | 2016-11-19 14:58 | 只看该作者
1、EQU 指令用于将一个数值或寄存器名赋给一个指定的符号名。
格式:  符号名   EQU   表达式  
       符号名   EQU   寄存器名
表达式必须是一个简单再定位表达式。
用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者直接当做一个立即数使用。
比如:
s equ bx+si
mov cx,[s]
那么上面两句代码相当于如下指令:
mov cx,[bx+si]
2、DATA 指令用于将一个内部 RAM 的地址赋给指定的符号名。
格式:  符号名    DATA    表达式
数值表达式的值在 0-255 之间,表达式必须是一个简单再定位表达式。
比如:
TEM   DATA 50H
tem即是一个地址
DATA(数据地址赋值命令)。
    功能:将数据地址或代码赋与规定的字符名称。
    格式:WATER   DATA   30H。
    ※EQU与DATA区别:
    1)、EQU须先定义后使用,而DATA可无须如此。
    2)、EQU可把汇编符号赋给一个字符名称,而DATA
        伪指令不能。
    3)、DATA可用于表达式,而EQU不行。

使用特权

评论回复
板凳
dengdc| | 2016-11-19 21:18 | 只看该作者
data定义变量在DATA区,编译器会检查空间范围
equ是宏定义,只是简单替换

使用特权

评论回复
地板
jiahy| | 2016-11-19 21:23 | 只看该作者
data定义变量区的数据,equ只是符号,在预处理时就处理掉。

使用特权

评论回复
5
yszong|  楼主 | 2016-11-19 21:25 | 只看该作者

楼上们说的是在c语言当中的用法。我提出的用法是在汇编程序当中的。

使用特权

评论回复
6
jiaxw| | 2016-11-19 21:27 | 只看该作者
equ的用法是符于后面的数据为别名,至于是地址还是立即数在程序中体现。而data定义就是立即数。

使用特权

评论回复
7
yszong|  楼主 | 2016-11-19 21:29 | 只看该作者
好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先

使用特权

评论回复
8
youtome| | 2016-11-19 22:33 | 只看该作者
没有用过汇编语言。

使用特权

评论回复
9
youtome| | 2016-11-19 22:35 | 只看该作者
C语言更通用一些。

使用特权

评论回复
10
Ryze| | 2016-11-23 21:37 | 只看该作者
equ是宏定义,只是简单替换

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

粉丝