Win32彙編基礎

2021-08-03 07:05:54 字數 955 閱讀 1410

常用指令

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