亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

前言

本學(xué)期學(xué)校安排有匯編語(yǔ)言這門課,需要自己搭建匯編語(yǔ)言開發(fā)環(huán)境,特此寫下本文記錄搭建過(guò)程.

關(guān)于搭建匯編語(yǔ)言開發(fā)環(huán)境的教程,我也找了許多,可看下來(lái)卻依舊一頭霧水,經(jīng)過(guò)本人摸索,同時(shí)結(jié)合網(wǎng)上教程,欲寫下這篇易懂的文章.

準(zhǔn)備工作

1.下載DOSBox

工具介紹:DOSBox是一個(gè)DOS模擬程序,由于它采用的是SDL庫(kù),所以可以很方便的移植到其他的平臺(tái).目前,DOSBox已經(jīng)支持在Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系統(tǒng)中運(yùn)行.不少DOS下的游戲都可以直接在該平臺(tái)上運(yùn)行.

工具官網(wǎng):DOSBox, an x86 emulator with DOS

項(xiàng)目主頁(yè):
https://sourceforge.net/projects/dosbox/

下載鏈接1(32位):
http://sourceforge.net/projects/dosbox/files/dosbox/0.74/DOSBox0.74-win32-installer.exe/download/

下載鏈接2(這個(gè)是我下載好的,可能會(huì)快一點(diǎn)):
https://idefun.lanzoux.com/i4TQgm4zjkf/

2.下載匯編工具包

下載鏈接:
https://idefun.lanzoux.com/i4TQgm4zjkf/

匯編工具截圖

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

安裝教程

1.安裝DOSBox

雙擊運(yùn)行DOSBox安裝程序

點(diǎn)擊next

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

選擇安裝位置(我選擇都是D:DOSBox)然后點(diǎn)擊install即可

安裝位置要記得,后面要用

2.創(chuàng)建工作目錄

安裝完畢創(chuàng)建一個(gè)工作目錄(目錄位置及目錄名可自定義)

我的是在D:/DOSBox/Debug

之后再在Debug下創(chuàng)建兩個(gè)文件夾ASM(放自己寫的匯編程序)和MASM(放匯編工具)

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

將匯編工具放入MASM文件夾

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

3.掛載工作目錄

打開DOSBox安裝目錄(我的在D:DOSBox)

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

打開后找到DOSBox 0.74 Options.bat這個(gè)批處理文件

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

直接雙擊運(yùn)行會(huì)出現(xiàn)一個(gè)記事本

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

使用快捷鍵Ctrl+F查找其中的[autoexec]部分(一般在文件末尾)

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

在文件中添加下列內(nèi)容并保存

MOUNT F D:DOSBoxDebug
set PATH=%PATH%;F:MASM;
F:
cd F:ASM
cls

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

命令解釋:

#掛載工作目錄掛載到虛擬盤符F(虛擬盤符可自定義,命令不區(qū)分大小寫)
MOUNT F D:DOSBoxDebug
#添加系統(tǒng)臨時(shí)變量(此時(shí)的F代表的是D:DOSBoxDebug)
set PATH=%PATH%;F:MASM;
#轉(zhuǎn)到F盤符
F:
#切換到F:ASM目錄
cd F:ASM
#執(zhí)行一次清屏
cls

如果不加cls,打開會(huì)是這樣

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

加上cls,打開會(huì)是這樣(我覺得更美觀,依個(gè)人喜好)

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

注意:不進(jìn)行此種配置的話,每次打開DOSBox是需要手動(dòng)輸入上述命令,非常麻煩

使用說(shuō)明

DOSBox常用快捷鍵

快捷鍵

作用

Alt+Enter

切換全屏

Ctr+F1

改變鍵盤映射

Alt+Pause

暫停模擬

Ctrl+Alt+F5

開始/停止錄制視頻

Ctrl+F4

交換掛載的磁盤映像,也就是更新磁盤文件

Ctrl+F5

截圖

Ctrl+F6

開始/停止錄制聲音

Ctrl+F7

減少跳幀

Ctrl+F8

增加跳幀

Ctrl+F9

關(guān)閉DOSBOX

Ctrl+F10

捕捉/釋放鼠標(biāo)

Ctrl+F11

模擬減速

Ctrl+F12

加速模擬

Alt+F12

不鎖定速

