현재 위치 - 법률 상담 무료 플랫폼 - 온라인 법률 자문 - 跪求匯編語言命令的詳細解釋
跪求匯編語言命令的詳細解釋
哈哈,太多了。

匯編命令的詳細說明

名稱解釋格式

壹行壹行地匯編壹個地址。

比較兩個內存塊。

d(轉儲)內存16十六進制顯示d【地址】或d【範圍】。

e(回車)修改內存字節e地址。

f(fin)預設內存範圍列表。

執行程序g【=地址】【地址...]

h(六角形)算術運算h值值

I(輸入)從指定的端口地址輸入i pataddress。

l(Load)讀取磁盤l【address【driver seetor】;

m(移動)內存塊傳輸m範圍地址

設置文件名n filespec【filespec...]

o(輸出)從指定的端口地址輸出o端口地址字節。

(退出)結束

r(寄存器)顯示和修改寄存器r【寄存器名稱】。

s(Search)查找字節字符串的範圍列表。

跟蹤執行t【=地址】【值】

u(Unassemble)分解u【地址】或範圍。

w(寫)保存w【地址【驅動器扇區秒號】;

在線幫助?

調試程序集a命令

調試小程序集壹個命令是壹個非常有用的功能,許多小程序都需要他來完成。

編譯壹些小程序比編譯更方便快捷。

中斷在調試中非常有用。首先,讓我們了解壹下中斷。

所謂打斷,其實就是妳在做事情的時候,有人因為別的事情來找妳,妳先放下正在做的事情(在電腦裏叫保護現場)

和那個再次給妳打電話的人壹起去工作。結束後,妳回去做妳剛才做的事。這是壹個非常流行的說法。

當計算機運行時,也會出現這種情況,我們稱之為中斷。

以下是他的壹些常用中斷向量的入口值的詳細解釋:(記住,這非常有用...呵呵)

IBM PC中斷int10

OoH屏幕模式設置

條目:ah = 0,al =顯示模式代碼(0-6)

0: 40 * 25黑白

1: 40 * 25顏色

2: 80 * 25黑白

3: 80 * 25彩色文本

4: 320 * 200顏色

5: 320 * 200黑白

6: 640 * 200黑白圖形模式

7: 80 * 25單色字符(單色顯示器)

0BH顏色設置

入口:ah = 0b,bl = 0設置背景顏色,BH = 0-15bl = 1設置顏色代碼,BH = 0-1。

0CH寫圖形點

入口:ah = 0c,CX: dx =列號:行號,al =顏色。

ODH讀取圖形點

入口:ah = 0d,CX: dx =列號:行號。

Returns: al =顏色

在當前頁面和當前光標處寫入字符。

入口:ah = 0e,al =字符的ASCII碼,bl =前景色。

OFH顯示狀態

入口:ah = 0f

Return: al =當前顯示模式,ah =屏幕列數,BH =當前頁碼。

01H光標設置

條目:ah = 1,ch =光標起始行號(00-0c),cl =光標結束行號(00-0c)。

註:ch》cl

02H光標定位

Entry: ah = 2,BH =頁碼,DH: dl =起始行:列。

03H讀取光標位置

入口:ah = 3,BH =頁碼。

Return: DH: DL =起始行:列

06H車窗滾動

傳入產品:ah = 6,al =窗口上的滾動行數,ch: cl-DH: dl窗口坐標。

註意:Al = 0滾動整個窗口。

07H窗口向下滾動

Entry: ah = 7,al =窗口下的滾動行數,ch: cl-DH: dl窗口坐標。

08H讀取當前光標處的字符和屬性。

入口:ah = 8,BH =頁碼。

返回:ah: al =字符的顏色:字符的ASCII代碼。

註:顏色代碼見下表。

09H:在當前光標處寫入字符和屬性。

註意:光標不會向下移動。

條目:ah = 9,BH =頁碼,bl: al =字符顏色:字符的ASCII代碼,CX =重復次數。

