汇编语言中啥是立即数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言中啥是立即数相关的知识,希望对你有一定的参考价值。

小弟不太明白。。。。这个概念

立即数:

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

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

概述:

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

存器并将结果存储在第三个寄存器中的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位加载到单个

寄存器中。

参考技术A

比如一个数 10,把他存入内存中,高级语言表示法是  int  i=10,这个数放入内存之前叫立即数,放入之后就不是了

再比如一个数 10,把他存入寄存器中,这个数放入寄存器之前叫立即数,放入之后就不是了

立即数就是突然蹦出来的数,不是存到某些  容器(内存,寄存器)中的数

更新线------------------------------------------上面是2019.4.7,现在是2019.4.23

上面的回答不准确,建议大家看看王爽汇编语言书中的 第8章第3小节

引用 王爽汇编语言 中的定义

感觉这位 老铁 说的也有道理,一个称呼而已

参考技术B 汇编语言中中操作数有三种:寄存器操作数、存储器操作数和立即数。
其中立即数相当于高级语言中的常量(常数),它是直接出现在指令中的数,不用存储在寄存器或存储器中的数,如指令ADD AL,06H中的06H即为立即数。本回答被提问者采纳
参考技术C

指令 = 操作码 + 操作数

操作数可能来源于三个地方: 寄存器, 内存 和指令本身.

立即数(immediate): 便是指存在于指令之中的操作数, 也叫 字面值(Literal).

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

参考技术D 就是数字 -明确的指出是多少,不是变量 -未知量。

C语言中啥是算术运算

七个

+ - * / % ++ --

加减乘除不用我说了吧

"%"求余,就是算除法,值是他的余数

"/"这个是除法,但是有一点注意,两边操作数全为整数时,值是取整的。

“++”是自加,比如说i++就是i的值自动加1,规则是i++是鲜赋值再自加,++i是先自加再赋值。举个例子a=i++这个是先把i的值赋给a,然后i再自加。a=++i是i先自加,然后把自加之后的值赋给a。

“--”是自减,和自加的规则相同,只是值是自动减一。

C语言的运算符可分为以下几类:
1. 算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2. 关系运算符:用于比较运算。包括大于(>)、小于()、大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3. 逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4. 位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<>)六种。
5. 赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6. 条件运算符:这是一个三目运算符,用于条件求值(?:)。
7. 逗号运算符:用于把若干表达式组合成一个表达式(,)。
8. 指针运算符:用于取内容(*)和取地址(&)二种运算。
9. 求字节数运算符:用于计算数据类型所占的字节数(sizeof)。
10. 特殊运算符:有括号(),下标[],成员(→,.)等几种。
参考技术A c语言的算术运算是之针对树值类型操作数进行的运算,根据操作数的个数,算术运算符又分为一元运算符和二元运算符两种。
二元运算符包括+,-,*,/,%,
一元运算符包括++,--,-
参考技术B 算术运算符:-(负号),+,-,*,/,%,++,--
由这些运算符组成的表达式就是算术运算。
如c=a+b;本回答被提问者采纳
参考技术C 加,减,乘,除,取余 参考技术D +,-,*,/,% ,++,--这7种吧

以上是关于汇编语言中啥是立即数的主要内容,如果未能解决你的问题,请参考以下文章

C语言中啥是字符,啥是字符串啊,谢谢

C语言中啥是一个8位的整数

c语言中啥是单精度型和双精度型???各举个例子。。。

c语言中啥是可变参数?最好有简单的应用可变参数的例子。谢谢

C语言中啥是逻辑表达式,啥是关系表达式?

C语言中啥是逻辑表达式,啥是关系表达式。举几个例子