常用指令
mov 目標運算元,源運算元
mov eax,0x0
進行資料傳遞
movzx
mov zero x 以0填充高位,用法同上,
push
poppushad
所有暫存器壓棧(8個)
popad
所有暫存器出棧(8個)
lea
取位址指令,類似c語言中的&
call
呼叫函式指令
add + 加
sub - 減指令
mul * 乘法
div / 除法
inc a++
dec a–
and & 與
xor ^ 異或
or | 或
not ~ 非
shl << 邏輯左移
shr >> 邏輯右移
cmp eax,ebx
比較eax與ebx,
常與je,jne,jz,jnz,jge,jle 連用
je 如果cmp相等,就跳轉
jne
如果cmp不等,則跳轉
_stdcall
_cdecl
函式呼叫,需要將引數依次入棧,
以上兩種函式 呼叫是從右向左壓棧
函式執行完畢返回後,需要清除壓入棧的引數,
stdcall是由被呼叫的函式清除引數占用的空間
即執行retn n 返回,並清除n個位元組的空間
但此方式需要知道函式的引數數目,為了解決不定引數的函式的呼叫問題(如printf)
產生了cdcel呼叫,cdecl是由主調函式來清除被調函式的引數,即 add esp n
因為主調函式是清楚有幾個引數的,
在windows程式中使用控制台
if(0!=attachconsole(-1))//附加到乙個控制台
Win32彙編 實數
386 選擇的處理器 model flat,stdcall option casemap none 指明識別符號大小寫敏感 include kernel32.inc 要引用的標頭檔案 includelib kernel32.lib 要引用的庫檔案 includelib msvcrt.lib 引用c庫...
開始學習win32彙編
前段時間對於csdn的部落格系統徹底失望,在我現在寫的東西都還不知道能不能正常發出去,鬱悶,加上過年有這麼久沒有來了。這段時間開始學習彙編,說到彙編,大學開過兩門相關課程,微機原理和微控制器都是學這方面的,不過那都是8086,51級別的彙編,感覺根本跟不上時代,那時候學的還不錯 現在想學習學習win...
win32彙編快速入門
彙編可以開發windows程式?答案是肯定的,用win32組合語言開發出來的windows程式具有執行效率高 占用空間小等特點。m32v9r.zip 二 知識預備 1 暫存器 為了提高運算速度和資料的訪問速度,在計算機的cpu內,有一組硬體裝置,第乙個裝置內存放cpu運算需要的數,這些數值可供cpu...