導航:首頁 > 程序命令 > u命令匯編

u命令匯編

發布時間:2022-04-28 16:44:40

A. 使用匯編語言U命令,它最多會顯示多條信息

U命令不指定范圍或長度時,默認反匯編32個位元組。
可以用 U <起點> <終點> 或者 U <起點>L<長度>格式指定范圍或指定長度。
若使用指定范圍或長度的格式,最多可以反匯編64KB長的代碼。

因為x86指令不是等長指令,而是變長的,所以U命令是按代碼位元組數計數,而不是按指令的條數計數。

B. 匯編指令機器碼問題

機器指令有它的編碼規則,以若干位代表不同的操作碼,若干位代表定址方式組合,若干位表示操作數類型是字還是位元組,若干位表示各個操作數,等等。
8086指令的具體編碼可以查閱一些機器語言參考手機。

一般說來,CPU裡面只有少數幾個寄存器,只需要不多的幾位即可區分不同的寄存器。比如區分8個寄存器只需要 3 bit 進行編碼。
因此,用寄存器定址的機器指令,長度較短。

而內存或立即定址,需要給出8位或16位的操作數,或內存地址,它們需要的位數顯然比寄存器要多,因而機器指令也就會變長。

sub ax, ax指令兩個操作數都是寄存器,所以操作碼+定址方式組合+數據類型+兩操作數的寄存器代碼這些組合後只有兩個位元組: 2B C0

mov ax, 0這條指令中,16位的源操作數--立即數0就要單獨佔用兩個位元組,其它操作碼和目的操作數等的編碼再佔用一個位元組,指令長度就成了三個位元組: B8 00 00 (後面的兩個00 00就是源操作數 0 )

C. 如圖,dos下我想從鍵盤輸入一個字元,用u命令匯編,然後用t命令一步一步跟蹤,請問接下去怎麼操作,

lz這么晚了還在學習,精神可嘉啊。在網路上問匯編一般很少會有回答的,你最好去csdn的匯編模塊去問。如果在沒有參數的情況下使用,則u命令分解 20h 位元組(默認值),從前面u命令所顯示地址後的第一個地址開始,如果有參數的話,需要指定要反匯編代碼的起始地址和結束地址,或起始地址和長度(有關有關range參數有效值的信息可以網上查查),例如:

要反匯編16(10h)位元組,從地址04BA:0100開始,請鍵入以下命令:
u04ba:100l10
Debug按以下格式顯示結果:
04BA:0100206472AND[SI+72],AH
04BA:010369DB69
04BA:01047665JBE016B
04BA:0106207370AND[BP+DI+70],DH
04BA:010965DB65
04BA:010A63DB63
04BA:010B69DB69
04BA:010C66DB66
04BA:010D69DB69
04BA:010E63DB63
04BA:010F61DB61
如果只顯示從04BA:0100到04BA:0108特定地址的信息,請鍵入以下命令:
u04ba:01000108
Debug顯示以下內容:
04BA:0100206472AND[SI+72],AH
04BA:010369DB69
04BA:01047665JBE016B
04BA:0106207370AND[BP+DI+70],DH
++++

debug的t有兩個參數address和number,你這里是需要指定啟動跟蹤指令的地址(如果你省略address參數,跟蹤將從程序的 CS:IP 寄存器所指定的地址開始,address參數有效值的信息你也可以網上查查);number是指定要跟蹤的指令數,必須是十六進制數,默認為1,這里說一下,必須在address參數之前使用等號 (=) 以便將它與 number 參數區分。例如:

t10
假設當前在CS:100,那麼將從CS:100開始執行10行代碼,並且將顯示每一行代碼執行後寄存器的變化。

D. 系統如何調用debug查看CPU匯編指令和內存

Debug是DOS(Disk Operating System,磁碟操作系統)、windows提供的實模式(8086方式)程序的調試工具。使用它,可以查看CPU各種寄存器中的內容、內存的情況和在機器碼級跟蹤程序的運行。

查看更詳細的介紹DEBUG網路
一般我們常用到的Debug參數:
r命令查看、修改CPU寄存器的內容;
d命令查看內存中的內容;
e命令改寫內存中的內容;
u命令將內存中的機器指令翻譯成匯編指令;
t命令執行一條機器指令;
a命令以匯編指令的格式在內存中寫入一條機器指令。
打開界面如下:

