C語言-寫入組合語言
用Dev-C 做舉例說明
以下程式碼:
熟悉組合語言的人應該都很清楚
用Ollydbg去分析的話,跟這邊有點差異性,OD是從右到左
而devc的asm語法卻是由左到右
簡單分析一下流程
__asm("mov _a, %eax");
定義了 a與b 各等於 1
mov _a, %eax
這邊的eax就是暫存器
而" _a "代表著變數 a
把a的值放入eax暫存器裡面
這樣一條組合語言就結束了
__asm("mov _b, %ebx");
這句也是同樣理解
把b的值放入ebx暫存器裡面
__asm("add %ebx, %eax");
add是"加"的意思,把ebx+eax,將結果放入eax,這邊是2
__asm("mov %eax, _a");
最後一句,把eax的值放入a裡面
把2放入a
最後印出a的值,等於2
有著作權,請勿轉載。若要分享,請註明本篇來源。