微機(jī)接口原理課件第3章80x86的指令系統(tǒng)和尋址方式_第1頁(yè)
微機(jī)接口原理課件第3章80x86的指令系統(tǒng)和尋址方式_第2頁(yè)
微機(jī)接口原理課件第3章80x86的指令系統(tǒng)和尋址方式_第3頁(yè)
微機(jī)接口原理課件第3章80x86的指令系統(tǒng)和尋址方式_第4頁(yè)
微機(jī)接口原理課件第3章80x86的指令系統(tǒng)和尋址方式_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第3章章8086匯編語(yǔ)言指令系統(tǒng)匯編語(yǔ)言指令系統(tǒng)微機(jī)原理與接口技術(shù)微機(jī)原理與接口技術(shù)精品課程2本章主要內(nèi)容本章主要內(nèi)容l8086指令的格式指令的格式l常用匯編語(yǔ)言指令介紹常用匯編語(yǔ)言指令介紹l匯編語(yǔ)言編程的格式(補(bǔ))匯編語(yǔ)言編程的格式(補(bǔ))微機(jī)原理與接口技術(shù)精品課程3 8086指令的格式指令的格式操作碼操作碼操作數(shù)操作數(shù).操作數(shù)操作數(shù)操作碼字段操作碼字段指示計(jì)算機(jī)要干什么?指示計(jì)算機(jī)要干什么? 操作數(shù)字段操作數(shù)字段指出在指令執(zhí)行操作的過(guò)程中所需要數(shù)據(jù)的來(lái)源。指出在指令執(zhí)行操作的過(guò)程中所需要數(shù)據(jù)的來(lái)源。舉例:三條指令:舉例:三條指令:MOV AX, 0064H ;數(shù)據(jù)傳送指令;數(shù)據(jù)傳送指令 機(jī)

2、器碼:機(jī)器碼:B8 64 00ADD AX, 0100 H ; 加法指令機(jī)器碼加法指令機(jī)器碼 機(jī)器碼:機(jī)器碼:05 00 01MOV 2000,AX ; 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 機(jī)器碼:機(jī)器碼:A3 00 20指令一般格式指令一般格式操作數(shù)字段的三種形式:操作數(shù)字段的三種形式: 1、操作數(shù)本身、操作數(shù)本身 (立即尋址方式立即尋址方式) 2、操作數(shù)地址、操作數(shù)地址 (直接尋址方式直接尋址方式) 3、指向操作數(shù)地址的指針、指向操作數(shù)地址的指針 (間接尋址方式間接尋址方式)微機(jī)原理與接口技術(shù)精品課程3.1 8086的尋址方式的尋址方式一、一、 數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式 (二、程序?qū)ぶ贩绞剑ǘ?、?/p>

