汇编中关于EQU指令的问题

一.

COUNT EQU 100;令COUNT的值为100,存储器中为变量分配 0个字节
COUNT DB 100 ;令COUNT的值为100,存储器中为变量分配 1个字节
COUNT DW 100 ;令COUNT的值为100,存储器中为变量分配 2个字节

 

 

 

count EQU $-ARRA 定义了一个常量,不占用内存单元,代码段中使用它,等价于使用一个立即数。

count DW $-ARRA 定义了一个变量,占用2个字节的内存单元,代码段中使用它,就变成一个[偏移地址]。

二.

 

 

引用 7 楼 wayaoqiang 的回复:
还有, "$"要跟"-"连用

$-标号

这个表示 标号那块内存的长度是吗?


C语言我没学
A EUQ 1 
A就是个常量 他就是1 但是EQU定义的标号不可以重复定义
$不是非要和-连用 
ARRA DW -1,75,9,-289,300,27,32,77,1000,45
COUNT EQU $-ARRA ;这里的$就是这条指令的偏移 比如是09H, 减去ARRA的偏移(比如是01H)
那么ARRA的长度 就是08H
$也可以在指令中使用 比如
out 71h,al
jmp $+1
IN AL,72H

这条指令什么也不做 直接跳到下一条指令 
为什么要加这条指令呢? 端口也要喘口气嘛

在对同一个I/O端口连续发出IO指令时,为确保I/O设备有足够的电路恢复时间, 通常在I/O指令之间加上一条“jmp $+N”这样的指令。 其意义在于延迟,以满足I/O端口的需要。

 

 

  • 16
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值