用机器指令和汇编指令编程(修改版)
- 實驗名稱 用機器指令和匯編指令編程(1)
- 實驗日期? ?2018.10.22? ?
- 學(xué)院:計軟院? ?
- 專業(yè):計算機科學(xué)與技術(shù)?
- 年級:2017級
- 班次:5班?
- 姓名:陳奕明? ?
- 學(xué)號 20171308194
一、實驗?zāi)康?/strong>?
1. 掌握使用debug工具編寫和調(diào)試匯編命令的方法
2. 掌握第1-2章所學(xué)的關(guān)于CPU、寄存器、內(nèi)存的基礎(chǔ)知識
3. 掌握第1-2章涉及的幾條指令mov, add, sub, jmp的用法
二、實驗準備?
1. 復(fù)習(xí)教材第1~2章內(nèi)容,完成教材內(nèi)相關(guān)檢測點
2. 結(jié)合教材實驗1 (P35)及公郵文件中心→實驗下的 “實驗1輔助文檔.pdf”學(xué)習(xí)debug 工具用法。
三、實驗內(nèi)容?
1. 教材實驗1(P35)
(1)練習(xí)教材 P35-45「預(yù)備知識:Debug 的使用」,學(xué)習(xí) debug 啟動、退出及常用指 令用法;
(2)在練習(xí)基礎(chǔ)上,完成「2. 實驗任務(wù)」?
Tips: 「2. 實驗任務(wù)」中每一項任務(wù)都可以在教材前序內(nèi)容或練習(xí)中找到提示線索。建議先 完成「二、實驗準備」中要求的內(nèi)容及實驗內(nèi)容的第(1)項,這樣完成「2. 實驗任務(wù)」時會 很容易完成。比如: 實驗任務(wù)(1)可參照教材P41-43的(7)完成; 實驗任務(wù)(2)與教材 P20的檢測點(2)相似且相關(guān);
四、實驗結(jié)論?
任務(wù)一:
把如下的程序段寫入內(nèi)存,逐條執(zhí)行,觀察每條指令執(zhí)行后CPU中相關(guān)寄存器中內(nèi)容的變化。
首先使用e指令按題目要求的寫入機器碼指令(隨便找了個地址1000:0):
到達文本輸入限制后沒辦法,只能先執(zhí)行了...執(zhí)行完后,看一下已經(jīng)寫入數(shù)據(jù)的內(nèi)存單元的情況...嗯...數(shù)據(jù)是對的
繼續(xù)輸入并執(zhí)行,執(zhí)行完全部代碼后,使用u指令反匯編機器碼命令:
跟書上寫明的匯編命令相符。
然后輸入?yún)R編命令:
中間又把1和字母l分不清了,出了個error。。。
命令輸入完畢,-t命令單步執(zhí)行:
和上課聽講的一樣,對指定的寄存器進行數(shù)據(jù)的改寫操作。
后面的命令行有點多就用-t+數(shù)字=執(zhí)行往后的幾條命令全部執(zhí)行了:
最后的結(jié)果:
任務(wù)二:將下面三條指令寫入從2000:0開始的內(nèi)存單元中,利用這3條指令計算2的8次方。
mov ax,1
add ax,ax
jmp 2000:0003
解題思路:2的三次方就是8,再看下題目給我們的三條命令。執(zhí)行完第一條后ax的值為1,執(zhí)行完第二條命令后ax的值為2,那么就需要我們再執(zhí)行這條語句7次了,所以就要使用jmp命令,通過改變CS和IP寄存器的值來使得CPU繼續(xù)反復(fù)執(zhí)行這條命令,所以往下又寫了七句jmp 2000:0003使得CPU再反復(fù)執(zhí)行其次該語句,從而使得AX中的值變?yōu)槎陌舜畏健!!!_@是最終結(jié)果。
最終實驗截圖
第三題
PC主板上的ROM中寫有一個生產(chǎn)日期,在內(nèi)存FFF00H~FFFFFH的某幾個單元中,請找到這個生產(chǎn)日期并且試圖改變它。
實驗截圖如下:
試圖修改但是失敗了,看來是因為ROM的關(guān)系,無法修改。
第四題
向內(nèi)存B8100H開始的單元中填寫數(shù)據(jù),如:
-e B810:0000 01 01 02 02 03 03 04 04
這是進行了一系列實驗過后的結(jié)果:
有這么些結(jié)果和感悟:
再向寄存器寫入數(shù)據(jù)時,每多兩個字節(jié)的數(shù)據(jù)就會產(chǎn)生一個新的顏色區(qū)域,而且寫入?yún)^(qū)域的CS碼每產(chǎn)生一次進位,就會使得產(chǎn)生的色塊區(qū)域產(chǎn)生換行,最終得到了這么些結(jié)果。
五、實驗心得與感悟
這次實驗主要實驗了R命令(用于查看、修改寄存器中的內(nèi)容)、D命令(查看內(nèi)存中的內(nèi)容)、E命令(修改內(nèi)存中的內(nèi)容)、U命令(反匯編命令)、T命令(執(zhí)行代碼行命令)
第四題經(jīng)過這么多次的實驗測試,看來這一段內(nèi)存空間是顯存。
我的電腦屏幕運行Dosbox窗口極小,最后查到按Alt+Enter可以進入全屏模式進行操作。
當初安裝Dosbox時經(jīng)歷過,千萬別把程序裝在系統(tǒng)盤,否則會有權(quán)限問題。
暫時就這樣把,肯定還有許多要學(xué)的,要完善的,好好學(xué)習(xí)匯編!!
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2018-10-27??21:28:25于宿
轉(zhuǎn)載于:https://www.cnblogs.com/cymwn-com/p/9867855.html
總結(jié)
以上是生活随笔為你收集整理的用机器指令和汇编指令编程(修改版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决a different object
- 下一篇: 服务的分类与启动