立即数:
一个立即数是一块数据存储作为指令本身,而不是在一个中的一部分内容存储器位置或寄存
器。立即值通常用于加载值或对常量执行算术或逻辑运算的指令。
概述:
在大多数指令集哪弯架构下,各种指令也可以对常量值执行操作。例如,考虑一个可以添加两个寄
存器并将结果存储在第三个寄存器中的ISA:
添加 r3,r2,r1; r3 = r2 + r1
指令集还可以支持添加常量值的常见情况(例如,在许多支持++ var的编程李则闷语言的情况下)。
添加r1,r1,1; r1 = r1 + 1
在上面的代码中,值1是在add指令本身中编码的立即数。
扩展资料:
立即数的实施限制:
由于立即数被打包到指令本身中,因此某些ISA具有可用作立即值的受限范围的值。例如,在
MIPS32中,立即数限制为16位。在一些更复杂的体系结构(如ARM)上,某些指令可能接受
16位值,其他指令可能接受较小的范围,并且能够根据需要旋转位。
在立即数不能直接编码到指令中的情况下,例如当值超出范围时,可以采用各种其他方式来处
理这些值。一个这样的选项是从内存中的常量池(例如文字池)加载公共值盯念。或者,可以使用
可以表示或加载到寄存器中并从那里操作的值来组装值。一些ISA(如MIPS32和ARM)具有
专用指令,如LUI,MOVW和MOVT,它们提供了一种方法,将高16位后跟低16位加载到单个
寄存器中。
比如一个数 10,把他存入内存中,高级语言表示法是 int i=10,这个数放轿悉入内存之前叫立即数,放入之后就不是了
再比如一个数 10,把他存入寄存器中,这个数放入寄存器之前叫立即数,放入之后就不是了
立即数就是突然蹦出来的数,不是存到某些 闭中乎容器(内存,寄存器)中的数
更新线------------------------------------------上面是2019.4.7,现在是2019.4.23
上面的回答培知不准确,建议大家看看王爽汇编语言书中的 第8章第3小节
引用 王爽汇编语言 中的定义
感觉这位 老铁 说的也有道理,一个称呼而已
汇编语言中中操作数有三种:寄存器操作数、存储器操作数和立即数掘雹。
其中立即数相当于高级语言中的常量(常数),它是直判乱帆接出现在指令中的数,不用存储在寄存器或陪岁存储器中的数,如指令ADD AL,06H中的06H即为立即数。
指令 = 操改郑饥作码 + 操作数
操作数可能来源于三个地方: 寄存器, 内存 和指令本身.
立即核返数(immediate): 便是指存在于指令之中的操作数, 也叫 字面值(Literal).
立即数的说丛孝法是指, 我们可以直接从指令中立即获取该操作数, 而不需要再从其他地方去寻找该操作数.
就是数字 -明确的指出是多少,不是变量 -未知量。


- 相关评论
- 我要评论
-