北交大微機研討-指令系統(tǒng)_第1頁
北交大微機研討-指令系統(tǒng)_第2頁
北交大微機研討-指令系統(tǒng)_第3頁
北交大微機研討-指令系統(tǒng)_第4頁
北交大微機研討-指令系統(tǒng)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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 查表轉換指令(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)境下,調試各類指令,實現(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不能作為目標)之間相互傳送。調試舉例: MOV A

3、X,1000H ;立即數(shù)1000H送到AX MOV DS,AX ;AX內容傳送到DS 3.1.2 數(shù)據(jù)交換指令(XCHG)格式:XCHG dst(通用寄存器、儲存器),src(通用寄存器、儲存器)功能:源操作數(shù)與目標操作數(shù)相互交換。調試舉例: XCHG AX,BX; AX與BX的內容交換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。調試舉例: PUSH AX; 將AX的數(shù)據(jù)壓入堆棧 POP BX; 將堆棧中的數(shù)據(jù)彈出到BX中使用堆棧操作指令應注意以下問題:(1)目的操作數(shù)不允許為CS以及立即數(shù)。(2)堆棧操作指令不影響標志位。3.1.4 查表轉換指令(XLAT)格式:XLAT功能:查表得到的字節(jié)數(shù)據(jù)送入AL中。說明:BX寄存器存放表的首地址,AL寄存器中存放表內偏移量,執(zhí)行XLAT指令,以段寄存器DS的內容為段基址,有效地址為BX和AL內容之和,取出表中一個

5、字節(jié)內容送AL中。該指令在debug中調試較為困難,所以略去。 3.1.5 地址傳送指令(LEA/LDS)1)有效地址傳送指令(LEA) 格式:LEA dst(通用寄存器),src(儲存器尋址) 功能:源操作數(shù)的有效地址EA傳送到目標。2)目標地址傳送指令(LDS) 格式:LDS dst,src 功能:將源操作數(shù)中存放的地址指針“段基址:偏移地址”的低16位傳送到目標通用寄存器中,高16位傳送到DS段寄存器中。源操作數(shù)必須是存儲器地址,目標操作數(shù)為16位通用寄存器。調試舉例: LEA AX,1000; 3.1.6 標志位傳送指令1)LAHF ;將標志寄存器的低8位傳送到AH寄存器2)SAHF

6、;將AH的低8位數(shù)傳送到標志寄存器的低8為3)PUSHF;標志位寄存器內容進棧4)POPF ;將堆棧中彈出的數(shù)送標志寄存器調試舉例: 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ù)寫入端口。調試舉例: 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目標。調試舉例: 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命令后,結果為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ù),不回送結果,只是形成標志位。調試舉例: MOV AX,1200 SUB AX,1201; 1200-1201 指令執(zhí)行后,符號位SF由0(PL)置1(NG),表示結果為負數(shù),零標志位ZF由1置0,表示結果不為0,進位標志CF由0置1,表示有借位產生。 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調試舉例: 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調試舉例: 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ù)按位“與”,結果送目標單元2)邏輯或 格式:OR dst,src 功能:源操作數(shù)和目標操作數(shù)按位“或”,結果送目標單元3)邏輯異或 格式:XOR dst,src 功能:源操作數(shù)和目標操作數(shù)按位“異或”,結果送目標單元4)邏輯取反 格式:AND dst,src 功能:目標操作數(shù)按位“取反”,結果送目標單元調試舉例: MOV AL,36 AND AL,0F;屏蔽AL中的高4位 MOV AL,6 OR AL,30;將立即數(shù)的高四位與AL中

11、的第四位合并 MOV AL,OF XOR AL,AL; 將AL內容清零 MOV AL,0F NOT AL;將AL的內容取反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調試舉例: MOV AX,8000 SHL AX,1;AX邏輯左移1位 MOV AX,8000 ROL AX,1;AX循環(huán)左移1位4 心得體會指令系統(tǒng)是學習匯編語言程序設計的基礎,而各類指令繁多,功能各異,如果僅憑老師講授的方法很難真正掌握,唯有上機實踐,獨立去操作每一條指令,才能深刻理解他的功能,并加強記憶。我的電腦是64位系統(tǒng)。開始調試的時候使用的是DOSBOX模擬32位系統(tǒng)的環(huán)境,雖然能完成一些指令的調試,可是不能完成匯編程序編寫,因此放棄了這種方法,轉而使用32位的xp虛擬機,但debug環(huán)境不能完成所有指令

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論