怎么理解汇编中的立即数

来源:百度知道 编辑:UC知道 时间:2024/06/22 16:45:38

一楼的第一句是正确
cpu要找的数据就在命令中,是指令的一部分,比如mov al,0fh

下面的措辞不当:
它与代码一起存于代码段,这样的数据称为立即数,或者直接操作数。
应当改为:
立即数本身是代码的一部分,在代码段中可以找到。

立即数的限制很多,而且速度很慢,不是很推荐。
例如:
mov ax,0
往往写成
xor ax,ax
后者所占空间,速度都有很大提升。

反正个人认为,汇编语言学习一下,了解一下硬件原理。
一般的人(少于10年汇编经验)基本上写出的汇编代码不如用C语言。
汇编往往的意义就是比C语言更快,更小。但是绝大多数人做不到。

比如说,EAX=EAX*25
这个用LEA指令会比乘法快很多,但是究竟有多少人懂呢?

立即数---跟在指令后面的数值操作数,故放于代码段中,cpu不需要访问数据段就可以取到该数值。

可以这样理解,
cpu要找的数据就在命令中,是指令的一部分,比如mov al,0fh。它与代码一起存于代码段,这样的数据称为立即数,或者直接操作数。

立即数使用注意的两点:立即数的位数不确定,不能用于但操作指令。
不能作为目的操作数,

add al,1
这个1就是立即数- -
add al,bl
这个al,bl是操作数- -!

说简单了就是编写时直接写出的数叫作立即数