組合語言 EXE 檔案深度解析:重定位、覆蓋、堆疊初始化與常駐程式架構
前言 EXE 檔案結構、載入時重定位、覆蓋機制、堆疊初始化與常駐程式設計,是組合語言系統程式設計師必須掌握的核心知識。本文透過三個原始檔(a1.asm/a2.a
Win32 組合語言 DeviceIoControl 介面完整實戰:動態 VxD 與 Ring-3 應用程式通訊
前言 DeviceIoControl 是 Win32 應用程式與動態 VxD 通訊的標準橋樑,實現 Ring-3 到 Ring-0 的受控呼叫。本文完整解析四大
Windows 9x VxD 程式設計入門:靜態/動態載入、控制訊息與服務呼叫完整教學
前言 承接上篇 LE 格式與架構基礎,本文深入實戰:靜態與動態 VxD 的載入機制、初始化/結束控制訊息處理、函數建構慣例、呼叫慣例與位址運算,助您撰寫可正常運
Windows 9x VxD 驅動程式開發:LE 格式與段結構完整指南
前言 虛擬裝置驅動程式(VxD)是 Windows 9x 核心架構的關鍵組件。本文完整解析 VxD 的線性可執行檔(LE)格式、段類型分類、模組定義檔(.DEF
組合語言 ODBC 進階:結果集擷取與 SQLBindCol/SQLFetch 完整解析
前言 執行 SQL 查詢後,如何高效、正確地處理回傳的結果集,是 ODBC 程式設計的關鍵。本文深入解析 SQLNumResultCols、SQLBindCol
組合語言 Windows 程式設計:ODBC 資料庫完整實戰教學
前言 在 Win32 組合語言中操作資料庫,透過 ODBC API 是最標準的路徑。本文完整解析一個基於對話框的 Access 資料庫應用程式,涵蓋連線管理、查
組合語言圖形程式設計:跑動小人動畫完整實作(320×200 模式)
前言 在 DOS 時代,利用 VGA 320×200 256 色模式(Mode 13h)配合自訂字型繪製動畫,是組合語言入門的經典專題。本文完整解析一個僅 1K
組合語言取得系統時間:DOS 與 BIOS 双模式完整實作
前言 在 DOS 環境下精確取得系統時間,是批次檔排程、定時觸發程式的基礎。本文解析一個完整的 TimeWait 範例,展示如何以條件組合同時支援 DOS IN
組合語言聲音程式設計:鍵盤驅動背景音效完整實作
前言 在即時系統與遊戲開發中,如何在等待使用者輸入的同時播放背景音效,是一個經典課題。本文深度解析一套完整的組合語言聲音常式庫,實現「鍵盤輪詢與音效更新並行」的
組合語言實作:簡單密碼輸入與星號遮罩版本完整教學
前言 在 DOS 環境下編寫組合語言程式時,密碼輸入是一項基礎且實用的技能。本文將詳細解析兩個經典範例:基本版密碼輸入與進階版星號遮罩輸入,幫助您掌握鍵盤中斷、
組合語言病毒查殺實戰:CIH 病毒檢測與清除程式原始碼深度解析
前言 CIH 病毒(又稱 Chernobyl、Spacefiller)是 1998 年極具破壞力的 Windows 9x PE 檔案感染型病毒,感染後不增加檔案
組合語言技巧:圖形模式下螢幕內容的高效保存與恢復(利用 VESA/INT 10h 不清除顯存切換模式)
前言 在 DOS 時代編寫內存駐留程式(TSR)或需要彈出視窗的工具時,常面臨一個難題:如何保存當前圖形模式下的螢幕內容?高解析度、真彩色模式下顯存高達數 MB
組合語言實作:硬碟保護鎖(MBR 級防盜啟動鎖)原理與原始碼深度解析
前言 這是一個基於 MBR(主開機記錄)的硬碟鎖定程式,包含兩個檔案:hdlock.exe(安裝/管理工具)與 hdlock.dat(寫入 MBR 的 512
組合語言 3D 圖形經典:旋轉星空盒子動畫原始碼賞析
前言 這是一個 1995 年由國外組合語言高手 Vulture 編寫的 3D 動畫小程式,僅用星號(像素點)構成立方體並在三軸持續旋轉。程式採用 TASM 理想
組合語言經典:一個有趣的 DOS 打字遊戲原始碼解析
前言 這是一個使用 MASM 5.0 編寫的純 DOS 環境打字練習遊戲,展示了早期 PC 時代程式設計師如何直接操作硬體(螢幕、鍵盤、計時器)實現互動式遊戲。
組語打造光柵選單系統:完整原始碼與巨集庫解析(TASM 版)
專案簡介 大二課程設計作品:純組合語言實現的圖形化下拉選單系統(光柵選單),支援鍵盤導航(方向鍵、Alt+熱鍵、Enter)、子選單彈出、視窗繪製、畫面保存/恢
組語實作:跨平台獲取作業系統版本(DOS 與 Windows 雙模式)
雙模式設計思路 利用 PE 格式的 Stub 機制:同一個 EXE 檔案在 DOS 下執行 Stub 代碼,在 Windows 下執行 PE 主程式。本程式實現
組語技巧:利用 CALL/POP 獲取運行時當前位址(位置無關碼核心)
經典模式 CALL @F @@: POP EBX 原理解析 CALL 指令會將**下一條指令的位址**(即返回位址)壓入堆疊 標號 @@: 即為該下一條指