注意:以上快捷鍵我并沒有全部測(cè)試,更多詳細(xì)信息參見README.txt(在DOSBox安裝目錄中的Documentation里面)

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

調(diào)整窗口大小

初始的界面很小,且不能直接拉伸界面,所以有需要的可以按照下面的方法調(diào)整一下
雙擊打開DOSBox 0.74 Options.bat

使用快捷鍵Ctrl+F查找windowresolution字段

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

windowresolution=original
output=surface

改為

windowresolution=800x500 #800x500為自定義大小,可修改
output=opengl

注意:不用刪除原來(lái)的語(yǔ)句,在前面加上#注釋掉即可

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

保存后,重啟DOSBox生效

創(chuàng)建并編輯文件

關(guān)于創(chuàng)建并編輯文件,如果你的工作目錄(掛載的目錄)有EDIT.COM文件(我提供的匯編工具包中有),那么你就可以在DOSBox中創(chuàng)建并編輯文件,如果沒有請(qǐng)使用我提供的工具包或者耐心往下看.

使用DOSBox創(chuàng)建并編輯文件(不推薦)

打開DOSBox使用下面命令創(chuàng)建并編輯test.asm文件

edit test.asm

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

回車后進(jìn)入下面界面即可進(jìn)行編輯(注意:鼠標(biāo)箭頭只能在編輯器里活動(dòng),想將鼠標(biāo)退出來(lái)的話可以用Ctrl+F10組合鍵退出)

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

使用記事本創(chuàng)建并編輯文件(其他編輯器也可以)

下面以此種方式創(chuàng)建test.asm文件

新建文本文檔,將下面代碼復(fù)制到里面并保存

datas segment
buf db'Hello, World!$'
datas ends
stacks segment stack
db 200 dup(0)
stacks ends
codes segment
assume cs:codes,ds:datas,ss:stacks
start:
mov ax,datas
mov ds,ax
mov dx,seg buf
lea dx,buf
mov ah,09h
int 21h
mov ah,4ch
int 21h
codes ends
end start

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

之后重命名為test.asm

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

編譯調(diào)試

打開DOSBox輸入下面命令

masm test.asm

回車后會(huì)詢問(wèn)文件名,建議直接回車

編譯程序提示輸入交叉引用文件的名稱,這個(gè)文件同列表文件一樣,是編譯器將源程序編譯為目標(biāo)文件過(guò)程中產(chǎn)生的中間結(jié)果.可以讓編譯器不生成這個(gè)文件,直接按Enter鍵即可

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 


Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

可以像上圖一樣分別輸入文件名,打開ASM查看如下

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

本文全部默認(rèn)即不分別輸入文件名直接回車

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

打開ASM文件夾查看如下

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

繼續(xù)輸入命令

link test.obj

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

運(yùn)行完畢,查看ASM文件夾

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

繼續(xù)執(zhí)行下列命令

debug test.exe

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

debug的簡(jiǎn)單使用

debug是Dos、windows提供的實(shí)模式(8086方式)程序的調(diào)試工具

  • 可以查看CPU各種寄存器的內(nèi)容
  • 可以查看內(nèi)存的情況
  • 可以在機(jī)器碼級(jí)別跟蹤程序的運(yùn)行

命令

作用

R命令

查看、改變CPU寄存器的內(nèi)容

D命令

查看內(nèi)存中的內(nèi)容(機(jī)器指令形式)(16進(jìn)制顯示)

E命令

改寫內(nèi)存中的內(nèi)容,即提供指令(使用機(jī)器指令),用得比較少,多為A命令

U命令

查看內(nèi)存中的內(nèi)容(將機(jī)器指令形式轉(zhuǎn)換為匯編指令的形式)(反編譯)

T命令

執(zhí)行一條匯編(機(jī)器)指令(就是執(zhí)行當(dāng)前指令緩沖器中的指令)

A命令

相比較E,使用匯編指令進(jìn)行內(nèi)存修改——向內(nèi)存提供機(jī)器指令

P命令

在遇到匯編指令為int xx 時(shí),使用p指令結(jié)束(否則CPU會(huì)指向一個(gè)
未知的地址段)

G命令

執(zhí)行完exe運(yùn)行結(jié)果顯示

Q命令

退出debug

?命令

查看指令幫助

R命令

查看CPU寄存器的內(nèi)容

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

標(biāo)識(shí)名

置位

復(fù)位

