汇编中关于EQU指令的问题

汇编 专栏收录该内容
8 篇文章 0 订阅

一.

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端口的需要。

 

 

  • 8
    点赞
  • 5
    评论
  • 22
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值