怎麼理解彙編中的立即數,組合語言中 立即數 究竟是個什麼東東,時而可以代表

時間 2021-09-02 20:57:46

1樓:海獅

一樓的第一句是正確

cpu要找的資料就在命令中,是指令的一部分,比如mov al,0fh下面的措辭不當:

它與**一起存於**段,這樣的資料稱為立即數,或者直接運算元。

應當改為:

立即數本身是**的一部分,在**段中可以找到。

立即數的限制很多,而且速度很慢,不是很推薦。

例如:mov ax,0

往往寫成

xor ax,ax

後者所佔空間,速度都有很大提升。

反正個人認為,組合語言學習一下,瞭解一下硬體原理。

一般的人(少於10年彙編經驗)基本上寫出的彙編**不如用c語言。

彙編往往的意義就是比c語言更快,更小。但是絕大多數人做不到。

比如說,eax=eax*25

這個用lea指令會比乘法快很多,但是究竟有多少人懂呢?

2樓:匿名使用者

立即數---跟在指令後面的數值運算元,故放於**段中,cpu不需要訪問資料段就可以取到該數值。

3樓:匿名使用者

可以這樣理解,

cpu要找的資料就在命令中,是指令的一部分,比如mov al,0fh。它與**一起存於**段,這樣的資料稱為立即數,或者直接運算元。

立即數使用注意的兩點:立即數的位數不確定,不能用於但操作指令。

不能作為目的運算元,

4樓:納蘭旖兒

add al,1

這個1就是立即數- -

add al,bl

這個al,bl是運算元- -!

5樓:匿名使用者

說簡單了就是編寫時直接寫出的數叫作立即數

組合語言中 立即數 究竟是個什麼東東,時而可以代表

6樓:永恆

立即數就是常數,彙編時嵌入到**段中,不佔用資料段的空間。

組合語言的ADC和ADD怎麼理解

add是正常的加 adc是正常加,但是要帶近位的,比如你現在要加4位的16進位制,而且加的是前兩位的值,但是後兩位相加的值有進位,所以你就要把進位也加上去 crackme資源 add oprd1,oprd2 加法運算.oprd1 oprd2 adc oprd1,oprd2 帶進位加法運算.oprd1...

組合語言中的返回指令rst問題,組合語言中的返回指令Rst問題

先澄清一下你問得模糊的地方。1 你說的 rst 返回指令應該是 ret 吧?2 sp 不叫堆疊指令,它是堆疊指標,估計是stack pointer的首字母。該指標總是指向堆疊的棧頂,即始終存放的是棧頂的地址。堆疊的工作原理可簡述為 後進先出 即lifo,last in first out。具體解釋請...

組合語言微控制器,組合語言怎麼寫入微控制器

rlc 是帶進位的迴圈左移,rlc a即將a的內容左移一位,將進位位c中的值移到累加器a的最低位,a的最高位移到c裡。譬如說 設a 01000001,c 1 則如果執行rl 則a 10000010,c 1 a所有位左移一位,最低位補零,c不參加移位操作,保持原值不變 如果執行rlc後,則a 1000...