3、序?qū)ぶ贩绞剑?1、立即尋址方式、立即尋址方式 例:例:MOV AL ,08H 2、寄存器尋址方式、寄存器尋址方式 例:例:MOV AX,BX 3、直接尋址方式、直接尋址方式 例:例:MOV AX,2000H ;段地址在;段地址在DS中,指令不用寫(xiě)中,指令不用寫(xiě) 4、寄存器間接尋址、寄存器間接尋址 例:例:MOV AX,BX 如已知(如已知(DS)=2000H,(,(BX)=1000H,(,(21000H)=3050H 問(wèn):此指令執(zhí)行后,(問(wèn):此指令執(zhí)行后,(AX)=? 微機(jī)原理與接口技術(shù)精品課程二、程序?qū)ぶ贩绞蕉?、程序?qū)ぶ贩绞?、段內(nèi)直接轉(zhuǎn)移、段內(nèi)直接轉(zhuǎn)移 JMP NEAR PTR PROGI

4、A ;無(wú)條件轉(zhuǎn),;無(wú)條件轉(zhuǎn),16位跳轉(zhuǎn)范圍位跳轉(zhuǎn)范圍 JMP SHORT QUEST ;無(wú)條件轉(zhuǎn),;無(wú)條件轉(zhuǎn),08位跳轉(zhuǎn)范圍位跳轉(zhuǎn)范圍 ;PROGIA,QUEST 為符號(hào)地址為符號(hào)地址 2、段間直接尋址方式、段間直接尋址方式 JMP FAR PTR NEXT ;NEXT 為符號(hào)地址為符號(hào)地址 微機(jī)原理與接口技術(shù)精品課程3.2 8086 的指令系統(tǒng)的指令系統(tǒng)常用匯編指令:常用匯編指令:1、 MOV AX, 1234H 立即尋址方式指令立即尋址方式指令 2、 MOV AX,1234H 直接尋址方式直接尋址方式 指令指令3、 MOV AX,BX 寄存器尋址方式寄存器尋址方式 4、 MOV AX,BX

5、 寄存器間接尋址方式寄存器間接尋址方式5、 MOV AX,BXDI 基址變址尋址方式基址變址尋址方式6、 IN AX , 28H I/O口傳送指令口傳送指令設(shè)備信號(hào)讀入設(shè)備信號(hào)讀入7、 OUT 5 , AL I/O口傳送指令口傳送指令寫(xiě)入設(shè)備,如遇大地址用寫(xiě)入設(shè)備,如遇大地址用 DX8 8、JMP OPR JMP OPR 無(wú)條件轉(zhuǎn)移到無(wú)條件轉(zhuǎn)移到OPROPR9、 JC OPR 有進(jìn)位轉(zhuǎn)移到有進(jìn)位轉(zhuǎn)移到OPR10、 JZ OPR 結(jié)果為零轉(zhuǎn)移到結(jié)果為零轉(zhuǎn)移到OPR11、 JNZ OPR 結(jié)果非零轉(zhuǎn)移到結(jié)果非零轉(zhuǎn)移到OPR12、 MOV BX , OFFSET LIST 地址傳送指令地址傳送指令1

6、3、ADD AX,BX 不帶進(jìn)位加不帶進(jìn)位加14、ADC AX , BX 帶進(jìn)位加帶進(jìn)位加15、INC AX ; 加加1指令指令16、 DEC CX ;減減1指令指令17、INT N 調(diào)用指令調(diào)用指令, N為中斷號(hào)為中斷號(hào)18、 IRET 中斷服務(wù)返回指令中斷服務(wù)返回指令微機(jī)原理與接口技術(shù)精品課程7I/O口傳送指令:口傳送指令:外設(shè)輸入指令:外設(shè)輸入指令:例例1:INAX,28H;從端口從端口28H輸入一字輸入一字例例2:MOVDX,3FCHINAX,DX;對(duì);對(duì)16位地址必須借助位地址必須借助;DX寄存器尋址寄存器尋址向外設(shè)輸出指令:向外設(shè)輸出指令:例例1:OUT5,AL;向端口向端口5輸出

7、一字節(jié)輸出一字節(jié)例例2:MOVDX,500HOUTDX,AL;對(duì)對(duì)16位地址必須借助位地址必須借助;DX寄存器尋址寄存器尋址注意:注意:I/O大地址必須用大地址必須用DX寄存器尋址方式寄存器尋址方式微機(jī)原理與接口技術(shù)精品課程條件轉(zhuǎn)移指令的應(yīng)用編程舉例:條件轉(zhuǎn)移指令的應(yīng)用編程舉例: MOV CX,30 MOV BX,0 AGAIN: INC BX DEC CX JNZ AGAIN MOV AX,BX循環(huán)指令:循環(huán)指令:LOOP MOV CX, 30 MOV BX,0AGAIN: INC BX LOOP AGAIN MOV AX,BX簡(jiǎn)單學(xué)習(xí)附錄簡(jiǎn)單學(xué)習(xí)附錄1:8086指令系統(tǒng)一覽表指令系統(tǒng)一覽表

8、微機(jī)原理與接口技術(shù)精品課程9常用偽指令:常用偽指令:1、等值偽指令、等值偽指令 : EQU mm equ 56 ;定義后,定義后,mm就等于就等于562、定義數(shù)據(jù)的偽指令:、定義數(shù)據(jù)的偽指令: DB, DW 它們分別定義:它們分別定義:1個(gè)字節(jié)、個(gè)字節(jié)、2個(gè)字節(jié)個(gè)字節(jié) ABC DB 39, 250, ? , 0, ? ;定義字節(jié)單元;定義字節(jié)單元 DEF DW 983, 2358, ? , ? ;定義字單元(像數(shù)組);定義字單元(像數(shù)組)3、地址計(jì)數(shù)器:、地址計(jì)數(shù)器:$ array db 32,43,56,8,65 count equ $ - array4、段定義偽指令:、段定義偽指令:SEG

9、MENT ENDS 段名段名 SEGMENT . . 段名段名 ENDS微機(jī)原理與接口技術(shù)精品課程10匯編語(yǔ)言程序的格式匯編語(yǔ)言程序的格式數(shù)據(jù)段名數(shù)據(jù)段名 SEGMENT ;SEGMENT 段定義偽指令,與段定義偽指令,與ENDS 構(gòu)成一對(duì)使用構(gòu)成一對(duì)使用 數(shù)據(jù)空間預(yù)置數(shù)據(jù)空間預(yù)置數(shù)據(jù)段名數(shù)據(jù)段名 ENDS堆棧段名堆棧段名 SEGMENT 堆??臻g預(yù)置堆??臻g預(yù)置堆棧段名堆棧段名 ENDS代碼段名代碼段名 SEGMENT ASSUME 段地址說(shuō)明段地址說(shuō)明START: 段地址裝填段地址裝填 (除代碼段(除代碼段CS外,其它段均要裝填。外,其它段均要裝填。CS段是系統(tǒng)在加段是系統(tǒng)在加 載程序后自

10、動(dòng)裝填的,即由操作系統(tǒng)的任務(wù)管理程序載程序后自動(dòng)裝填的,即由操作系統(tǒng)的任務(wù)管理程序 自動(dòng)完成裝填的,此項(xiàng)裝填不需要用戶管理。)自動(dòng)完成裝填的,此項(xiàng)裝填不需要用戶管理。) 主程序體主程序體 . .代碼段名代碼段名 ENDS ;代碼段結(jié)束代碼段結(jié)束 END START ;全部程序結(jié)束全部程序結(jié)束微機(jī)原理與接口技術(shù)精品課程11 data segment ;數(shù)據(jù)段;數(shù)據(jù)段 array db 32,43,56,8,65 count equ $ - array sum dw ? data ends stack segment ;堆棧段;堆棧段 stak db 10 dup(?) stack ends co

11、de segment ;代碼段;代碼段 assume cs : code ;段地址說(shuō)明;段地址說(shuō)明 ds : data ss : stack ;前面全是偽指令前面全是偽指令 start : mov ax , data ;段地址裝填;段地址裝填 mov ds , ax mov ax , stack mov ss , ax ;代碼段不用裝填!代碼段不用裝填! mov di , offset sum ;有效地址有效地址 mov bx , offset array mov cx , count mov ax , 0Lop: add al , bx adc ah , 0 ;帶進(jìn)位加帶進(jìn)位加 inc bx

12、 loop lop mov di , ax mov ah , 4ch int 21h ;返回返回DOSCode ends end start例:編一個(gè)程序,其功能是對(duì)例:編一個(gè)程序,其功能是對(duì)5個(gè)數(shù)據(jù)求和,并將個(gè)數(shù)據(jù)求和,并將 結(jié)果放入結(jié)果放入SUM單元。單元。微機(jī)原理與接口技術(shù)精品課程微機(jī)原理與接口技術(shù)精品課程14、ABCDB39,250,?,0,?定義數(shù)據(jù)的偽指令定義數(shù)據(jù)的偽指令15、SEGMENTENDS段定義偽指令段定義偽指令微機(jī)原理與接口技術(shù)精品課程14常用匯編語(yǔ)言指令介紹常用匯編語(yǔ)言指令介紹一、數(shù)據(jù)尋址方式類指令(只講以后用到的主要指令)一、數(shù)據(jù)尋址方式類指令(只講以后用到的主要指

13、令) 2. 寄存器尋址方式寄存器尋址方式 例例3.4(a) MOV AX,BX ;16位位例例3.4(b) MOV ECX,EDX ;32位,位,80386機(jī)及以后才有機(jī)及以后才有 1. 立即尋址方式立即尋址方式 例例3.1 MOV AL, 8 ; (AL)=08H ,08H是立即數(shù)是立即數(shù)例例3.2 MOV AX, 1234H ; (AX)=1234H例例3.3 MOV EAX,12345678H ;(EAX)=12345678H. 注意:立即數(shù)長(zhǎng)度應(yīng)予目的操作數(shù)長(zhǎng)度一致。注意:立即數(shù)長(zhǎng)度應(yīng)予目的操作數(shù)長(zhǎng)度一致。微機(jī)原理與接口技術(shù)精品課程153. 直接尋址方式直接尋址方式 例例3.5 MOV

14、 AX,2000H ; 注意注意2000H是偏移地址,也稱有效地址是偏移地址,也稱有效地址如(如(DS)=3000H,(,(32000H)=3050H,執(zhí)行結(jié)果為:,執(zhí)行結(jié)果為: (AX)=3050H。說(shuō)明:該指令的有效地址為說(shuō)明:該指令的有效地址為2000H, 操作數(shù)的物理地址操作數(shù)的物理地址=數(shù)據(jù)段基地址數(shù)據(jù)段基地址*16+有效地址(有效地址(2000H)注意:不要與立即尋址方式相混淆。(害怕混淆所以用了注意:不要與立即尋址方式相混淆。(害怕混淆所以用了 )微機(jī)原理與接口技術(shù)精品課程164. 基址變址尋址方式基址變址尋址方式 例:例: MOV AX,BXDI(或?qū)憺椋海ɑ驅(qū)憺椋篗OV AX

15、,BX+DI )對(duì)于對(duì)于32位尋址方式可有:位尋址方式可有: MOV EDX,EBXEDI 這種尋址方式適用于這種尋址方式適用于數(shù)組(一維、二維)數(shù)組(一維、二維)或或表格表格處理,其首處理,其首地址可存放在基址寄存器中,而通過(guò)修改變址寄存器的內(nèi)容來(lái)訪地址可存放在基址寄存器中,而通過(guò)修改變址寄存器的內(nèi)容來(lái)訪問(wèn)數(shù)組中的各個(gè)元素。問(wèn)數(shù)組中的各個(gè)元素。一、數(shù)據(jù)尋址方式類指令一、數(shù)據(jù)尋址方式類指令上面所講上面所講二、程序?qū)ぶ贩绞筋愔噶疃?、程序?qū)ぶ贩绞筋愔噶?程序跳轉(zhuǎn)程序跳轉(zhuǎn) 1、段內(nèi)無(wú)條件轉(zhuǎn)移指令:、段內(nèi)無(wú)條件轉(zhuǎn)移指令: JMP NEAR PTR PP ; 近轉(zhuǎn)移(近轉(zhuǎn)移(16/32) PP為符號(hào)地址

16、為符號(hào)地址 ; NEAR PTR 為操作符。為操作符。 ;對(duì);對(duì)8086轉(zhuǎn)移轉(zhuǎn)移16位,對(duì)位,對(duì)386及以后機(jī)型轉(zhuǎn)移及以后機(jī)型轉(zhuǎn)移32位位 2、段間無(wú)條件遠(yuǎn)轉(zhuǎn)移指令:、段間無(wú)條件遠(yuǎn)轉(zhuǎn)移指令: JMP WORD OTR OPR ; OPR為符號(hào)地址為符號(hào)地址后面還要介紹有條件跳轉(zhuǎn)后面還要介紹有條件跳轉(zhuǎn)微機(jī)原理與接口技術(shù)精品課程17 其他類型其他類型 匯編語(yǔ)言指令補(bǔ)充1、 PUSH AX ; 進(jìn)棧指令進(jìn)棧指令2、 POP AX ; 出棧指令出棧指令3、 PUSHF ; 標(biāo)志寄存器內(nèi)容進(jìn)棧標(biāo)志寄存器內(nèi)容進(jìn)棧4、 POPF ;標(biāo)志寄存器內(nèi)容出棧標(biāo)志寄存器內(nèi)容出棧 I/O口傳送指令:口傳送指令:5、外設(shè)

17、輸入指令:、外設(shè)輸入指令: 例例1: IN AX , 28H ; 從端口從端口28H輸入一字輸入一字 例例2:MOV DX , 3FCH IN AX , DX ;對(duì);對(duì)16位地址必須借助位地址必須借助 ;DX寄存器尋址寄存器尋址6、向外設(shè)輸出指令:例、向外設(shè)輸出指令:例1:OUT 5 , AL ; 向端口向端口5輸出一字節(jié)輸出一字節(jié) 例例2: MOV DX , 500H OUT DX , AL ;對(duì)對(duì)16位地址必須借助位地址必須借助 ; DX寄存器尋址寄存器尋址注意:注意:I/O大地址必須用大地址必須用DX寄存器尋址方式寄存器尋址方式4微機(jī)原理與接口技術(shù)精品課程187、地址傳送指令:、地址傳送

18、指令:LEA LEA BX , LIST ;將符號(hào)地址將符號(hào)地址LIST的有效地址送的有效地址送BX MOV BX , OFFSET LIST ; 同上,又一種寫(xiě)法同上,又一種寫(xiě)法,建立中斷向量建立中斷向量 ;時(shí)要用到。;時(shí)要用到。 ;表示某段子程序;表示某段子程序 LIST: * * * 8、加減指令、加減指令 ADD AX , CX ; 不帶進(jìn)位加不帶進(jìn)位加 AX (AX)-(CX) ADC DX , BX ; 帶進(jìn)位加帶進(jìn)位加 SUB AX , BX ; 減法指令減法指令 AX (AX)-(BX) INC AX ; 加加1 DEC CX ;減減1注意:注意:MOV BX,LIST ( L

19、IST) 什么意思?什么意思?微機(jī)原理與接口技術(shù)精品課程199、邏輯運(yùn)算指令、邏輯運(yùn)算指令 (1)AND 邏輯與指令邏輯與指令 格式:格式:AND DST,SRC 執(zhí)行的操作:(執(zhí)行的操作:(DST)(DST)(SRC) (2)TEST 測(cè)試指令測(cè)試指令 格式:格式:TEST OPR1,OPR2 執(zhí)行的操作:(執(zhí)行的操作:(OPR1)(OPR2),兩個(gè)操作數(shù)相與),兩個(gè)操作數(shù)相與 的結(jié)果不保存,只改變相關(guān)標(biāo)志位,如零標(biāo)志。的結(jié)果不保存,只改變相關(guān)標(biāo)志位,如零標(biāo)志。例:例:TEST AX, 01H ;測(cè)試測(cè)試AX的第的第0位位 JZ EVEN ;為;為0轉(zhuǎn)移,轉(zhuǎn)移, 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令JZ

20、,下面要講到,下面要講到 例:例:TEST AX, 01H ;測(cè)試測(cè)試AX的第的第0位位 JNZ EVEN ;為;為1轉(zhuǎn)移轉(zhuǎn)移微機(jī)原理與接口技術(shù)精品課程2010、條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令 程序何往?程序何往? 憑啥條件?憑啥條件? JZ OPR 測(cè)試條件測(cè)試條件:ZF=1,結(jié)果為零轉(zhuǎn)移;,結(jié)果為零轉(zhuǎn)移; JNZ OPR 測(cè)試條件測(cè)試條件:ZF=0,結(jié)果不為零轉(zhuǎn)移;,結(jié)果不為零轉(zhuǎn)移; JC OPR 測(cè)試條件測(cè)試條件:CF=1,有借位(進(jìn)位)轉(zhuǎn)移;,有借位(進(jìn)位)轉(zhuǎn)移; 條件轉(zhuǎn)移指令的應(yīng)用舉例:條件轉(zhuǎn)移指令的應(yīng)用舉例: MOV CX,30 MOV BX,0 AGAIN: INC BX DEC C

21、X JNZ AGAIN MOV AX,BX11、循環(huán)指令循環(huán)指令LOOP MOV CX, 30 MOV BX,0AGAIN: INC BX LOOP AGAIN MOV AX,BX微機(jī)原理與接口技術(shù)精品課程2112. 比較指令比較指令 CMP op1, op2; op1 op2 有借位嗎?有借位嗎? 執(zhí)行后只改變借位標(biāo)志執(zhí)行后只改變借位標(biāo)志 注:注: op1是是寄存器寄存器, op2是立即數(shù)或存儲(chǔ)器單元;是立即數(shù)或存儲(chǔ)器單元;此指令要配合條件轉(zhuǎn)移指令使用。此指令要配合條件轉(zhuǎn)移指令使用。例:例:1 x2為兩個(gè)字節(jié)單元,請(qǐng)按由小到大順序放入為兩個(gè)字節(jié)單元,請(qǐng)按由小到大順序放入y1 y2 字節(jié)單元。字節(jié)單元。編程:編程: mov al, x1 cmp al, x2 jc min mov y2, al ;如減法指令為;如減法指令為SUB,將出錯(cuò)!,將出錯(cuò)! mov y

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論