什么是立即操作数?

什么是立即操作数?

问题的发现

在汇编语言中, 用作立即操作数 的所有标签和数字常量 ( 即不在诸如 3 (%eax, %ebx, 8) 这样的地址计算中 ) 总是以美元符号 $ 为前缀. 需要的时候, 前缀 0x 表示十六进制数, 例如 $ 0xABC . 如果没有前缀, 则默认该数字为十进制数。

AT&T汇编格式中,用$前缀表示一个立即操作数。(在Intel汇编格式中,立即数的表示不用带任何前缀。)那我们就有必要知道什么是立即操作数,以便正确添加&~

我们先了解一下什么是立刻数、什么是操作数?


1. 什么是立刻数

立刻数是一个常量,可以写成十进制(D),十六进制(H),八进制(O),二进制(B)。例如:ADD AX,0FFH;其中的0FFH就是立刻数。

通俗一点的理解:一个你可以凭空捏出来给CPU,不需要CPU去各种寄存器取的常量数据。

注意一点:立即数只能作为源操作数,不能放在目的操作数位置。也就是指令中结果所存放的数据位。


2. 什么是操作数

通常一条指令包含操作符和操作数,操作数是指令执行的参与者,也就是说操作数是参与某种功能操作的数据

操作数有三种方式提供:立即数、寄存器存放的数据、内存中的数据

通俗一点的理解:操作符是加工的方式,操作数是被加工的东西。


3. 立即操作数到底是什么

前面提到操作数有一种提供方式是立即数,那么通常把在立即寻址方法指令中给出的数称为立即操作数。(7种寻址方法

或者这样理解:指令要操作的数据以常量的形式出现在指令中,称为立即操作数

同样的可以这样延伸理解寄存器操作数内存操作数


参考文章

什么是操作码和操作数

七种寻址方式

立即数

汇编立即操作数有哪些

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值