截取了一汇编程序中的一段,帮忙看看是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/01 02:03:12
DATA SEGMENT
A DB 23H A5H 18H B4H 09H 4DH 36H 72H C2H 81H
B EQU $-A
C DB 0
D DB 0
DATA END
上面中的那个B EQU $-A 是什么意思?(初学汇编)
还有很多汇编程序中出现了$一般是代表什么?

DATA SEGMENT ;定义数据段
A DB 23H A5H 18H B4H 09H 4DH 36H 72H C2H 81H;A为标号,后面的数据为定 义的字节型数据
B EQU $-A;B为当前地址减去标号A的地址,即为A标号数据的长度。
C DB 0
D DB 0
DATA END;数据段结束。

$在intel系列指令集中,表示当前位置(偏移地址)。常用它来计算它前面的变量占用内存单元的字节数。B EQU $-A
,就是求变量A占用的字节数,这里B=0AH。

$是汇编语言的宏,用于表示当前偏移地址,它并不是CPU的指令,只是在编译时做计算用。
$-A表示用当前偏移地址减去变量A的偏移地址,得出的结果时A变量所占字节数。