將debug.exe拷貝到D盤(某盤根目錄),在DOSBOX中輸入「mount c D:\」命令(此命令輸入後有「Drive C is mounted as local directory d:\」,再輸入「c:」回車。然後輸入debug,結果如下:
例如輸入u可以查看系統的匯編指令,一直輸入u會列出系統所有的匯編指令。如下圖所示:

E. Debug的U命令

一般第一條指令顯示的數字為數據段段地址,如下圖所示:

F. 急~匯編語言考卷問題

1.A=-1110111B,[A]反=10001000B,[A]補=10001001B

B=+0110111B,[B]反=00110111B,[B]補=00110111B。

2.18的BCD編碼是(00011000)。

3.8086CPU由__匯流排介面部件______和__執行部件_______兩部分組成。

4.循環程序的結構主要由置初值、工作部分和__循環控制項變數更新__三個組成部分。

5.調用子程序通常用_call_指令,返回調用程序通常用_ret_指令。

三、簡答題

1.8086CPU數據匯流排和地址匯流排各是多少?最大的存儲空間是多少?

數據匯流排是16,地址匯流排為20,最大的存儲空間定址為1M

2、什麼是邏輯地址?它由哪兩部分組成?8086的物理地址是如何形成的?

邏輯地址是將存儲器分成若干個段之後而出現的一種地址形式,它由段地址和偏移地

址組成,物理地址是將邏輯地址中的段地址左移4個二進制位,再加上偏移地址而形成的.

3.有兩個16位的字31DAH和5E7FH,它們在8086系統存儲器中的地址分別為00130H和

00134H,畫出它們的存儲示意圖。

圖在下面上傳了有

4.簡述匯編語言的上機過程包括哪幾個步驟?

1.設計程序

2.使用masm命令編譯程序,生成擴展名為obj的文件

3.使用link命令連接程序,生成擴展名為exe的可執行文件

4.執行生成的可執行文件

5..簡述在DEBUG下的U和D命令功能各是什麼?若屏幕顯示如下,指出代碼段和數據段段

址各為多少?若要查看數據段0100開始的100個數據,如何操作?

-u

0B36:0000B8340BMOVAX,0B34

0B36:00038ED8MOVDS,AX

0B36:00058A260600MOVAH,[0006]

0B36:0009A00E00MOVAL,[000E]

U命令為反匯編命令,即載入已在匯編命令A下面寫好的程序,D命令為顯示存儲單元的值.

上面顯示命令的代碼段為0B36,數據段為0B34

查看數據段0100的100個數據命令為D01000163

四、程序分析題(本大題共1小題,共20分)

1.下列程序完成兩個字元串的比較,請先閱讀程序:

DATASEGMENT

STRING1DB'MOVE.'

STRING2DB'MOVE.'

MESS1DB'MATCH.',13,10,'$'

MESS2DB'NOMATCH!',13,10,'$'

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

MOVES,AX

LEASI,STRING1

LEADI,STRING2

MOVCX,4

REPECMPSB

JZMATCH

LEADX,MESS2

JMPSHORTDISP

MATCH:LEADX,MESS1

DISP:MOVAH,09

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

①將程序填寫完整

②解釋MOVAH,09

INT21H

這兩條指令的意思是輸出一個字元串,字元串的入品地址為DS:DX,即要輸出的字元串在

DS:DX處,並以'$'為字元串的結束符.

G. 匯編中-u後跟的上:【0000】是什麼意思

那個是機器碼,也就是這一句匯編指令對應的機器指令,匯編指令只有編譯成機器指令cpu才能看的懂,例如mov ax,0770,編譯成機器指令後就是B87007

H. 匯編語言 debug里u命令的顯示規則

u--------------------從偏移地址100h開始反匯編
u5------------------從偏移地址5h地址開始反匯編
u5 10--------------將偏移地址5H~10H范圍內的代碼反匯編
u2000:100--------從2000:100地址(段地址:段偏移)開始反匯編

I. debug下如何查看匯編程序結果,是用u命令嗎,用u命令具體如何查看

U命令是查看內存單元中的內容的,會顯示出機器碼和對應的匯編指令
看運行結果的話用T命令,T是單步執行,每次執行一句,並顯示各寄存器和標志位的值。
16位匯編學了基礎的後就去學32位匯編吧。

J. 匯編語言,怎麼在DEBUG下,將上述目標文件調入內存,利用U、D等命令,檢查RAM區中的數據

比如匯編結果為a.exe

C:\>debug a.exe
-u 0 ;如果沒有發現自己想要查找的語句,繼續u命令
...
... mov ax, 1C22 ; 此二句表明,數據段
... mov ds, ax ;地址為1c22:0000
... mov ax, 1d22 ;如果有類似此二句
... mov es, ax ;表明附加段地址為1d22:0000
-d 1c22:0 ;查看數據段數據
-d 1d22:0 ;查看附加段數據

閱讀全文

與u命令匯編相關的資料

熱點內容
java文件流下載 瀏覽:336
編程工作工資多少 瀏覽:437
專業安全文件夾 瀏覽:777
表格里的根號演算法怎麼打 瀏覽:193
javacorepdf 瀏覽:573
pdf轉換word編輯 瀏覽:446
35歲程序員實習期恐慌 瀏覽:701
如何做一個系統u盤文件夾名字 瀏覽:968
如何確認哪個ip重啟了伺服器 瀏覽:130
照片壓縮軟體綠色版 瀏覽:109
pgp基於什麼體系加密 瀏覽:637
python合法賦值語句格式 瀏覽:713
程序員數學線性代數 瀏覽:624
看幀率app如何使用 瀏覽:525
從DHC伺服器租用IP地址 瀏覽:477
編譯怎麼學 瀏覽:333
數碼管顯示0到9plc編程 瀏覽:667
伺服器是為什麼服務的 瀏覽:769
java定義數據類型 瀏覽:878
安卓pdf手寫 瀏覽:431