1 2 3 4 5 6 7 8

B I紅十字會

閃光字符背景顏色突出顯示字符顏色

中斷向量號碼表

中斷號解釋

0除數是0錯誤19啟動加載程序

當1步驟中斷1A天時調用。

2個不可屏蔽中斷NMI 1B鍵盤模塊以獲得控制。

3斷電中斷(CCH)1C時鐘中斷提供控制。

4溢出中斷1D指向CRT初始參數表。

5屏幕打印中斷1E指向片盒參數表。

6-7保持1F 1KB圖形模式。

8定時器中斷(18.2秒)20結束DOS程序。

9鍵盤中斷21 DOS函數調用

A-D保留22的結束地址(使用EXEC進行構造)

軟盤驅動器中斷23 DOS Crtl-Break退出地址

f保留24 DOS致命錯誤向量

10屏幕I/O調用25 DOS絕對磁盤讀取

11設備檢查調用26 DOS絕對磁盤寫入。

12內存檢查調用27結束程序並停留(31h)

13軟盤驅動器I/O呼叫28-3F DOS預訂

14 RS-233I/O調用40-7F無用。

15盒式磁帶放音機輸入/輸出呼叫80-85基本預訂

16鍵盤輸入/輸出調用86-F0基本解釋程序

17打印機I/O調用F1-FF沒有用。

18 ROM-基本入口

指令名稱的詳細說明

調用指令(過程調用)(控制指令-長分支)

詳細解釋:

段內直接呼叫

段內間接呼叫(寄存器)

段內間接調用(內存)

段間直接呼叫

段間間接呼叫

指令名

Jmp指令(無條件分支指令)(控制指令-長分支)

詳細解釋:

段內直接跳轉

短片段直接跳轉

段內間接跳轉(寄存器)

段內間接跳轉(內存)

段間直接跳轉

段間間接跳轉

指令名

Ret指令(過程返回)(控制指令-長分支)

詳細解釋:

分部內部收益

段中返回的立即數被添加到sp。

分段間返回

段間返回的立即數被添加到sp。

當na/jnbe指令(控制指令-短傳輸)不小於或等於時進行傳輸。

當jae/jnb指令(控制指令-短跳轉)大於或等於時跳轉。

Jb/jnae指令(控制指令-短分支)小於分支。

Jbe/jna指令(控制指令-短分支)小於或等於分支。

Jg/jnle指令(控制指令-短分支)大於分支。

Jge/jnl指令(控制指令-短分支)大於或等於分支。

Jl/jnge指令(控制指令-短分支)小於分支。

Jle/jng指令(控制指令-短分支)小於或等於分支。

Je/jz指令(控制指令-短轉移)等於轉移。

Jne/jnz指令(控制指令-短分支)不等於分支。

當有進位時,Jc指令(控制指令-短分支)分支。

Jnc指令(控制指令-短轉移)列進位時間轉移

jno指令(控制指令-短傳輸)不溢出時傳輸。

jnp/jpo指令(控制指令-短分支)的奇偶性為奇數時進行分支。

符號位為“0”的Jns指令(控制指令-短分支)分支

Jo指令(控制指令-短轉移)溢出轉移

當jp/jpe指令(控制指令-短跳轉)的奇偶性為偶數時跳轉。

當符號位為“1”時,傳輸Js指令(控制指令-短傳輸)

當cx不為0時,循環指令(循環控制指令-短分支)循環。

當cx不為0且標誌z = 1時,Loope/loopz指令(循環控制指令-短分支)循環。

當cx不為0且標誌z=0時,Loopne/loopnz指令(循環控制指令-短分支)循環。

當cx為0時,Jcxz指令(循環控制指令-短分支)分支。

★int指令(中斷指令)中斷指令(稍後詳述)

進入指令(中斷指令)溢出中斷

中斷指令(中斷指令)中斷返回

指令名

