一. mov eax , 0x12
1.mov 目標運算元 ,源運算元
作用把 源運算元拷貝到目標運算元
mov 語法
1.mov r/m8 ,r8 r 代表通用暫存器
2.mov r/m16 ,r16 m 代表記憶體
3.mov r/m32 ,r32 imm 代表立即數
4.mov r8,r/m8 r8代表8位暫存器
5.mov r16,r/m16 m8代表8位記憶體
6.mov r32,r/m32 imm8代表8位立即數
7.mov r8,imm8
8.mov r16,imm16
9.mov r32,imm32
二.add加運算
add eax ,12
add 目標運算元 ,源運算元
作用:把源運算元 與目標運算元相加,並且把結果存到目標運算元
1.add r/m8 ,r8
2.add r/m16 ,r16
3.add r/m32 ,r32
4.add r8,r/m8
5.add r16,r/m16
6.add r32,r/m32
7.add r8,imm8
8.add r16,imm16
9.add r32,imm32
三.減運算 sub
sub eax ,12
sub 目標運算元 ,源運算元
作用:用目標運算元相減去源運算元,並且把結果存到目標運算元
1.sub r/m8 ,r8
2.sub r/m16 ,r16
3.sub r/m32 ,r32
4.sub r8,r/m8
5.sub r16,r/m16
6.sub r32,r/m32
7.sub r8,imm8
8.sub r16,imm16
9.sub r32,imm32
四. 與運算and
and eax,12
and 目標運算元 ,源運算元
作用:用目標運算元和源運算元進行(與運算&),並且把結果存到目標運算元
1.and r/m8 ,r8
2.and r/m16 ,r16
3.and r/m32 ,r32
4.and r8,r/m8
5.and r16,r/m16
6.and r32,r/m32
7.and r8,imm8
8.and r16,imm16
9.and r32,imm32
五.或運算or
or eax,12
or 目標運算元 ,源運算元
作用:用目標運算元和源運算元進行(或運算|),並且把結果存到目標運算元
1.or r/m8 ,r8
2.or r/m16 ,r16
3.or r/m32 ,r32
4.or r8,r/m8
5.or r16,r/m16
6.or r32,r/m32
7.or r8,imm8
8.or r16,imm16
9.or r32,imm32
六.異或運算or
xor eax,12
xor 目標運算元 ,源運算元
作用:用目標運算元和源運算元進行(異或運算),並且把結果存到目標運算元
1.xor r/m8 ,r8
2.xor r/m16 ,r16
3.xor r/m32 ,r32
4.xor r8,r/m8
5.xor r16,r/m16
6.xor r32,r/m32
7.xor r8,imm8
8.xor r16,imm16
9.xor r32,imm32
七.not運算
not eax
not 目標運算元
作用:用目標運算元把運算元按位取反
1.not r/m8
2.not r/m16
3.not r/m32
八 .取記憶體位址
lea eax,dword ptr ds:[0012ffc4]
lea 目標運算元 ,源運算元
作用把記憶體編號位址0012ffc4值給到eax ,存記憶體值
九.堆疊
1.push eax 壓棧:把eax的資料壓到棧頂裡面
2.pop eax 出棧:把棧頂的資料彈出到eax
壓棧,出棧可以操作eax(4個位元組,32位二進位制)和 ax(2個位元組,16位二進位制),8位二進位制則不行
3.pushad 是一次性直接壓入8個暫存器的資料
4.popad 一次性出棧8個暫存器的資料
十.adc 帶進製的加法指令
mov eax ,1
adc eax,2 結果為4
adc r//m,/r/m/im 兩邊不能同時為記憶體
十一.sbb 帶借位的減法
sbb r//m,/r/m/im 兩邊不能同時為記憶體
十二.xchg 交換資料
xchg eax,ecx
xchg r//m,/r/m 兩邊不能同時為記憶體
十三.movs 移動資料 記憶體-記憶體
movsb byte ptr es:[0x12345678],byte ptr ds:[0x1ffcde]
movsw word ptr es:[0x12345678],word ptr ds:[0x1ffcde]
movsd dword ptr es:[0x12345678],word ptr ds:[0x1ffcde]
記憶體編號位址會加2個位元組還是減會受到df位的影響
十四.stos指令:將al/ax/eax的值儲存到[edi]指定的記憶體單元
stosb byte ptr es:[edi]
stosw word ptr es:[edi]
stosd dword ptr es:[edi]
記憶體編號位址會加2個位元組還是減會受到df位的影響
十四.rep指令:按計數暫存器(ecx)中指定的次數重複執行字串指令
mov ecx,5
rep stosb byte ptr es:[edi]
彙編記錄 99 彙編指令
mov 賦值 指令 mov a,b 把 b 的資料傳送到 a 中 有以下形式 1 mov 暫存器,任意 資料 記憶體單元 暫存器 段暫存器 字元 mov ax,9 1 bx ds a 2 mov 記憶體單元,暫存器 段暫存器 mov 2 bx ds 3 mov 段暫存器,暫存器 記憶體單元 mov ...
od基礎彙編
標誌暫存器代表某種狀態。在32位cpu中有32個不同的標誌暫存器,不過不用擔心,我們只關心其中的3個 zf of cf。在逆向工程中,你了解了標誌暫存器就能知道程式在這一步是否會跳轉,標誌暫存器就是乙個標誌,只能是0或者1,它們決定了是否要執行某個指令。z flag 零標誌 zf是破解中用得最多的暫...
彙編常用指令記錄
指令的一般格式 其中 為不可省略,為可以省略。注意 opcode cond s之間沒有空格,s和rd之間使用空格隔開。lsl 左移指令 mov r1,r0,lsl 3 將暫存器r0中的值左移3位後傳送到暫存器r1中cmp 比較指令 cmp r1,r0 將暫存器r1的值與暫存器r2的值相減,並根據結果...