第3个回答 2018-03-22
“$”是汇编语言中的一个预定义符号,等价于当前正汇编到的段的当前偏移值。
“$”可用于表达式,并且可以用于表达式的任意位置。
1、汇编中$符主要用来表示当前地址。
2、如最常用的JMP $就是指转移到当前执行语句的地址,在这的效果就是原地跳转,不再向后执行了。
$: 为地址运算符,属伪操作指令。当需要汇编编译器自动计算出数组大小的时候,可能就会用到当前地址计数器$运算符了,汇编用$运算符返回当前程序语句的地址偏移值,利用该数值,就可以计算出数组的长度。
例如:
xxx BYTE 10,20,30,40,50
xxxlen = $ - xxx
则常量xxxlen就是数组list的长度值了(=5)。
上句的意思是:当前地址减去变量xxx的地址,即为5。
另外单片机指令“jmp $+3”中的“$”表示当前这条指令在代码段中的偏移量。指令“jmp $+3”表示要向前跳转到距离这条指令3个字节的地方。若是“jmp $-3”,则表示要向后跳转到距离这条指令3个字节的地方。