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...