匯編語言開發(fā)過程詳解
程序開發(fā)過程
一、逐步開發(fā)
(1)源程序的編輯
- 源程序文件是無格式文件、純文本類型
- 以.ASM為擴(kuò)展名,可使用任何文本編輯器
►Windows的記事本Notepad
►其他程序開發(fā)工具中的編輯環(huán)境
►專注于源程序編寫的編輯軟件,例如UltraEdit32
; eg0000.asm in Windows Console include io32.inc .data msg byte 'Hello World' ; 數(shù)據(jù)定義 .code start: mov eax,offset msg call dispmsg exit 0 end start
(2)源程序的匯編
- 生成目標(biāo)模塊文件(.OBJ)
- MASM 6.x的匯編程序是ML.EXE
BIN\ML /c /coff eg0101.asm
►參數(shù)“/c”(小寫字母)實(shí)現(xiàn)源程序的匯編
►參數(shù)“/coff”(小寫字母)生成COFF格式目標(biāo)模塊文件
ML.EXE的參數(shù)區(qū)別大小寫
將源文件放在MASM目錄
(3)目標(biāo)文件的連接
- 把一個(gè)或多個(gè)目標(biāo)文件和庫文件合成一個(gè)可執(zhí)行文件
- 可執(zhí)行文件以.EXE為擴(kuò)展名
- 32位連接程序被更名為LINK32.EXE
BIN\LINK32 /subsystem:console eg0101.obj
►“/subsystem:console”生成Windows控制臺(tái)(Console)文件
►“/subsystem:windows”生成Windows圖形窗口的可執(zhí)行文件
使用批處理文件方便操作
匯編程序只指出語法錯(cuò)誤
(4)可執(zhí)行文件的運(yùn)行
- 進(jìn)入控制臺(tái)(或模擬DOS)環(huán)境
- 在命令行提示符下輸入文件名(可以省略擴(kuò)展名)按下回車鍵運(yùn)行
eg0101.exe
運(yùn)行錯(cuò)誤,就需要
- 靜態(tài)排錯(cuò):閱讀分析源程序
- 動(dòng)態(tài)排錯(cuò):利用調(diào)試程序
不要在Windows下雙擊運(yùn)行
二、列表文件與調(diào)試程序
(1)列表文件
列表文件(.LST)含有源程序和目標(biāo)代碼
BIN\ML /c /coff /Fl eg0101.asm
“/Fl”創(chuàng)建列表文件(大寫F、小寫l,不是數(shù)字1)
列表文件有兩部分內(nèi)容
- 第一部分:源程序及其代碼
- 第二部分:各種標(biāo)識(shí)符
(2)調(diào)試程序
- WinDbg是微軟提供的Windows調(diào)試程序
- WinDbg支持源程序級(jí)調(diào)試,但匯編、連接時(shí)要加入?yún)?shù)
匯編時(shí)用“/Zi”(大寫Z、小寫i)參數(shù)
BIN\ML /c /coff /Fl /Zi eg0101.asm
連接時(shí)用“/debug”參數(shù)
BIN\LINK32 /subsystem:console /debug eg0101.obj
三、快速開發(fā)
快速開發(fā)的批處理文件MAKE32.BAT
@echo off BIN\ML /c /coff /Fl /Zi %1.asm if errorlevel 1 goto terminate BIN\LINK32 /subsystem:console /debug %1.obj if errorlevel 1 goto terminate DIR %1.* :terminate @echo on
快速開發(fā)過程
① 進(jìn)入MASM目錄:雙擊文件WIN32.BAT
② 生成可執(zhí)行文件:make32 eg0101
到此這篇關(guān)于匯編語言開發(fā)過程的文章就介紹到這了,更多相關(guān)匯編語言開發(fā)過程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
匯編語言XOR指令:對(duì)兩個(gè)操作數(shù)進(jìn)行邏輯(按位)異或操作(推薦)
匯編語言(assembly language)是一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語言,亦稱為符號(hào)語言。這篇文章主要介紹了匯編語言XOR指令:對(duì)兩個(gè)操作數(shù)進(jìn)行邏輯(按位)異或操作,需要的朋友可以參考下2020-01-01iOS匯編入門教程之在Xcode工程中嵌入?yún)R編代碼的方法
在Xcode中嵌入?yún)R編代碼主要依賴了C語言支持通過 __asm__ 引入?yún)R編代碼的功能。這篇文章主要介紹了iOS匯編入門教程之在Xcode工程中嵌入?yún)R編代碼的方法,需要的朋友可以參考下2020-02-02匯編語言實(shí)現(xiàn)在指定字符串中搜索字符''A''的方法
這篇文章主要介紹了匯編語言實(shí)現(xiàn)在指定字符串中搜索字符'A'的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02