汇编语言中什么是立即数

513好学 2023-10-13 12:09 编辑:admin 74阅读

立即数:

一个立即数是一块数据存储作为指令本身,而不是在一个中的一部分内容存储器位置或寄存

器。立即值通常用于加载值或对常量执行算术或逻辑运算的指令。

概述:

在大多数指令集哪弯架构下,各种指令也可以对常量值执行操作。例如,考虑一个可以添加两个寄

存器并将结果存储在第三个寄存器中的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).

立即数的说丛孝法是指, 我们可以直接从指令中立即获取该操作数, 而不需要再从其他地方去寻找该操作数.

就是数字 -明确的指出是多少,不是变量 -未知量。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片