Shl指令(邏輯左移)

Sal指令(算術左移)

Shr指令(邏輯右移)

Sar指令(算術右移位)寄存器,1

Rol指令(循環左移)寄存器

Ror指令(循環右移位)存儲器,1

Rcl指令(通過進位循環向左移動)存儲器,cl

Rcr指令(通過進位循環右移)(邏輯運算)

Not指令(求反操作)寄存器求反

(邏輯操作)內存反轉

和指令(和運算)(邏輯運算)

寄存器和寄存器寄存器

寄存器和存儲寄存器

存儲器和寄存器存儲器

即時和記憶

立即累加器累加器

或指令(或操作)(邏輯操作)

寄存器或寄存器寄存器

寄存器或存儲寄存器

存儲器或寄存器存儲器

立即或記憶

立即累加器或累加器

測試說明(測試)(邏輯操作)

註冊測試寄存器

註冊測試存儲器

註冊測試即時號碼

內存測試立即數

累加器測試即時編號

Movs指令(字符串傳輸)(字符串操作指令)

單壹傳輸

重復傳輸

Cmps指令(字符串比較)(字符串操作指令)

單壹比較

反復比較

Scas指令(字符串掃描)(字符串操作指令)

單壹搜索

重復搜索

Lods指令(加載字符串)

(字符串操作說明)

單次裝載

循環負載

Stos指令(保存字符串)(字符串操作指令)

單壹存儲

重復存儲

Mov指令(傳輸字或字節)(數據傳輸命令)

註冊到註冊轉移

存儲器和寄存器之間的傳輸

立即將數字轉移到內存中。

立即將號碼轉移到登記簿。

存儲器被轉移到累加器

累加器傳輸存儲器

寄存器傳輸到段寄存器

存儲器傳輸到段寄存器

段寄存器被轉移到寄存器

段寄存器被傳送到存儲器。

彈出指令(將字彈出堆棧)(數據傳輸命令)

壓入指令(將字壓入堆棧)

儲存;儲備

註冊

分段發送器

Xchg指令(交換字或字節)(數據傳輸命令)

註冊到註冊交換

存儲器和寄存器交換

寄存器和累加器交換

輸入指令(端口輸入)(數據傳輸命令)

直接輸入

間接輸入

Out指令(端口輸出)(數據傳輸指令)

直接輸出

間接輸出

加法指令(加法)

Adc指令(帶進位加法)

寄存器+寄存器寄存器

寄存器+存儲寄存器

內存+寄存器內存

立即數+記憶記憶

立即數+累加器累加器

Inc指令(加1)(算術指令)

記憶增量

寄存器增量

子指令(減法)(算術指令)

Sbb指令(帶借位減法)

寄存器寄存器

寄存器存儲寄存器

存儲寄存器存儲器

即時數據記憶存儲器

立即數累加器累加器

Dec指令(負1)(算術指令)

記憶衰減

寄存器減量

Nec指令(否定,負0)

寄存器補碼

記憶補碼

Cmp指令(比較)(算術指令)

寄存器和寄存器比較

寄存器和存儲器比較

寄存器和立即數比較

內存與立即數進行比較。

累加器與立即數進行比較

Mul指令(無符號乘法)(算術指令)

最小指令(整數乘法)

與8位寄存器相乘

與16位寄存器相乘。

與8位存儲單元相乘

乘以16位存儲單元。

Div指令(無符號除法)(算術指令)

Idiv指令(整數除法)

除以8位寄存器

除以16位寄存器

除以8位存儲單元

除以16位存儲單元

調試實戰

1.檢查主板的生產日期和版本。

D ffff:05

D fe00:0e

2.模擬休息鍵功能

A

:100 jmp ffff:0000

:105

g

3.快速格式化軟盤

l 10000 *‘插入壹張已格式化的軟盤。

放入壹張要格式化的軟盤。

註:*分別為:720 ke | 1.2 mid | 1.44m 21。

