版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、研究性學(xué)習(xí)報告 指令系統(tǒng)目錄1 學(xué)習(xí)目的:32 實驗環(huán)境:33 學(xué)習(xí)過程:33.1 數(shù)據(jù)傳送類指令:33.1.1 數(shù)據(jù)傳送指令(MOV)33.1.2 數(shù)據(jù)交換指令(XCHG)43.1.3 堆棧操作指令(PUSH/POP)43.1.4 查表轉(zhuǎn)換指令(XLAT)53.1.5 地址傳送指令(LEA/LDS)53.1.6 標(biāo)志位傳送指令53.1.7 I/0數(shù)據(jù)傳送指令63.2 算數(shù)運算類指令73.2.1 加法指令73.2.2 減法指令83.2.3 乘法指令103.2.4 除法指令103.3 邏輯運算類指令113.3.1 邏輯運算指令:113.3.2位移指令134 心得體會141 學(xué)習(xí)目的: 通過在計算
2、機(jī)debug環(huán)境下,調(diào)試各類指令,實現(xiàn)熟悉80x86的常用指令及功能的目的。2 實驗環(huán)境: 32位window xp DEBUG環(huán)境3 學(xué)習(xí)過程:3.1 數(shù)據(jù)傳送類指令:3.1.1 數(shù)據(jù)傳送指令(MOV)格式:MOV dst(寄存器、儲存器),src(立即數(shù)、寄存器、儲存器)功能:源操作數(shù)傳送至目標(biāo)單元,源操作數(shù)保持不變。數(shù)據(jù)傳送具有一定方向:(1) 立即數(shù)傳送至通用寄存器獲儲存器。(2) 通用寄存器與存儲器之間相互傳輸。(3) 通用寄存器之間相互傳送。(4) 通用寄存器與段寄存器(CS不能作為目標(biāo))之間相互傳送。(5) 儲存器與段寄存器(CS不能作為目標(biāo))之間相互傳送。調(diào)試舉例: MOV A
3、X,1000H ;立即數(shù)1000H送到AX MOV DS,AX ;AX內(nèi)容傳送到DS 3.1.2 數(shù)據(jù)交換指令(XCHG)格式:XCHG dst(通用寄存器、儲存器),src(通用寄存器、儲存器)功能:源操作數(shù)與目標(biāo)操作數(shù)相互交換。調(diào)試舉例: XCHG AX,BX; AX與BX的內(nèi)容交換3.1.3 堆棧操作指令(PUSH/POP)1)數(shù)據(jù)進(jìn)棧指令(PUSH) 格式:PUSH src 功能:先將SP/ESP減2/4修改,然后將源操作數(shù)壓入SP/ESP指定的位置。高字節(jié)數(shù)據(jù)存放在高地址單元,低字節(jié)數(shù)據(jù)存放在低地址單元。2)數(shù)據(jù)出棧指令(POP) 格式:POP dst 功能:從棧頂彈出操作數(shù)送入目的
4、操作數(shù)。目的操作數(shù)允許為16或32位通用寄存器、存儲器和16位段寄存器。當(dāng)操作數(shù)數(shù)據(jù)類型為字類型,出棧操作使SP加2;當(dāng)操作數(shù)數(shù)據(jù)類型為雙字類型,出棧操作使SP加4。調(diào)試舉例: PUSH AX; 將AX的數(shù)據(jù)壓入堆棧 POP BX; 將堆棧中的數(shù)據(jù)彈出到BX中使用堆棧操作指令應(yīng)注意以下問題:(1)目的操作數(shù)不允許為CS以及立即數(shù)。(2)堆棧操作指令不影響標(biāo)志位。3.1.4 查表轉(zhuǎn)換指令(XLAT)格式:XLAT功能:查表得到的字節(jié)數(shù)據(jù)送入AL中。說明:BX寄存器存放表的首地址,AL寄存器中存放表內(nèi)偏移量,執(zhí)行XLAT指令,以段寄存器DS的內(nèi)容為段基址,有效地址為BX和AL內(nèi)容之和,取出表中一個
5、字節(jié)內(nèi)容送AL中。該指令在debug中調(diào)試較為困難,所以略去。 3.1.5 地址傳送指令(LEA/LDS)1)有效地址傳送指令(LEA) 格式:LEA dst(通用寄存器),src(儲存器尋址) 功能:源操作數(shù)的有效地址EA傳送到目標(biāo)。2)目標(biāo)地址傳送指令(LDS) 格式:LDS dst,src 功能:將源操作數(shù)中存放的地址指針“段基址:偏移地址”的低16位傳送到目標(biāo)通用寄存器中,高16位傳送到DS段寄存器中。源操作數(shù)必須是存儲器地址,目標(biāo)操作數(shù)為16位通用寄存器。調(diào)試舉例: LEA AX,1000; 3.1.6 標(biāo)志位傳送指令1)LAHF ;將標(biāo)志寄存器的低8位傳送到AH寄存器2)SAHF
6、;將AH的低8位數(shù)傳送到標(biāo)志寄存器的低8為3)PUSHF;標(biāo)志位寄存器內(nèi)容進(jìn)棧4)POPF ;將堆棧中彈出的數(shù)送標(biāo)志寄存器調(diào)試舉例: LAHF MOV AH,01 SAHF MOV AX,0 PUSH AX POPF3.1.7 I/0數(shù)據(jù)傳送指令1)輸入指令(IN) 格式:IN ac,port 功能:將端口的數(shù)據(jù)送入CPU累加器。2)輸出指令(OUT) 格式:OUT port,ac 功能:將CPU累加器中的數(shù)據(jù)寫入端口。調(diào)試舉例: IN AL,28 OUT 28,AL注意:在I/O端口直接和間接尋址I/O指令中,端口地址和DX不允許加“ ”。3.2 算數(shù)運算類指令3.2.1 加法指令1)不帶進(jìn)
7、位的加法指令: 格式:ADD dst,src 功能:目標(biāo)+源目標(biāo)。2)帶進(jìn)位的加法指令: 格式:ADC dst,src 功能:目標(biāo)+源+CF目標(biāo)。3)加1指令: 格式:INC dst 功能:目標(biāo)+1目標(biāo)。調(diào)試舉例: MOV AL,68 MOV BL,18 ADD AL,BL; 68H+18H=80H 執(zhí)行指令后,輔助進(jìn)位標(biāo)志由0(NA)變?yōu)?(AC),其他標(biāo)志位無變化。 MOV AL,68 MOV BL,18 ADC AL,BL; 68H+18H+1H=81H執(zhí)行前進(jìn)位標(biāo)志位為1,執(zhí)行ADC命令后,結(jié)果為81H,同時進(jìn)位標(biāo)志位清零。 INC AX; AX累加13.2.2 減法指令1)不帶借位的
8、減法指令 格式:SUB dst,src 功能:目標(biāo)-源目標(biāo)。2)帶借位的減法指令 格式:SUB dst,src 功能:目標(biāo)-源-CF目標(biāo)。3)減1指令 格式:DEC dst 功能:目標(biāo)-1目標(biāo)。4)比較指令 格式:CMP dst,src 功能:目標(biāo)操作數(shù)減源操作數(shù),不回送結(jié)果,只是形成標(biāo)志位。調(diào)試舉例: MOV AX,1200 SUB AX,1201; 1200-1201 指令執(zhí)行后,符號位SF由0(PL)置1(NG),表示結(jié)果為負(fù)數(shù),零標(biāo)志位ZF由1置0,表示結(jié)果不為0,進(jìn)位標(biāo)志CF由0置1,表示有借位產(chǎn)生。 DEC BX; BX減1 MOV AX,-26 MOV BX,16 CMP AX,
9、BX; 比較-26和16的大小因為-26比16小,所以符號位(SF)置1,進(jìn)位標(biāo)志位(CF)置1。3.2.3 乘法指令格式:MUL/IMUL src乘數(shù)被乘數(shù)乘積字節(jié)ALAX字AXDX:AX雙字EAXEDX:EAX調(diào)試舉例: MOV AX,12 MOV BX,256 MUL BX; 12*256=2A0C3.2.4 除法指令格式:DIV/IDIV src除數(shù)被除數(shù)商余數(shù)字節(jié)AXALAH字DX:AXAXDX雙字EDX:EAXEAXEAX調(diào)試舉例: MOV AX,19 MOV BX,9 DIV BX;19H/9H=2H719H/9H=2H7,商保存在AX中,余數(shù)保存在DX中。 MOV AX,-19
10、 MOV BX,9 IDIV BX;-19/9 3.3 邏輯運算類指令3.3.1 邏輯運算指令:1)邏輯與 格式:AND dst,src 功能:源操作數(shù)和目標(biāo)操作數(shù)按位“與”,結(jié)果送目標(biāo)單元2)邏輯或 格式:OR dst,src 功能:源操作數(shù)和目標(biāo)操作數(shù)按位“或”,結(jié)果送目標(biāo)單元3)邏輯異或 格式:XOR dst,src 功能:源操作數(shù)和目標(biāo)操作數(shù)按位“異或”,結(jié)果送目標(biāo)單元4)邏輯取反 格式:AND dst,src 功能:目標(biāo)操作數(shù)按位“取反”,結(jié)果送目標(biāo)單元調(diào)試舉例: MOV AL,36 AND AL,0F;屏蔽AL中的高4位 MOV AL,6 OR AL,30;將立即數(shù)的高四位與AL中
11、的第四位合并 MOV AL,OF XOR AL,AL; 將AL內(nèi)容清零 MOV AL,0F NOT AL;將AL的內(nèi)容取反3.3.2位移指令1)邏輯左/右移 格式:SHL/SHR dst,1/CL; 功能:將操作數(shù)看成無符號數(shù)來進(jìn)行位移,每移動一位在最低位或最高位補(bǔ)“0”,把最后移出的位保存在“CF”中。2)循環(huán)左/右移 格式:ROL/ROR dst,1/CL 功能:循環(huán)左移指令ROL,目的操作數(shù)左移,每移位一次,其最高位移入最低位,同時最高位也移入進(jìn)位標(biāo)志CF。循環(huán)右移指令 ROR,目的操作數(shù)右移,每移位一次,其最低位移入最高位,同時最低位也移入進(jìn)位標(biāo)志CF調(diào)試舉例: MOV AX,8000 SHL AX,1;AX邏輯左移1位 MOV AX,8000 ROL AX,1;AX循環(huán)左移1位4 心得體會指令系統(tǒng)是學(xué)習(xí)匯編語言程序設(shè)計的基礎(chǔ),而各類指令繁多,功能各異,如果僅憑老師講授的方法很難真正掌握,唯有上機(jī)實踐,獨立去操作每一條指令,才能深刻理解他的功能,并加強(qiáng)記憶。我的電腦是64位系統(tǒng)。開始調(diào)試的時候使用的是DOSBOX模擬32位系統(tǒng)的環(huán)境,雖然能完成一些指令的調(diào)試,可是不能完成匯編程序編寫,因此放棄了這種方法,轉(zhuǎn)而使用32位的xp虛擬機(jī),但debug環(huán)境不能完成所有指令
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)村振興:電商搭臺唱大戲
- 國旗下安全知識講話稿
- 房東和中介合同模板
- 《清遠(yuǎn)萬科項目介紹》課件
- 新質(zhì)生產(chǎn)力提升公共安全水平
- 上海車庫銷售合同范例
- 工礦篩網(wǎng)銷售合同范例
- 醫(yī)院作協(xié)議合同范例
- 在縣網(wǎng)絡(luò)作協(xié)成立大會上的演講稿
- 臨時上課合同范例
- 不抱怨的世界(課堂PPT)
- 企業(yè)盈利能力分析——以青島啤酒股份有限公司為例
- 消火栓滅火器檢查記錄表
- 岸墻、翼墻及導(dǎo)水墻砼澆筑方案
- 第三章_配位化學(xué)
- 中國話-完整版PPT課件
- 纏論基本概念圖解(推薦)
- 海瑞克英文翻譯
- 培訓(xùn)師經(jīng)常用到的七大培訓(xùn)方式及操作方法
- 魯教版美術(shù)九年級下冊教學(xué)設(shè)計
- 模具斜與蝕紋關(guān)系對照表
評論
0/150
提交評論