運行匯編程序
Ⅰ 如何運行匯編程序
要運行匯編程序,可以有很多的方法,也可以用一些專門的軟體,但眾所周知,匯編的話,是即使用記事本也是可以寫出來然後在DOS環境下運行的,只要有MASM.EXE和LINK.EXE即可,當我們在記事本里寫好匯編程序時,應把它保存成.asm的格式,如sort.asm,然後在開始->運行中輸入cmd,轉到你存放程序的文件夾,最好所有的文件都是用英文命名,如我的是在D盤的huibian文件夾中
Ⅱ 如何在Vista命令提示符下運行匯編程序
debug是dos中的一個外部命令,從dos
1.0起就帶有此命令,因此可見此命令的重要性了。雖然此命令的功能非常強大,可以解決許多問題,可是對許多人來說,尤其是初學者來說,卻非常不易掌握。因此,現將debug的命令詳細介紹一番,以讓大家知道它的使用。
debug:a(匯編)
直接將
8086/8087/8088
記憶碼合並到內存。
該命令從匯編語言語句創建可執行的機器碼。所有數值都是十六進制格式,必須按一到四個字元輸入這些數值。在引用的操作代碼(操作碼)前指定前綴記憶碼。
a
[address]
參數
address
指定鍵入匯編語言指令的位置。對
address
使用十六進制值,並鍵入不以「h」字元結尾的每個值。如果不指定地址,a
將在它上次停止處開始匯編。
有關將數據輸入到指定位元組中的信息,請單擊「相關主題」列表中的
debug
e(鍵入)。
有關反匯編位元組的信息,請單擊「相關主題」列表中的
debug
u(反匯編)。
說明
使用記憶碼
段的替代記憶碼為
cs:、ds:、es:
和
ss:。遠程返回的記憶碼是
retf。字元串處理的記憶碼必須明確聲明字元串大小。例如,使用
movsw
可以移動
16
位的字串,使用
movsb
可以移動
8
位位元組串。
匯編跳轉和調用
匯編程序根據位元組替換自動將短、近和遠的跳轉及調用匯編到目標地址。通過使用
near
或
far
前綴可以替代這樣的跳轉或調用,如下例所示:
-a0100:0500
0100:0500
jmp
502
;
a
2-byte
short
jump
0100:0502
jmp
near
505
;
a
3-byte
near
jump
0100:0505
jmp
far
50a
;
a
5-byte
far
jump
可以將
near
前綴縮寫為
ne。
區分字和位元組內存位置
當某個操作數可以引用某個字內存位置或者位元組內存位置時,必須用前綴
word
ptr
或者前綴
byte
ptr
指定數據類型。可接受的縮寫分別是
wo
和
by。以下範例顯示兩種格式:
dec
wo
[si]
neg
byte
ptr
[128]
指定操作數
debug
使用包括在中括弧
([
])
的操作數引用內存地址的習慣用法。這是因為另一方面
debug
不能區分立即操作數和內存地址的操作數。以下範例顯示兩種格式:
mov
ax,21
;
load
ax
with
21h
mov
ax,[21]
;
load
ax
with
the
;
contents
of
;
memory
location
21h
使用偽指令
使用
a
命令提供兩個常用的偽指令:db
操作碼,將位元組值直接匯編到內存,dw
操作碼,將字值直接匯編到內存。以下是兩個偽指令的範例:
db
1,2,3,4,"this
is
an
example"
db
'this
is
a
quotation
mark:"'
db
"this
is
a
quotation
mark:'"
dw
1000,2000,3000,"bach"
範例
a
命令支持所有形式的間接注冊命令,如下例所示:
add
bx,34[bp+2].[si-1]
pop
[bp+di]
push
[si]
)
還支持所有操作碼同義詞,如下例所示:
loopz
100
loope
100
ja
200
jnbe
200
對於
8087
操作碼,必須指定
wait
或
fwait
前綴,如下例所示:
fwait
fadd
st,st(3)
;
this
line
assembles
;
an
fwait
prefix
debug:c(比較)
比較內存的兩個部分。
c
range
address
參數
range
指定要比較的內存第一個區域的起始和結束地址,或起始地址和長度。有關有效的
range
值的信息,請單擊「相關主題」列表中的「debug
說明」。
address
指定要比較的第二個內存區域的起始地址。有關有效
address
值的信息,請單擊「相關主題」列表中的「debug
說明」。
說明
如果
range
和
address
內存區域相同,debug
將不顯示任何內容而直接返回到
debug
提示符。如果有差異,debug
按如下格式顯示:
address1
byte1
byte2
addess2
Ⅲ 如何使用dosbox運行匯編語言程序
①安裝好dosbox,然後找到「dosbox...options.bat」,雙擊它,(別急著點dosbox.exe)。
然後就可以看到輸出的字元串
hello, world! @author: XXX
Ⅳ 可以編譯和運行匯編語言程序么
這個,你是不是補充一下問題,實在是不清楚你的問題的主題是什麼。我估計沒有人回答也是這個原因。
匯編語言程序當然是可以編譯和運行的,這毫無疑問。
我猜你是想問如何搭建編譯運行環境吧?如果是這樣,有幾種方案可供選擇:
使用emu8086程序,不錯的集成環境,缺點是需要花錢的。
使用dosbox模擬dos環境,在模擬環境中編譯、運行、調試,主要用於學習。
我曾寫過一個《dosbox安裝使用說明與打包程序》的文檔,你可以搜索一下看看。
使用vmware之類的虛擬機,在上面安裝dos操作系統,在該系統中進行學習(這個比較麻煩,不推薦。好處是完全虛擬dos環境,但與外界交互文件等比較麻煩)
有些國產的集成環境,好像也是集成了dosbox,我自己沒用過,有興趣的話,你可以查找一下試試。
Ⅳ kali匯編語言怎麼運行
使用Linux內核提供的系統調用。
使用這種方法最大的好處是可以直接和操作系統的內核進行通訊,不需要鏈接諸如libc這樣的函數庫,也不需要使用ELF解釋器,因而代碼尺寸小且執行速度快。
Linux是一個運行在保護模式下的32位操作系統,採用flatmemory模式,目前最常用到的是ELF格式的二進制代碼。一個ELF格式的可執行程序通常劃分為如下幾個部分:.text、.data和.bss,其中.text是只讀的代碼區,.data是可讀可寫的數據區,而.bss則是可讀可寫且沒有初始化的數據區。代碼區和數據區在ELF中統稱為section,根據實際需要你可以使用其它標準的section,也可以添加自定義section,但一個ELF可執行程序至少應該有一個.text部分。
由匯編器產生的目標代碼是不能直接在計算機上運行的,它必須經過鏈接器的處理才能生成可執行代碼。鏈接器通常用來將多個目標代碼連接成一個可執行代碼,這樣可以先將整個程序分成幾個模塊來單獨開發,然後才將它們組合(鏈接)成一個應用程序。Linux使用ld作為標準的鏈接程序,它同樣也包含在binutils軟體包中。匯編程序在成功通過GAS或NASM的編譯並生成目標代碼後,就可以使用ld將其鏈接成可執行程序了。
Ⅵ 32位win7 怎麼使用匯編軟體運行匯編程序
emul8086或masm32,直接編譯運行即可
emul8086是所謂的匯編軟體,嚴格而言其使用的編譯器是匯編程序
masm使用ml.exe做為匯編程序(即編譯器)
如果你表達的「匯編程序」不是「匯編編譯器」,而是生產的應用程序,如果是控制台的在cmd里進入相應目錄運行即可
阿門。。。
Ⅶ 如何在DOS環境下運行匯編程序
匯編後的程序是EXE的,你在「開始」-「運行」-「cmd」打開命令提示符。把你的程序復制到C根目錄下。讓提示符也轉到C根目錄下,直接輸入程序名字就行了。或者先在「edit」編輯一個源程序後再「link」源程序,最後是調試「debug」+程序名.exe。就能運行。但是匯編程序可移植性差需要反復修改。祝你好運!
Ⅷ 簡述上機運行匯編語言程序的過程。
實驗操作說明
Keil
軟體調試方式分為:軟體模擬方式和硬體調試兩種。
軟體模擬實驗上機操作步驟:
1、進入Keil,點擊桌面上「Keil
μVersion
3」圖標,進入Keil系統窗口;
2、新建工程:
1)打開「工程」菜單中的新建,在彈出的對話框中,鍵入自己定義的工程名;
2)在進一步打開的對話框中,選擇CPU的類型,為Intel公司的8032AH,確定;
3)存入D:\keil
文件夾中。(在大機房,安裝在C盤,改為C:\keil)
3、打開「視圖」菜單中的「工程窗口」;
4、在「工程窗口」中,右擊「目標1」,為工程設置參數;
1)在彈出的快捷菜單中選擇「為目標「目標1」設置選項」;
2)在彈出的對話框中選擇「項目」選項卡,設置時鍾為「12Mhz」;
3)選擇「調試」選項卡,在單選框選擇「軟體模擬方式」;
4)確定,即完成了「軟體模擬方式」的設置。
5、新建文件
1)打開「文件」菜單,選擇「新建」;
2)系統打開一個文本窗口,你可在窗口的編輯區輸入要調試的匯編語言源程序;
3)存檔,命名文件名和擴展名,文件名任起,擴展名必須是.asm,存入D:\keil
文件夾中(在大機房,安裝在C盤,改為C:\keil);例如:a.asm。
6、將剛建的新文件添入當前的工程中
1)在「工程窗口」中,「目標1」的+號處打開,顯示「源代碼組1」;
2)右擊「源代碼組1」,在快捷菜單中選擇「為「源代碼組1」添加文件」,彈出一個對話框;
3)在對話框中選擇「文件類型」為*.*;
4)
選擇文件所在路徑,同時找到剛鍵入的a.asm文件,點擊「add」按鈕,然後點擊「close」按鈕;
5)
在「工程窗口」點擊「源代碼組1」左側的+號,顯示添加的a.asm文件,添加成功。
7、匯編
1)在「工程窗口」點擊「源代碼組1」的a.asm文件;
2)打開「a.asm」文件編輯窗口;
3)點擊工具按鈕中的「重建所有的目標文件」,進行匯編;
4)在「輸出窗口」顯示匯編是否有錯,無錯,進入調試;
有錯,在編輯窗口修改程序,改後,再次匯編,直至無錯後進入調試;
8、調試程序
1)點擊「開始/停止調試」按鈕,進入調試界面;
2)在程序窗口中有一個黃箭頭指向程序的第一條可執行指令的開頭;
3)選擇調試方式進行調試;
①
在「調試」菜單中選擇:跟蹤、單步、運行、斷點等方式;
②
或按單步或跟蹤命令按鈕,按一次單步,執行一條指令,pc指針指向下一條要被執
行的指令;
③
檢查運行結果
Ⅰ打開「視圖」菜單,選擇「存儲器窗口」,彈出存儲器對話框;
Ⅱ在存儲器對話框的下方選擇memory1在地址欄中鍵入「C:0X0000」回車,建立程序存儲器的觀察窗口;
Ⅲ選擇memory2在地址欄中鍵入「D:0X00」回車,建立內部數據存儲器的觀察窗口;
Ⅳ選擇memory3在地址欄中鍵入「X:0X0000」回車,建立外部數據存儲器的觀察窗口;
Ⅴ在「project
workspace」窗口中觀察r0-r7,a,pc,dptr,psw,要觀察各個標志位,打開psw左側的+號;
9、設置PC指針
當程序的首地址不是0000H時,匯編結束後,PC指針仍然指向0000H的地方,在調試程序前,一定要將PC設置到你的程序首地址處,方法為:
1)將游標移到程序的第一條指令處,擊滑鼠右鍵;
2)在快捷菜單中選擇「Set
Program
Counter」命令,PC指針即可指向程序的第一條指令。