4.兩種硬盤格式化方法

(1)G = c800:05

(2)100

mov ax 0703

mov cx,0001

mov dx 0080

int 13

int 3

g 100

加快鍵盤速度

A

mov ax 0305

mov bx,0000

int 16

int 20

rcx

10

fast.com北部

w

q

6.關閉顯示器(恢復時按任意鍵)。

A

mov ax,1201

mov bl,36

int 10

mov ah,0

int 16

mov ax 1200

int 10

rcx

10

crt-of.com北部

w

q

7.硬盤DOS引導記錄的修復

將已格式化的軟盤放入軟驅。

調試

-l 100 2 0 1

-w 100 0 50 1

將軟盤放入故障機器的軟盤驅動器中

調試

-l 100 0 50 1

-w 100 2 0 1

8.清除coms中設置的密碼。

調試

[構成動植物的古名或拉丁化的現代名]

mov bx 0038

mov CX 0000

mov ax,bx

滿分70分,艾爾

inc cx

cmp cx,0006

jnz 0106

int 20

-rcx

:20

-nclearpassword.com

-w

註:以上適用於super和dtk機。對於ast機器,因為他的密碼放在coms的4ch-51h地址,只需將:mov bx,0038改為:mov即可。

Bx,004c就行

9.取消coms的密碼(初始化時清除coms數據)

-o 70 10

-o 71,10

-g

10.將硬盤主引導記錄保存到文件中。

調試

[構成動植物的古名或拉丁化的現代名]

mov ax,0201

mov bx 0200

mov cx,0001

mov dx 0080

mov int 13

int 3

-rcx

:200

-nboot.dat

-w

11.調用中斷來重啟計算機(可以是文件)

調試

[構成動植物的古名或拉丁化的現代名]

int 19

int 20

-rcx

:2

-nreset.com

-w

調試主命令

調試是為匯編語言設計的高級工具,它通過單步執行和設置斷點為匯編語言程序員提供了壹種非常有效的調試手段。

首先,調試程序的調用

在DOS提示符下,您可以鍵入命令:

c:\ DEBUG【D:】【路徑】【文件名【。EXT & gt【parm 1】【parm 2】

其中文件名是被調試文件的名稱。如果用戶鍵入壹個文件,DEBUG會將指定的文件加載到內存中,用戶可以對其進行調試。如果沒有鍵入文件名,用戶可以使用當前存儲器的內容,或者在調試之前使用調試命令n和l將所需文件加載到存儲器中。命令中的d指定驅動器路徑作為路徑,PARM1和PARM2是運行調試文件所需的命令參數。

調用調試程序後,將出現壹個提示符,並且可以使用DEBUG命令來調試程序。

二、調試的主要命令

1.按照以下格式顯示存儲單元的命令D(轉儲):

_D【地址】或_D【範圍】

例如,顯示指定範圍內存儲單元內容的方法如下:

-d100 120

18e 4:0100 C7 06 04 02 38 01 C7 06-06 02 00 02 C7 06 08 02G...8.G.....G...

18E $:0110 02 02 bb 04 02 E8 02 00-CD 20 50 51 56 57 8B 37..;..h..M PQVW。

18E4:0120 8B

其中0100到0120是調試顯示的單位內容,每個字節在左邊用十六進制表示,每個字節在右邊用ASCII字符表示,““表示無法顯示的字符。這裏沒有指定段地址,d命令自動顯示DS段的內容。如果僅指定第壹個地址,將顯示第壹個地址的80個字節。如果根本沒有指定地址,則顯示由last d命令顯示的最後壹個單元格之後的內容。

2.有兩個命令可以修改存儲單元的內容。

輸入命令E(回車)。有如下兩種格式:第壹種格式可以用給定的內容表替換指定範圍的存儲單元的內容。命令格式為:

-電子郵件地址

例如-E DS:100 F3‘XYZ‘8D。

