




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、研究性學習報告 指令系統(tǒng)目錄1 學習目的:32 實驗環(huán)境:33 學習過程: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 標志位傳送指令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 學習目的: 通過在計算
2、機debug環(huán)境下,調(diào)試各類指令,實現(xiàn)熟悉80x86的常用指令及功能的目的。2 實驗環(huán)境: 32位window xp DEBUG環(huán)境3 學習過程:3.1 數(shù)據(jù)傳送類指令:3.1.1 數(shù)據(jù)傳送指令(MOV)格式:MOV dst(寄存器、儲存器),src(立即數(shù)、寄存器、儲存器)功能:源操作數(shù)傳送至目標單元,源操作數(shù)保持不變。數(shù)據(jù)傳送具有一定方向:(1) 立即數(shù)傳送至通用寄存器獲儲存器。(2) 通用寄存器與存儲器之間相互傳輸。(3) 通用寄存器之間相互傳送。(4) 通用寄存器與段寄存器(CS不能作為目標)之間相互傳送。(5) 儲存器與段寄存器(CS不能作為目標)之間相互傳送。調(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ù)與目標操作數(shù)相互交換。調(diào)試舉例: XCHG AX,BX; AX與BX的內(nèi)容交換3.1.3 堆棧操作指令(PUSH/POP)1)數(shù)據(jù)進棧指令(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位段寄存器。當操作數(shù)數(shù)據(jù)類型為字類型,出棧操作使SP加2;當操作數(shù)數(shù)據(jù)類型為雙字類型,出棧操作使SP加4。調(diào)試舉例: PUSH AX; 將AX的數(shù)據(jù)壓入堆棧 POP BX; 將堆棧中的數(shù)據(jù)彈出到BX中使用堆棧操作指令應(yīng)注意以下問題:(1)目的操作數(shù)不允許為CS以及立即數(shù)。(2)堆棧操作指令不影響標志位。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傳送到目標。2)目標地址傳送指令(LDS) 格式:LDS dst,src 功能:將源操作數(shù)中存放的地址指針“段基址:偏移地址”的低16位傳送到目標通用寄存器中,高16位傳送到DS段寄存器中。源操作數(shù)必須是存儲器地址,目標操作數(shù)為16位通用寄存器。調(diào)試舉例: LEA AX,1000; 3.1.6 標志位傳送指令1)LAHF ;將標志寄存器的低8位傳送到AH寄存器2)SAHF
6、;將AH的低8位數(shù)傳送到標志寄存器的低8為3)PUSHF;標志位寄存器內(nèi)容進棧4)POPF ;將堆棧中彈出的數(shù)送標志寄存器調(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)不帶進
7、位的加法指令: 格式:ADD dst,src 功能:目標+源目標。2)帶進位的加法指令: 格式:ADC dst,src 功能:目標+源+CF目標。3)加1指令: 格式:INC dst 功能:目標+1目標。調(diào)試舉例: MOV AL,68 MOV BL,18 ADD AL,BL; 68H+18H=80H 執(zhí)行指令后,輔助進位標志由0(NA)變?yōu)?(AC),其他標志位無變化。 MOV AL,68 MOV BL,18 ADC AL,BL; 68H+18H+1H=81H執(zhí)行前進位標志位為1,執(zhí)行ADC命令后,結(jié)果為81H,同時進位標志位清零。 INC AX; AX累加13.2.2 減法指令1)不帶借位的
8、減法指令 格式:SUB dst,src 功能:目標-源目標。2)帶借位的減法指令 格式:SUB dst,src 功能:目標-源-CF目標。3)減1指令 格式:DEC dst 功能:目標-1目標。4)比較指令 格式:CMP dst,src 功能:目標操作數(shù)減源操作數(shù),不回送結(jié)果,只是形成標志位。調(diào)試舉例: MOV AX,1200 SUB AX,1201; 1200-1201 指令執(zhí)行后,符號位SF由0(PL)置1(NG),表示結(jié)果為負數(shù),零標志位ZF由1置0,表示結(jié)果不為0,進位標志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,進位標志位(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ù)和目標操作數(shù)按位“與”,結(jié)果送目標單元2)邏輯或 格式:OR dst,src 功能:源操作數(shù)和目標操作數(shù)按位“或”,結(jié)果送目標單元3)邏輯異或 格式:XOR dst,src 功能:源操作數(shù)和目標操作數(shù)按位“異或”,結(jié)果送目標單元4)邏輯取反 格式:AND dst,src 功能:目標操作數(shù)按位“取反”,結(jié)果送目標單元調(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ù)來進行位移,每移動一位在最低位或最高位補“0”,把最后移出的位保存在“CF”中。2)循環(huán)左/右移 格式:ROL/ROR dst,1/CL 功能:循環(huán)左移指令ROL,目的操作數(shù)左移,每移位一次,其最高位移入最低位,同時最高位也移入進位標志CF。循環(huán)右移指令 ROR,目的操作數(shù)右移,每移位一次,其最低位移入最高位,同時最低位也移入進位標志CF調(diào)試舉例: MOV AX,8000 SHL AX,1;AX邏輯左移1位 MOV AX,8000 ROL AX,1;AX循環(huán)左移1位4 心得體會指令系統(tǒng)是學習匯編語言程序設(shè)計的基礎(chǔ),而各類指令繁多,功能各異,如果僅憑老師講授的方法很難真正掌握,唯有上機實踐,獨立去操作每一條指令,才能深刻理解他的功能,并加強記憶。我的電腦是64位系統(tǒng)。開始調(diào)試的時候使用的是DOSBOX模擬32位系統(tǒng)的環(huán)境,雖然能完成一些指令的調(diào)試,可是不能完成匯編程序編寫,因此放棄了這種方法,轉(zhuǎn)而使用32位的xp虛擬機,但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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 焊接氣體的選用標準試題及答案
- 色紡工藝操作要求的考試試題及答案
- 酒店經(jīng)營管理師考試知識補充試題及答案
- 酒店當?shù)厥袌鲇绊懛治鲈囶}及答案
- 2024年質(zhì)量工程師考試復(fù)習內(nèi)容的系統(tǒng)性發(fā)展試題及答案
- 紡織機械操作過程中需掌握的技能試題及答案
- 個人房產(chǎn)買賣產(chǎn)權(quán)變更協(xié)議二零二五年
- 二零二五心理咨詢師聘用合同范例
- 招投標合同書管理內(nèi)部控制制
- 二零二五版供方環(huán)境保護協(xié)議書正規(guī)范例
- CJT 216-2013 給水排水用軟密封閘閥
- CJ-T250-2018建筑排水用高密度聚乙烯(HDPE)管材及管件
- 大學遺傳學期末考試題庫和答案
- 2024注冊信息安全專業(yè)人員CISP培訓講義全集
- 心臟介入術(shù)后穿刺部位并發(fā)癥的預(yù)防及護理講解
- DB64 1996-2024 燃煤電廠大氣污染物排放標準
- 智能化屠宰場建設(shè)方案設(shè)計
- 學校結(jié)核病疫情調(diào)查與應(yīng)急處置1
- 老人接種疫苗科普知識講座
- 經(jīng)肛型腸梗阻導(dǎo)管
- 成圈機操作規(guī)程
評論
0/150
提交評論