天天看點

Win32彙編學習(1)--Win32彙編簡介

在這裡不得不再次提及大學上的基礎課8086彙編,16位彙編基礎。也是我們了解彙編原理的基礎課程。随着cpu的發展和cpu指令集的豐富。目前真正實用的是win32彙編。

編譯器采用微軟的MASM。目前常用的是MASM32 8.0可以在微軟的網站上下載下傳。Win32彙編可以寫出像WIn32 MFC一樣的程式。但随着MFC,delphi、C#等內建環境的運用。這個學科被越來越多的人忘記。但是在修改記憶體描述表和過驅動保護的時候,為了保持堆棧平衡,也不的不用彙編語言實作。記得很多人和我說彙編他們學過,我記得好像上過大學的都學過。但是有幾個人真會呢?我們以HelloWord舉例Win32彙編的寫法。具體的看代碼

DATAS  SEGMENT
     STRING  DB  13,10,'Hello World!',13,10,'$'
DATAS  ENDS

CODES  SEGMENT
     ASSUME    CS:CODES,DS:DATAS
START:
     MOV  AX,DATAS
     MOV  DS,AX
     LEA  DX,STRING
     MOV  AH,9
     INT  21H
   
     MOV  AH,4CH
     INT  21H
CODES  ENDS
    END   START
           

編譯器采用 MASM SDK,代碼書寫工具采用EditPlus

1、啟動指令行cmd。

cmd中應該包含彙編庫和頭檔案,設定cmd的路徑

[plain]  view plain copy

Win32彙編學習(1)--Win32彙編簡介
Win32彙編學習(1)--Win32彙編簡介
  1. set Masm32Dir=C:\Masm32  
  2. set include=%Masm32Dir%\Include;%include%  
  3. set lib=%Masm32Dir%\lib;%lib%  
  4. set path=%Masm32Dir%\Bin;%Masm32Dir%;%PATH%  

2、進入cmd進入代碼檔案夾編譯 CMD>cd C:\HelloWord。

[cpp]  view plain copy

Win32彙編學習(1)--Win32彙編簡介
Win32彙編學習(1)--Win32彙編簡介
  1. ml /c /coff HelloWord.asm  
  2. Link /subsystem:windows HelloWord.obj  

上面隻是一個簡單的Win32控台下的HelloWorld。

當然推薦大家可以查閱<<Windows環境下32位彙編語言程式設計>>這本書。非常不錯