溢出Overflow(是否)

OV

NV

向Direction(減量/增量)

DN

UP

中斷Interrupt(允許/屏蔽)

EI

DI

符號(hào)Sign(負(fù)正)

NG

PL

零Zero(是否)

ZR

NZ

輔助進(jìn)位Auxiliary Carry(是否)

AC

NA

奇偶Parity(偶奇)

PE

PO

進(jìn)位Carry(是否)

CY

NC

改變標(biāo)志位的值

rf

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

改變CPU寄存器的內(nèi)容

改變ax的值

直接回車退出修改

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

改變CS:IP的值

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

D命令

使用D命令,debug將輸出3部分內(nèi)容:

  1. 中間是從指定地址開始的128個(gè)內(nèi)存單元的內(nèi)容,用16進(jìn)制的格式輸出,每行的輸出從16的整數(shù)倍的地址開始,最多輸出16個(gè)單元的內(nèi)容.注意在每行的中間有一個(gè)"-",它將每行的輸出分為兩部分,這樣便于查看
  2. 左邊是每行的起始地址
  3. 右邊是每個(gè)內(nèi)存單元中的數(shù)據(jù)對(duì)應(yīng)的可顯示的ASCII碼字符.若沒有對(duì)應(yīng)可顯示的ASCII字符,debug就用"."來(lái)代替
Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

在一進(jìn)入debug后,用D命令直接查看,將列出debug預(yù)設(shè)的地址處的內(nèi)容

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

使用d 段地址:偏移地址查看(以d 1000:0為例)

格式:d 段地址:偏移地址
使用"d 段地址:偏移地址"的格式來(lái)查看,debug將列出從指定內(nèi)存單元開始的128個(gè)內(nèi)存單元的內(nèi)容

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

在使用"d 段地址:偏移地址"之后,接著使用D命令,可列出后續(xù)的內(nèi)容

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

也可以指定D命令的查看范圍,此時(shí)采用"d 段地址:起始偏移地址 結(jié)尾偏移地址"的格式

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

若輸入的地址不是16的倍數(shù),則輸出效果是這樣的

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

E命令

將內(nèi)存1000:0-1000:9單元中的內(nèi)容分別寫為0、1、2、3....、9,可以用"e 段地址:起始地址 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) ……"的格式來(lái)進(jìn)行

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

用E命令以提問(wèn)的方式來(lái)逐個(gè)地修改從某一地址開始的內(nèi)存單元中的內(nèi)容

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

  • 紅色部分為用戶輸入的修改的數(shù)據(jù),到了某一內(nèi)存單元的時(shí)候,可以選擇修改(輸入要修改的數(shù)值),也可以選擇不修改(直接按空格),處理完一個(gè)內(nèi)存單元之后,按空格,繼續(xù)處理下一個(gè)內(nèi)存單元;全部都處理完畢之后,按enter

可以用E命令向內(nèi)存中寫入字符

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

也可以用E命令向內(nèi)存中寫入字符串

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

用E命令向內(nèi)存中寫入機(jī)器碼,用T命令執(zhí)行內(nèi)存中的機(jī)器碼

e 1000:0 b8 01 00 b9 02 00 01 c8

機(jī)器碼

對(duì)應(yīng)的匯編指令

b80100

mov ax,0001

b90200

mov cx,0002

01c8

add ax,cx


Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

用E命令向從1000:0開始的內(nèi)存單元中寫入了8個(gè)字節(jié)的機(jī)器碼
用D命令查看內(nèi)存1000:0~1000:1f中的數(shù)據(jù)(從數(shù)據(jù)的角度看一下寫入的內(nèi)容)
用U命令查看從1000:0開始的內(nèi)存單元中的機(jī)器指令和他們所對(duì)應(yīng)的匯編指令

U命令

對(duì)機(jī)器代碼反匯編顯示

按地址反匯編

u 地址

該命令從指定地址開始,反匯編32個(gè)字節(jié),若地址省略,則從上一個(gè)U命令的最后一個(gè)指令的下一個(gè)單元開始顯示32個(gè)字節(jié)

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 


Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

按范圍反匯編

u 范圍

T命令

?命令

輸入?查看更多命令

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

結(jié)果如下:

Windows10下搭建匯編語(yǔ)言開發(fā)環(huán)境

 

分享到:
標(biāo)簽:環(huán)境 開發(fā)
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定