匯編言語 課后實驗
匯編語言 課后實驗1~5預(yù)備試驗1一.用R 命令1. 用R 命令查看寄存器的內(nèi)容:如下,CS=14E5,IP=0100,也就是說當(dāng)前CPU 要讀取、執(zhí)行14E5:0100出的指令; 且該內(nèi)存單元所存
匯編語言 課后實驗1~5
預(yù)備試驗1
一.用R 命令
1. 用R 命令查看寄存器的內(nèi)容:
如下,CS=14E5,IP=0100,也就是說當(dāng)前CPU 要讀取、執(zhí)行14E5:0100出的指令; 且該內(nèi)存單元所存放的機(jī)器碼為:FE 74 05,對應(yīng)的匯編指令為:PUSH
[SI 05]
2. 用R 命令來修改寄存器中的內(nèi)容:
如下,將AX 中的值修改成1111,并查看修改結(jié)果。
還可以用R 命令修改CS 和IP 中的值,如下:
二.D 命令
1. 使用“d 段地址:偏移地址”的格式,debug 將列出從指定單元開始的128個內(nèi)存單元的內(nèi)容,如下:左邊部分是每行的起始地址,中間是從指定地址開始的128個內(nèi)存單元中的內(nèi)容,右邊部分是每個單元中數(shù)據(jù)對應(yīng)的可顯示的ASCII碼字符,沒有可顯示的字符用"."來表示。
,2. 也可以用D命令直接查看,將列出debug預(yù)設(shè)命令的地址處的內(nèi)容,如下:
3. 也可以指定D命令的查看范圍:格式“d 段地址:起始偏移地址 結(jié)尾偏移地址”, 如下:
三.E 命令
1. 用“e 起始地址 數(shù)據(jù) 數(shù)據(jù)...... ”的格式來改寫內(nèi)存中的內(nèi)容,如下:先用d 命令查看原來地址中的內(nèi)容,然后用e 命令修改后再查看。
2. 也可以采用提問的方式來一個一個的改寫內(nèi)存中的內(nèi)容,不用改寫的直接按空格鍵跳過,修改完畢后按enter 鍵結(jié)束操作,如以下1000:10中的內(nèi)容沒有改寫。
3. 還可以用e 命令向內(nèi)存中寫入字符和字符串。
,四.如何用命令向內(nèi)存中寫入機(jī)器碼,查看機(jī)器碼,并執(zhí)行機(jī)器碼。
1. 用E 命令向內(nèi)從中寫入機(jī)器碼:如下,寫入后再查看內(nèi)存中的內(nèi)容。
2. 用U 命令將內(nèi)存單元中的內(nèi)容翻譯為匯編指令,沒有寫終止地址的,都默認(rèn)對20H 個字節(jié)的內(nèi)容進(jìn)行反匯編。
3. 用t 命令來執(zhí)行我們寫入的指令,在使用t 命令之前要用r 命令修改cs,ip 寄存器中的內(nèi)
容,使它們指向我們所寫機(jī)器碼的初始地址,如下
:
五.可以用A 命令以匯編指令的形式直接在內(nèi)存中寫入機(jī)器指令。
1. 使用A 命令寫入?yún)R編指令時,在給出的其實地址后直接按enter 鍵則表示操作結(jié)束。
2. 寫完匯編指令后,debug 會將這些匯編指令翻譯為對應(yīng)的機(jī)器指令,并將它們寫到對應(yīng)的內(nèi)存中,可以用d 命令查看,如下:
,實驗一:
1. 用debug 將程序?qū)懭雰?nèi)存并執(zhí)行。
1) 將程序?qū)懭雰?nèi)存
2)設(shè)置cs,ip 的值
3)逐步執(zhí)行程序
,