其中F3、‘x’、‘y’、‘z’各占壹個字節,該命令可以使用這五個字節來替換存儲單元DS: 0100至0104的原始內容。

第二種格式采用逐個單元修改的方法。命令格式為:

-電子郵件地址

例如-e ds: 100

它可能如下所示:

18E4:0100 89。-

如果需要將該單元格的內容更改為78,用戶可以直接鍵入78,然後按“空格鍵”顯示下壹個單元格的內容,如下所示:

18e 4:0100 89.78 1B。-

這樣,用戶可以不斷修改連續單元的內容,直到按回車鍵結束命令。

,填寫命令F(FILL),其格式為:

-F範圍列表

例如:-f4ba:0100 5 F3‘XYZ‘8D

使單元格04BA: 0100 ~ 0104包含指定的五個字節的內容。如果列表中的字節數超過指定的範圍,則忽略超出的項目;如果列表中的字節數小於指定的範圍,該列表將重復使用,直到所有指定的單元格都被填充。

3)命令R(寄存器)檢查和修改寄存器的內容,寄存器有以下三種格式:

顯示CPU中所有寄存器的內容和標誌位的狀態,其格式為:

-R

例如,-r

AX = 0000 BX = 0000 CX = 010A DX = 0000 SP = FFFE BP = 0000 SI = 0000 DI = 0000

DS = 18e 4 ES = 18e 4 SS = 18e 4 CS = 18e 4 IP = 0100 NV UP DI PL NZ NA PO NC

18e 4:0100 c 70604023801 MOV字PTR【0204】,0138 DS:0204=0000

以下列格式顯示和修改寄存器的內容:

-R寄存器名稱

例如,鍵入

-R AX

系統將做出如下響應:

AX F1F4

也就是說,AX寄存器的當前內容是F1F4。如果未修改,請按ENTER鍵,否則,您可以鍵入要修改的內容,例如:

-R bx

BX 0369

:059F

然後將BX寄存器的內容修改為059F。

顯示和修改標誌位的狀態。命令格式為:

-射頻系統會做出響應,例如:

OV冬季空調

此時,如果不修改其內容,可以按ENTER鍵,否則,可以鍵入要修改的內容,例如:

OV市

可以看出,打字的順序可以是任意的。

4)按照以下格式運行命令g:

-G【= address 1】【address 2【address 3…》;

其中,地址1指定了操作的起始地址;如果未指定,操作將從當前CS: IP開始。以下地址都是斷點地址。當指令到達斷點時,它將停止執行並顯示所有當前寄存器和標誌位的內容以及下壹條要執行的指令。

5)跟蹤命令T(Trace)有兩種格式:

逐個指令跟蹤

-T【=地址】

從指定地址執行完壹條指令後停止,並顯示所有寄存器的內容和標誌位的值。如果沒有指定地址,它將從當前CS: IP執行。

多指令跟蹤

-T【=地址】【值】

從指定地址執行n條指令後停止,其中n由值指定。

6)匯編命令A(Assemble),其格式為:

-【地址】

此命令允許您鍵入匯編語言語句並將其匯編成機器代碼,這些代碼從指定的地址開始壹個接壹個地存儲在存儲區中。必須註意的是:DEBUG將所有鍵入的數字都視為十六進制數字,因此如果您要鍵入十進制數字,您應該稍後解釋它們,例如100D。

7)拆卸命令U(拆卸)有兩種格式。

從指定地址反匯編32字節,其格式為:

-U【地址】

例如:

-u100

18e 4:0100 c 70604023801 MOV字PTR【0204】,0138

18e 4:0106 c 70606020002 MOV字PTR【0206】,0200

18e 4:010C c 70606020202 MOV字PTR【0208】,0202

MOV BX,0204

18e 4:0115 e 80200致電011A

18e 4:0118 CD20 INT 20

18E4:011A 50推斧

18e 4:011B 51推送CX

18E4:011C 56推送SI

18e 4:011D 57 PUSH DI

