版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)日期: 2012 年 12 月 08 日學(xué) 號(hào):姓 名:實(shí)驗(yàn)名稱:實(shí)驗(yàn)二找出8086/8088指令系統(tǒng)所有指令的操作碼的編碼總 分:一、實(shí)驗(yàn)?zāi)康?利用debug工具的e和u功能找出8086/8088指令系統(tǒng)的指令格式中各種操作碼編碼對(duì)應(yīng)的指令功能。二、實(shí)驗(yàn)內(nèi)容(第一回合)一、用試探法-e 100 00 00 00 00 00 00(e 100.表示從100號(hào)單元開始編寫內(nèi)容)(我們將第26字節(jié)全部固定為00)-u 100 105 (u 100 105表示將100105號(hào)單元共6個(gè)字節(jié)反匯編出來(lái),(所謂“反匯編”就是把機(jī)器碼還原成匯編語(yǔ)句)0AE9:0100 0000 ADD BX+
2、SI,AL0AE9:0102 0000 ADD BX+SI,AL0AE9:0104 0000 ADD BX+SI,AL結(jié)論:操作碼字節(jié)前六位為000000(二進(jìn)制)看來(lái)是一條ADD指令,而且只占兩個(gè)字節(jié)。記下來(lái): 指令碼 匯編指令 - 0AE9:0100 0000 ADD BX+SI,AL二、將指令首字節(jié)變?yōu)?1,重復(fù)以上實(shí)驗(yàn)-e 100 01 00-u 100 1010AE9:0100 0100 ADD BX+SI,AX結(jié)論:第1字節(jié)由00(二進(jìn)制0000 0000)變?yōu)?1(二進(jìn)制0000 0001), ADD指令的第二個(gè)操作數(shù)由AL變?yōu)榱薃X。AL為8位寄存器、AX為16位寄存器,印證了
3、W字段的作用,增加一條有用的記錄: 指令碼 匯編指令 - 0AE9:0100 0000 ADD BX+SI,AL 0AE9:0100 0100 ADD BX+SI,AX三、將指令首字節(jié)變?yōu)?2,重復(fù)以上實(shí)驗(yàn)-e 100 02 00-u 100 1010AE9:0100 0200 ADD AL,BX+SI 第1字節(jié)由00(二進(jìn)制0000 0000)變?yōu)?2(二進(jìn)制0000 0010),ADD 操作的傳送方向發(fā)生轉(zhuǎn)變,印證了D字段的作用。增加一條記錄: 指令碼 匯編指令-0AE9:0100 0000 ADD BX+SI,AL0AE9:0100 0100 ADD BX+SI,AX0AE9:0100
4、0200 ADD AL,BX+SI再來(lái),變?yōu)?3,-e 100 03 00-u 100 1010AE9:0100 0300 ADD AX,BX+SI D和W同時(shí)變化,記下: 指令碼 匯編指令-0AE9:0100 0000 ADD BX+SI,AL0AE9:0100 0100 ADD BX+SI,AX0AE9:0100 0200 ADD AL,BX+SI0AE9:0100 0300 ADD AX,BX+SI(第二回合)一、首字節(jié)為0407,繼續(xù)實(shí)驗(yàn)-e 100 04 00 00 00 00 00(e 100.表示從100號(hào)單元開始編寫內(nèi)容)-u 100 105 (u 100 105表示將1001
5、05號(hào)單元共6個(gè)字節(jié)反匯編出來(lái),(所謂“反匯編”就是把機(jī)器碼還原成匯編語(yǔ)句)0AE9:0100 0400 ADD AL,000AE9:0102 0000 ADD BX+SI,AL0AE9:0104 0000 ADD BX+SI,AL-e 100 05 00-u 100 1010AE9:0100 050000 ADD AX,0000-e 100 06-u 100 1010AE9:0100 06 PUSH ES0AE9:0101 0000 ADD BX+SI,AL-e 100 07-u 100 1010AE9:0100 07 POP ES0AE9:0101 0000 ADD BX+SI,AL- 得
6、到四條新的記錄,出現(xiàn)了第1個(gè)3字節(jié)指令050000(ADD AX,0000),還捕獲了兩條新的單字節(jié)指令: 指令碼 匯編指令-0AE9:0100 0000 ADD BX+SI,AL0AE9:0100 0100 ADD BX+SI,AX0AE9:0100 0200 ADD AL,BX+SI0AE9:0100 0300 ADD AX,BX+SI0AE9:0100 0400 ADD AL,000AE9:0100 050000 ADD AX,00000AE9:0100 06 PUSH ES0AE9:0100 07 POP ES二、080b,繼續(xù)-e100 08 00 00 00 00 00-u 100
7、 1010AE9:0100 0800 OR BX+SI,AL-e 100 09-u 100 1010AE9:0100 0900 OR BX+SI,AX-e 100 0a-u 100 1010AE9:0100 0A00 OR AL,BX+SI-e 100 0b-u 100 1010AE9:0100 0B00 OR AX,BX+SI- 是四條OR指令: 指令碼 匯編指令-0AE9:0100 0000 ADD BX+SI,AL0AE9:0100 0100 ADD BX+SI,AX0AE9:0100 0200 ADD AL,BX+SI0AE9:0100 0300 ADD AX,BX+SI0AE9:01
8、00 0400 ADD AL,000AE9:0100 050000 ADD AX,00000AE9:0100 06 PUSH ES0AE9:0100 07 POP ES0AE9:0100 0800 OR BX+SI,AL0AE9:0100 0900 OR BX+SI,AX0AE9:0100 0A00 OR AL,BX+SI0AE9:0100 0B00 OR AX,BX+SI(手工操作效率太低,是不是?該換一種方法了)三、退出-qD:>(第三回合)一、用in1.txt生成out1.txt原理:用DOS的輸入/輸出重定向功能,讓debug自動(dòng)執(zhí)行一批命令。編寫文件in.txt,內(nèi)容如下,可以
9、用記事本,注意存放的路徑是你啟動(dòng)和退出debug時(shí)的那個(gè)目錄(以D:為例)。1、編寫in1.txt先寫一個(gè)短的試試看,點(diǎn)擊“開始->程序->附件->記事本”,打開記事本,輸入:e100 0c 00 00 00 00 00u 100 101q注意最后一行q后面要回車,保存文件為d:in1.txt2、打開命令提示符窗口鼠標(biāo)單擊“開始”,在“搜索欄”中輸入“cmd”,打開DOS(其實(shí)是虛擬DOS)窗口,Microsoft Windows 2000 Version 5.00.2195(C) 版權(quán)所有 1985-2000 Microsoft Corp.D:>3、輸入以下命令回車執(zhí)
10、行D:>debug <in1.txt >out1.txtD:>4、核實(shí)out1.txt文件的內(nèi)容在此目錄下生成了一個(gè)out1.txt文件,內(nèi)容如下:-e 100 0c 00 00 00 00 00-u 100 1010AE9:0100 0C00 ORAL,00 -q 5、將out1.txt中的新操作碼加入指令表。首字節(jié)為0c的指令是一條OR指令: 指令碼 匯編指令-0AE9:0100 0000 ADD BX+SI,AL0AE9:0100 0100 ADD BX+SI,AX0AE9:0100 0200 ADD AL,BX+SI0AE9:0100 0300 ADD AX,B
11、X+SI0AE9:0100 0400 ADD AL,000AE9:0100 050000 ADD AX,00000AE9:0100 06 PUSH ES0AE9:0100 07 POP ES0AE9:0100 0800 OR BX+SI,AL0AE9:0100 0900 OR BX+SI,AX0AE9:0100 0A00 OR AL,BX+SI0AE9:0100 0B00 OR AX,BX+SI0AE9:0100 0C00 ORAL,00 二、用in2.txt生成out2.txt好了,可以寫長(zhǎng)一點(diǎn)的in.txt來(lái)實(shí)驗(yàn)了,以下內(nèi)容存為in2.txt。e 100 0d 00 00 00 00 00
12、u 100 101e 100 0e 00 00 00 00 00u 100 101e 100 0f 00 00 00 00 00u 100 101q在命令提示符窗口輸入命令回車執(zhí)行D:>debug <in2.txt >out2.txtD:>生成了out2.txt文件,內(nèi)容為:-e100 0d 00 00 00 00 00-u 100 1010AE9:0100 0D0000 ORAX,0000 -e100 0e 00 00 00 00 00-u 100 1010AE9:0100 0E PUSHCS 0AE9:0101 0000 ADDBX+SI,AL -e100 0f 0
13、0 00 00 00 00-u 100 1010AE9:0100 0F DB0F 0AE9:0101 0000 ADDBX+SI,AL -q 這一次收獲了三條新的記錄: 指令碼 匯編指令-0AE9:0100 0000 ADD BX+SI,AL0AE9:0100 0100 ADD BX+SI,AX0AE9:0100 0200 ADD AL,BX+SI0AE9:0100 0300 ADD AX,BX+SI0AE9:0100 0400 ADD AL,000AE9:0100 050000 ADD AX,00000AE9:0100 06 PUSH ES0AE9:0100 07 POP ES0AE9:01
14、00 0800 OR BX+SI,AL0AE9:0100 0900 OR BX+SI,AX0AE9:0100 0A00 OR AL,BX+SI0AE9:0100 0B00 OR AX,BX+SI0AE9:0100 0C00 ORAL,00 0AE9:0100 0D0000 ORAX,0000 0AE9:0100 0E PUSHCS 0AE9:0100 0F DB0F 好了,到這里你該明白我的意思了吧,讓你的in3.txt文件覆蓋指令碼的首字節(jié)從10到FF,就可以一次得到其余的操作碼編碼的記錄了。三、實(shí)驗(yàn)報(bào)告把所有256條記錄排列出來(lái),并加以分析總結(jié),形成你的關(guān)于8086/8088指令系統(tǒng)操作碼
15、編碼方法的實(shí)驗(yàn)報(bào)告,看誰(shuí)的分析更完整正確簡(jiǎn)潔而條理清晰。經(jīng)過(guò)分析匯總可得指令集操作碼如下AAA00110111AAM10110100AAS00111111AAD10110101ADC0001000001010ADD0000000000010100000AND0010000010010CALL1001101011101000CBW10011000CLC11111000CLD11111100CLI11111011CMC11110101CMP0011100011110CMPSB10100110CMPSW10100111CS00101110CWD10011001DA00101111DAA0010011
16、1DB 000011110110101101101111000110101001010000DEC01001DS:00111110ES:00100110FADD1011100010111100FIADD1011101010111110FILD1011101110111111FLD1011100110111101HLT11110100IN1110110INC010001111111INTO10101110JA01110111JB01110010JBE01110110JCXZ11100011JGE0111110101111111JL01111100JLE01111110JNB01110011JNO
17、01110001JNS01111001JO01110000JPE01111010JPO01111011JS01111000JZ01110100LAHF10011111LDS10100101LEA10001011LES10100100LOCK11110000LODSB10101100LODSW10101101LOOP11100010LOOPNZ11100000LOOPZ11100001MOV100010100010101000110010100010111010011MOVSB10100100MOVSW10100101NOP10010000OR0000100000110OUT1110011111
18、0111POP0000011100010111000111110101110001111POPF10011101PUSH0000011000001110000101100001111001010PUSHF10011100REPNZ11110010REPZ11110011RET1010001RETF1010101ROL101100SAHF10011110SBB0001100001110SCASB10101110SCASW10101111SS:00110110STC1111100111111010STD11111101STOSB10101010STOSW10101011SUB0010100010110TEST100001010101001111011WAIT10011011XCHG100001110010XLAT10110111XOR0011000011010分析:可以看出8086指令集的指令操作碼極規(guī)整,操作碼位數(shù)不定長(zhǎng),而且一條指令可以有多個(gè)操作碼。分類:數(shù)據(jù)傳送指令 MOV,XCHG,PUSH,POP,PUSHF,POPF,PUSHA,POPA,LEA,LDS,LES XLAT(XLATB) 算術(shù)運(yùn)算指令 ADD,ADC,SUB,SBB,INC,DEC,NEG,MUL,IMUL,DIV,IDIV,CBW,CWD,AAA,AAS,AAM,AAD
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版家畜養(yǎng)殖保險(xiǎn)產(chǎn)品定制及銷售合同3篇
- 2025年度智能門禁系統(tǒng)與消防報(bào)警系統(tǒng)聯(lián)動(dòng)合同4篇
- 二零二五版跨境電商運(yùn)營(yíng)服務(wù)戰(zhàn)略合作協(xié)議3篇
- 2025年度新型門窗及欄桿研發(fā)與生產(chǎn)合作協(xié)議4篇
- 2025年高端個(gè)人財(cái)富管理代客理財(cái)協(xié)議3篇
- 2025年度個(gè)人經(jīng)營(yíng)性貸款擔(dān)保保證合同3篇
- 2025版綠色建筑地坪材料供應(yīng)合同3篇
- 2025年度共享經(jīng)濟(jì)門面房租賃與平臺(tái)建設(shè)合同3篇
- 個(gè)人汽車購(gòu)買資助合同2024年模板版B版
- XX市重點(diǎn)蓄水池施工合作合同版
- 2025水利云播五大員考試題庫(kù)(含答案)
- 中藥飲片驗(yàn)收培訓(xùn)
- DB34T 1831-2013 油菜收獲與秸稈粉碎機(jī)械化聯(lián)合作業(yè)技術(shù)規(guī)范
- 創(chuàng)傷處理理論知識(shí)考核試題及答案
- 稅前工資反算表模板
- 2019級(jí)水電站動(dòng)力設(shè)備專業(yè)三年制人才培養(yǎng)方案
- 肝素誘導(dǎo)的血小板減少癥培訓(xùn)課件
- 抖音認(rèn)證承諾函
- 高等數(shù)學(xué)(第二版)
- 四合一體系基礎(chǔ)知識(shí)培訓(xùn)課件
- ICD-9-CM-3手術(shù)與操作國(guó)家臨床版亞目表
評(píng)論
0/150
提交評(píng)論