組合語言小結

2021-10-07 12:07:17 字數 708 閱讀 7668

1. gcc ***.c -og -s,然後直接開啟.s檔案 (不推薦)

2. gcc ***.c -og -c,然後objdump -d ***.o

(對彙編**.s檔案也可以用-c選項:gcc -c ***.s)

3. gcc ***.c -og -o ***, 然後gdb ***,然後disassemble function_name(推薦)

4. 如果要直接檢視檔案的機器碼,用hexdump -c ***

當然還有%rip,指向當前指令的位址,一般不會用到

算上rip,一共是17個16位元組暫存器

(一)mov

式中a是記憶體位址,b是暫存器。其中a可以是表示式。

核心區別在於mov解引用,而lea不解引用

2. 但小心mov[暫存器1], [暫存器2]這個用法,如果暫存器1中存放的是位址,不會解引用!

3. 需要特別注意的是,如果是movl,那麼b的高4位會被置為0

(二)條件移動

cmov

三、控制與跳轉

組合語言3 1 3 5小結 棧

1.字在記憶體中儲存時,佔兩個位元組,即兩個位址連續的記憶體單元,其中x86中,字的低位存放在低位址,高位存放高位址單元。2.mov 指令訪問記憶體單元格式,mov al,address 其中address 只能是資料的偏移位址,資料的段位址存放在ds資料段位址暫存器中。3.mov,add,sub具...

組合語言 AT T組合語言

這兩天的pwn題環境都是在linux中,採用的組合語言是 at t 格式。之前學習的是intel格式的8086彙編,今天學習了下at t組合語言。基於x86 架構的處理器所使用的彙編指令一般有兩種格式 操作intel格式at t格式 暫存器命名 push eax pushl eax 常數 立即運算元...

組合語言 彙編指令

功能 用來進行資料傳輸。以 mov a,b 為例,相當於a b。具有以下形式 mov 暫存器,資料 mov 暫存器,暫存器 mov 暫存器,記憶體單元 mov 記憶體單元,暫存器 mov 段暫存器,暫存器 功能 用來做加法。以 add a,b 為例,相當於a a b。具有的形式,和 mov 一樣。功...