18e 4:011E 8b 37 MOV SI,【BX】

如果省略地址,則從最後壹條U命令的最後壹條指令的下壹個單元開始顯示32個字節。

按照以下格式拆卸指定範圍內的存儲單元:

-U【範圍】

例如:

-u100 10c

18e 4:0100 c 70604023801 MOV字PTR【0204】,0138

18e 4:0106 c 70606020002 MOV字PTR【0206】,0200

18e 4:010C c 70606020202 MOV字PTR【0208】,0202

或者

-u100 112

18e 4:0100 c 70604023801 MOV字PTR【0204】,0138

18e 4:0106 c 70606020002 MOV字PTR【0206】,0200

18e 4:010C c 70606020202 MOV字PTR【0208】,0202

所以這兩種格式是等價的。

8)按照以下格式命名命令N(名稱):

-N文件規格【文件規格】

命令格式化兩個文件控制塊CS: 5CH和CS: 6CH中的兩個文件標識符,以便以後可以用L或W命令將文件加載到文件中。文件規格的格式可以是:

【d:】【路徑】文件名【。ext】

舉個例子,

-N myprog

-我

-

文件myprog可以加載到內存中。

9)加載命令有兩個功能。

從指定地址開始將磁盤上指定扇區範圍的內容加載到內存區域。其格式為:

-L【地址【驅動器扇區扇區】

以下列格式加載指定文件:

-L【地址】

該命令加載由文件控制塊指定的文件,該文件已在CS: 5CH中格式化。如果沒有指定地址,它將從CS: 0100開始加載到存儲區。

10)寫命令W(Write),它有兩個功能。

將數據寫入磁盤的指定扇區。其格式為:

-W地址驅動器扇區扇區

將數據寫入指定文件。其格式為:

-W【地址】

該命令將指定存儲區域中的數據寫入CS: 5CH的文件控制塊指定的文件中。如果沒有指定地址,數據從CS: 0100開始。要寫入文件的字節數應該首先放在BX和CX中。

11)以下列格式退出調試命令Q(退出):

它退出調試並返回DOS。該命令沒有保存功能。如果要保存,應該先使用w命令。

問題:初學者問壹個低級的問題。調試-A後,如果出現輸入錯誤,如何更改此行?

回答:

添加並輸入以下內容:

d:\ pwin 95 \ Desktop & gt;調試

[構成動植物的古名或拉丁化的現代名]

2129:0100movax,200

2129:0103movbx,200

2129:0106 mov CX 200

2129:0109

此時,我在movbx,200中發現了壹個錯誤,應該是movbx,20。您可以按Enter鍵返回到“-”狀態,然後輸入:

-a103

2129:0103movbx,20

如果有更多或更少的行,則不需要重新輸入。您可以使用m命令移動以下程序來刪除或增加程序空間。

A.程序調用命令

C & gt調試【D:】【路徑】【文件名。EXT】】【parm 1】【parm 2】

其中文件名是被調試文件的名稱。如果沒有鍵入文件名。調試命令n和l可用於在調試前將所需文件加載到內存中。d指定驅動器,PATH是路徑,FILENAME是文件名,PARM是命令參數。

b .顯示存儲單元命令

-D【地址】或;地址地址

-D【範圍】;範圍範圍

C.修改存儲單元內容命令

-E地址【列表】

D.檢查和修改寄存器內容的命令

-R【註冊名稱】;註冊名稱

E.匯編命令

-【地址】

F.跟蹤命令

-T【=地址】【值】;值變量值

G.運行命令

地址地址2地址3

H.拆卸命令

-U【地址】

-U【範圍】

壹。命名命令

-N文件規格【文件規格】

文件規格的格式可以是【D:】【路徑】文件名【。EXT】。

J.加載命令

-L【ADDRESS【DRIVE SECTOR扇區】】;磁盤扇區

K.編寫命令

w地址驅動器扇區

長度退出命令