汇编DOS与Windows Masm编译运行代码步骤详解
【目的】
掌握window 的基本Masm for Windows集成實驗環境2015的使用
掌握win xp下DOS環境下masm5的編譯和運行
掌握win7、win10使用DOSBox實現虛擬DOS環境下masm5的編譯和運行
【兩種調試代碼的方式】
【DOS環境下masm5的編譯和運行】
1、源代碼:
STACKS SEGMENT STACK ;定義一個棧段DW 128 DUP(?) ;注意這里只有128個字節 STACKS ENDS ; 標志該段結束DATAS SEGMENT;對datas數據段進行定義STRING DB 13,10,'Hello World!',13,10,'$';13,10分別對應ascII值的代表回車和換行, $是串結束符 DATAS ENDSCODES SEGMENT;定義一個codes段ASSUME CS:CODES,DS:DATAS;段分配語句,將代碼段codes與段寄存器cs聯系起來,將數據段datas與數據寄存器ds聯系起來 START: ;匯編開始部分,類似于main函數{MOV AX,DATAS;把數據段寄存器AX的值賦為DATAS,就是讓數據段指向正確的位置MOV DS,AX;將數據段地址通過ax寄存器裝入ds寄存器LEA DX,STRING;將串地址放入DX中MOV AH,9 INT 21H;調用DOS功能,顯示DS:DX地址處的字符MOV AH,4CHINT 21H;程序返回 CODES ENDS ;名稱為codes的段到此結束,相當于}END START;匯編指令結束2、代碼、過程、相應結果的說明與分析:
(1)通過掛載的方式將masm5目錄虛擬為c盤
通過掛載的方式避免每次打開DOSBox后重復地進入masm5目錄
(2)masm hw.asm 生成hw.obj二進制文件*
obj文件一般是Object的簡寫,是程序編譯后的二進制文件,obj文件可稱為目標文件或中間文件。另外obj文件只給出了程序的相對地址。
(3)用dir命令查看當前文件夾下的所有文件
(4)將hw.obj與庫文件連接生成hw.exe可執行文件
obj文件在通過鏈接器和資源文件鏈接生成exe文件
通過dir命令查看在目錄下有了hw.exe文件,它是通過masm,link匯編成的exe可執行文件。
(5)運行hw.exe文件
運行該文件,由輸出內容可以判斷,程序運行成功。
【Windows方式調試代碼】
1、源代碼:
同上所示,不再贅述
2、代碼、過程、相應結果說明和分析:
(1)運行代碼
將源代碼復制,在Masm for Windows中保存為windows_Test,并運行。出現DOS命令框并顯示Hello world!
(2)調試代碼
在調試工具里選擇DEBUG調試,并通過t命令完成單步調試。
【總結心得】
? 通過本次實驗,我從實踐的角度理解了匯編的運行過程,在匯編書里學到的知識第一次在代碼中有所體現,其中包括MOV,LEA的實現。理解每一步的意思,每一段代碼的含義讓我花了很大的功夫。例如生成的obj文件,通過查詢資料得知它是Object的簡寫,是程序編譯后的二進制文件,在通過鏈接器和資源文件鏈接就成exe文件了,obj文件可稱為目標文件或中間文件。而編譯的過程則是由asm->obj->exe,另外obj文件只給出了程序的相對地址,還有注釋的寫法,和其他語言不同,我學習到匯編語言的注釋符號是;在這過程中也收獲了很多匯編以外的操作知識,例如掛載C盤的操作,是我以前沒有嘗試過的,同時我也通過查詢資料的方式進一步了解了這個操作,并且在虛擬機的Ubuntu系統中完成了掛載。
初學匯編,可能存在錯誤之處,還請各位不吝賜教。
受于文本原因,本文相關實驗工程無法展示出來,現已將資源上傳,可自行下載。
山東大學微處理器原理實驗1.1工程文件 匯編程序 HelloWorld
總結
以上是生活随笔為你收集整理的汇编DOS与Windows Masm编译运行代码步骤详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「IT基础」计算机网络概述
- 下一篇: 电脑关机状态重置BIOS