Win32 組合語言入門 [1]:選擇 RADASM 編輯器與 MASM32 工具鏈
工具選擇 組譯器:MASM(Microsoft Macro Assembler),普及度高、資源豐富。 整合開發環境:RadASM(官網 oby.ro),支援
Win32 組合語言入門 [2]:最簡單的 Win32 視窗程式
完整程式碼 ; Test2_1.asm .386 .model flat, stdcall include Windows.inc include user
Win32 組合語言入門 [3]:主控台程式三種輸出方式比較
學習 Win32 組語雖以 GUI 為目標,但主控台程式代碼最少、最適合驗證邏輯。以下介紹三種在主控台輸出文字的方法。 方法一:MASM32 StdOut 函
Win32 組合語言入門 [4]:資料型別、宣告與進制表示
MASM 基本資料型別對照表 說明型別縮寫位元位元組範圍 / 精度 位元組BYTEDB810..255 有號位元組SBYTEDB81-128..127 字WO
Win32 組合語言入門 [5]:DUP 偽指令與陣列操作完全指南
基本陣列宣告與存取 dd 宣告雙字(4 位元組)陣列,元素間以逗號分隔。存取時需手動計算位移(索引 × 4)。 ; Test5_1.asm .386 .mode
Win32 組合語言入門 [6]:字元與字串的多種定義方式
字串定義的六種等價寫法 以下六種宣告方式在記憶體中產生完全相同的位元組序列 41 42 43 44 45 46 47 00(ABCDEFG + 結束符)。 ;
Win32 組合語言入門 [7]:算術、關係、邏輯運算符完整指南
算術運算符優先順序表 運算符名稱優先級 ()括號1(最高) +、-正負號2 *、/乘除3 MOD取模3 +、-加減4(最低) 算術運算範例 ; Test7
Win32 組合語言入門 [8]:子程序與區域變數宣告(MSVCRT 版)
子程序定義與 MSVCRT 輸出 本篇內容與第 9 篇相似,差別在於使用 msvcrt.inc / msvcrt.lib 的 crt_printf 進行輸出,而
Win32 組合語言入門 [9]:子程序與區域變數宣告(MASM32 版)
定義子程序:PROC / ENDP 使用 PROC 與 ENDP 成對定義子程序。程式進入點由 end 主程序名 指定。 ; Test9_1.asm .386
Win32 組合語言入門 [10]:TYPE、$、LENGTHOF、SIZEOF、TYPEDEF 操作符詳解
TYPE:取得型別大小 TYPE 回傳變數或型別的位元組大小。對陣列而言,回傳單一元素大小而非整個陣列。 ; Test10_1.asm .386 .model
Win32 組合語言入門 [11]:資料對齊偽指令 ALIGN、EVEN、ORG 詳解
在 32 位元架構下,暫存器容量為 4 位元組。若記憶體中的資料皆依 4 的倍數位址對齊,CPU 存取效率將顯著提升。然而,現實情況往往是不同大小的資料混雜,導
Win32 組合語言學習筆記 [12]:PTR、OFFSET、ADDR 差異詳解
PTR:指定操作數大小 .data val db 11h,22h,33h,44h,55h,66h,77h,88h .code xor eax, eax mov
Win32 組合語言學習筆記 [13]:符號常數定義 (=、EQU、TEXTEQU)
三種偽指令比較 指令可重複定義支援類型字串語法推薦度 =是整數/整數運算式不支援低 EQU否 (通常)整數、字串、運算式<str>高 TEXTEQ
Win32 組合語言學習筆記 [14]:中括號 [] 記憶體運算元
核心語義 [address] 表示「取得該位址指向的內容」(解參考)。 基本用法 .data ddVal dd 123 .code PrintDec off
Win32 組合語言學習筆記 [15]:LOOP 指令與標號
LOOP 基本機制 ECX = 迴圈次數 每次迴圈 ECX--,直到 ECX=0 結束 配合標號 定義迴圈範圍 笨方法 vs LOOP { 笨方法: 3
Win32 組合語言學習筆記 [16]:常用暫存器功能速查
通用暫存器 暫存器全名16位8位慣用用途 EAXAccumulatorAXAH/AL累加器、乘除法、函數返回值 EBXBaseBXBH/BL基址、記憶體資料指
Win32 組合語言學習筆記 [17]:堆疊基礎與 PUSH/POP
堆疊與執行緒切換的類比 CONTEXT 結構保存執行緒所有暫存器狀態。堆疊操作同理:呼叫子程序前 PUSH 保存暫存器,返回後 POP 恢復。 堆疊 vs 堆
Win32 組合語言學習筆記 [18]:堆疊操作進階
堆疊生長方向與 ESP 堆疊由高位址向低位址生長。每次 PUSH:ESP = ESP - 4 (32 位) 或 -2 (16 位);POP 則相反。ESP 永遠