版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、3.2 8086指令分類,指令系統(tǒng),是指CPU能完成的所有指令的集合,它是在CPU設(shè)計(jì)時(shí)就確定了的。,8088/8086 CPU的指令系統(tǒng)可分成下面13類:,(1)數(shù)據(jù)傳送指令; (2)算術(shù)運(yùn)算指令; (3)邏輯運(yùn)算指令; (4)移位指令;,3.2 8086指令分類,(5)標(biāo)志位操作指令; (6)轉(zhuǎn)移指令 (7)循環(huán)控制指令; (8)子程序調(diào)用和返回指令; (9)中斷調(diào)用和返回指令; (10)字符串操作指令;,3.2 8086指令分類,(11)輸入、輸出指令 (12)其它指令 (13)宏指令,3.2 8086指令分類,先簡要介紹用到的各種符號(hào):,3.2 8086指令分類,3.3 數(shù)據(jù)與轉(zhuǎn)移地址
2、的尋址方式,在指令中,用于說明操作數(shù)所在地址的方法就稱為尋址方式。 8086CPU指令系統(tǒng)的尋址方式分為兩類: 數(shù)據(jù)的尋址方式:尋找指令操作所需數(shù)據(jù)的方法; 轉(zhuǎn)移地址的尋址方式:尋找轉(zhuǎn)移指令所需的程序地址。,下面講關(guān)于數(shù)據(jù)的尋址方式時(shí),均以數(shù) 據(jù)傳送指令MOV為例講解。MOV指令格式如下:,MOV DST , SRC,目的操作數(shù),源操作數(shù),助記符,指令完成的功能: (DST) (SRC),3.3 數(shù)據(jù)尋址方式,數(shù)據(jù)的尋址方式(共8種): 立即尋址(Immediate Addressing ) 寄存器尋址(Register Addressing ) 存儲(chǔ)器尋址(Memory Addressing
3、 )(5種):直接尋址、寄存器間接尋址、寄存器相對(duì)尋址、基址變址尋址和基址變址且相對(duì)尋址 隱含尋址(Hidden Addressing ),數(shù)據(jù)的尋址方式就是告訴CPU存/取數(shù)據(jù)的地方。,3.3 數(shù)據(jù)尋址方式,操作數(shù)直接存放在指令中,緊跟在操作碼之后,作為指令的一部分,存放在代碼段里,這種操作數(shù)稱為立即數(shù)。,3.3 數(shù)據(jù)尋址方式,A H,A L,A X,操作碼,存儲(chǔ)器,例:MOV AX ,1234H,B8H,34H,12H,(AX)=1234H,3.3 數(shù)據(jù)尋址方式,數(shù)據(jù)放在指令規(guī)定的寄存器中,對(duì)16位數(shù)據(jù),REG可以是AX、BX、CX、DX、SI、DI、SP、BP以及段寄存器,而對(duì)于8位數(shù)據(jù)
4、, REG可以是AH、AL、BH、BL、CH、CL、DH、DL。,在程序設(shè)計(jì)中,一般存放數(shù)據(jù)時(shí),寄存器選擇通用寄存器,而存放結(jié)果時(shí)盡可能的使用AX累加器,因?yàn)槭褂肁X累加器要比用其它寄存器指令執(zhí)行時(shí)間要短一些。 寄存器尋址既可以作DST,也可以作SRC。,3.3 數(shù)據(jù)尋址方式,例:MOV AX , BX,若(AX)=1234H,(BX)=5678H,則CPU執(zhí)行上條 指令后,(AX)=5678H,而(BX)不變。,(語法錯(cuò)誤),錯(cuò)誤原因:類型不一致。,3.3 數(shù)據(jù)尋址方式,這類尋址方式,操作數(shù)在存儲(chǔ)器中,而存儲(chǔ)器單元的地址由以下五種尋址方式的任何一種均可以找到。但在指令中給出的只是要尋找的操作
5、數(shù)所在單元的段內(nèi)偏移地址,而操作數(shù)所在單元的段地址除非指令中用段前綴特別指明,否則是默認(rèn)的DS。,3.3 數(shù)據(jù)尋址方式,指令中直接給出了要尋找操作數(shù)所在單元的16位偏移地址。,操作數(shù)所在單元的物理地址 : PA (段寄存器) 16 +指令中給出的偏移地址,直接尋址(Direct Addressing ),指令中直接給出的操作數(shù)所在單元的16位偏移地址默認(rèn)在數(shù)據(jù)段。也可以通過增加段前綴來改變操作數(shù)所在的段地址。,3.3 數(shù)據(jù)尋址方式,A X,CS段,操作碼,例1:MOV AX,2000H 若DS為3000H,則:,A H,A L,32000H,32001H,3 0 0 0 0 H,+,DS,存儲(chǔ)
6、器,20H,00H,A1H,2 0 0 0 H,PA=3 2 0 0 0 H,3.3 數(shù)據(jù)尋址方式,CS段,操作碼,例2:MOV 2000H ,AL 若DS為3000H,則:,A L,32000H,3 0 0 0 0 H,+,DS,存儲(chǔ)器,20H,00H,2 0 0 0 H,PA=3 2 0 0 0 H,3.3 數(shù)據(jù)尋址方式,CS段,操作碼,例3:MOV ES:2000H ,AL 若ES為2050H,則:,A L,22500H,2 0 5 0 0 H,+,ES,存儲(chǔ)器,20H,00H,2 0 0 0 H,PA=2 2 5 0 0 H,前綴碼,3.3 數(shù)據(jù)尋址方式,在實(shí)際的匯編語言程序設(shè)計(jì)中,如
7、果程序比較復(fù)雜,而用到的存放數(shù)據(jù)的單元又很多,那么在直接尋址方式當(dāng)中,用戶就要記住存放數(shù)據(jù)的每個(gè)單元的地址,對(duì)設(shè)計(jì)程序帶來了很大的困難。,3.3 數(shù)據(jù)尋址方式,所以在實(shí)際的匯編語言程序設(shè)計(jì)中,常常采用給存放數(shù)據(jù)的單元,定義一個(gè)符號(hào)地址名,即變量名/變量。,變量名一但定義了,就具有了:,該單元的段地址,該單元的偏移地址,類型,大小,長度,五個(gè)屬性,這樣,在程序設(shè)計(jì)中就可以用這個(gè)變量名代替原來的存儲(chǔ)器單元的實(shí)際地址。,3.3 數(shù)據(jù)尋址方式,例4:若(DS)=1500H,TABLE為在DS段定義的一個(gè)字變量,且偏移地址為0004H。則CPU執(zhí)行 MOV AX ,TABLE 指令完成的操作如下:,1
8、5 0 0 0 H,+,DS,存儲(chǔ)器,數(shù)據(jù)段,0 0 0 4 H,PA=1 5 0 0 4 H,A H,A L,15004H,15005H,TABLE,3.3 數(shù)據(jù)尋址方式,例5:若VAR1為字變量, VAR2和VAR3為字節(jié)變量,判斷下列指令的書寫格式是否正確,正確的說出SRC和DST的尋址方式,不正確說出錯(cuò)誤原因。,MOV AX , VAR1 MOV AX , VAR2 MOV VAR2, VAR3 MOV 0200H ,12H,3.3 數(shù)據(jù)尋址方式, SRC為直接尋址 DST為寄存器尋址, 類型不一致, 兩存儲(chǔ)器單元之間不 能直接傳送數(shù)據(jù), 類型不明確,例6:將例5中語法不正確的語句改對(duì)
9、。,MOV AX , VAR2 改:MOV AL , VAR2 MOV VAR2, VAR3 改:MOV AL ,VAR3 MOV VAR2 ,AL MOV 0200H ,12H 改:MOV BYTE PTR 0200H ,12H 或者:MOV WORD PTR 0200H ,12H,3.3 數(shù)據(jù)尋址方式,這種尋址方式,要尋找的操作數(shù)在某存儲(chǔ)器單元中,該存儲(chǔ)器單元的16位偏移地址在指令中以BX、SI、DI某一個(gè)寄存器給出。其段地址默認(rèn)在DS段。,SI,DI,BX,EA=,寄存器間接尋址Register Indirect Addressing,3.3 數(shù)據(jù)尋址方式,例1:MOV AX , BX
10、其SRC為寄存器間接尋址; DST為寄存器尋址; 指令完成的功能為: (AX) (DS):(BX) 若:(DS)=3000H , (BX)=1050H 則:SRC所在單元的物理地址為:,PA=(DS) 16+(BX) =30000H+1050H =31050H,3.3 數(shù)據(jù)尋址方式,操作碼,A H,A L,31050H,31051H,存儲(chǔ)器,A X,8BH,07H,3 0 0 0 0 H,DS:,+,1 0 5 0 H,3 1 0 5 0 H,BX:,PA:,3.3 數(shù)據(jù)尋址方式,例2:MOV ES:SI , AL 指令完成的功能為: (ES):(SI) (AL) 若:(ES)=4000H,(
11、SI)=1234H,(AL)=23H 則:DST所在單元的物理地址為: PA=(ES)16+(SI) =40000H+1234H =41234H 指令執(zhí)行后(41234H)=23H.,3.3 數(shù)據(jù)尋址方式,例3:判斷下列指令的書寫格式是否正確,正確的說出SRC和DST的尋址方式,不正確說出錯(cuò)誤原因,并改正。 MOV BX, SI,3.3 數(shù)據(jù)尋址方式, 兩存儲(chǔ)器單元之間不 能直接傳送數(shù)據(jù);類型也 不明確。,改正:MOV AL , SI MOV BX , AL, MOV DI ,12H, MOV SI ,CX,3.3 數(shù)據(jù)尋址方式, 類型不明確,改正:MOV WORD PTR DI , 12H,
12、DST為寄存器間接尋址 SRC為寄存器尋址,要尋找的操作數(shù)在某存儲(chǔ)器單元之中,該單元 的有效地址的一部分在 中,另一部分為一 個(gè) DISP。,寄存器相對(duì)尋址Register Relative Addressing,其中,DISP,相對(duì)位移量,3.3 數(shù)據(jù)尋址方式,EA=,+,在DISP為常數(shù)時(shí),操作數(shù)所在單元的段地址以寄存器為準(zhǔn),若寄存器為BX、SI、DI,操作數(shù)默認(rèn)在DS段中。若寄存器為BP,操作數(shù)默認(rèn)在SS段中。 在DISP為變量時(shí),操作數(shù)所在單元的段地址以變量為準(zhǔn),變量在哪個(gè)段定義的,就取該段的段地址。,3.3 數(shù)據(jù)尋址方式,例1:MOV AX , BX+05H 其中,SRC也可以寫成:
13、 若:(DS)=2000H , (BX)=0008H, 存放操作 數(shù)單元的物理地址為:,PA=(DS)16+(BX)+05H =20000H+0008H+05H =2000DH,BX+05H,05HBX,05H+BX,3.3 數(shù)據(jù)尋址方式,A H,A L,2000DH,2000EH,+,存儲(chǔ)器,AX,8BH,47H,05H,2 0 0 0 0 H,0 0 0 8 H,2 0 0 0 D H,0 0 0 5 H,3.3 數(shù)據(jù)尋址方式,例2:MOV AX , BP 若:(SS)=1050H,(BP)=0050H, 存放操作 數(shù)的存儲(chǔ)單元的物理地址為:,PA=(SS)16+(BP)+00H =105
14、00H+0050H+00H =10550H,3.3 數(shù)據(jù)尋址方式,A H,A L,10550H,10551H,+,存儲(chǔ)器,1 0 5 5 0 H,0 0 5 0 H,1 0 5 0 0 H,3.3 數(shù)據(jù)尋址方式,例3:若(DS)=1500H,TABLE為在DS段定義的一個(gè)字 變量,且偏移地址為0004H,(BP)=0003H。 MOV AX ,TABLE BP SRC的尋址方式為寄存器相對(duì)尋址。 指令完成的操作為: (AX) (DS): OFFSET TABLE+(BP),3.3 數(shù)據(jù)尋址方式,要尋找的操作數(shù)在某存儲(chǔ)器單元之中,該單元 有效地址的一部分在 中,另一部分在 中。,基址變址尋址Ba
15、sed Indexed Addressing,EA=,+,該單元的段地址以基址寄存器為準(zhǔn),若基址寄存器為BX,則段地址默認(rèn)在DS中,若基址寄存器為BP,則段地址默認(rèn)在SS中。,3.3 數(shù)據(jù)尋址方式,例1:MOV AX , BXSI (AX) (DS):(BX+SI) 例2:MOV AX , BPSI (AX) (SS):(BP+SI) 例3:MOV BPDI , AL (SS):(BP+DI) (AL),3.3 數(shù)據(jù)尋址方式,它是基址變址尋址的擴(kuò)充,操作數(shù)仍在存儲(chǔ)器中,存儲(chǔ)器單元的有效地址為:,同樣,如果用BX作為基地址,操作數(shù)默認(rèn)在DS段中;如果用BP作為基地址,則在SS段中。 在DISP為
16、變量時(shí),操作數(shù)所在單元的段地址以變量為準(zhǔn),變量在哪個(gè)段定義的,就取該段的段地址。,基址變址且相對(duì)尋址 Based Indexed Relative Addressing,3.3 數(shù)據(jù)尋址方式,例1: MOV AX , BXDI04 (AX) (DS):(BX+DI+04H) 例2:MOV AX , BPDI04 (AX) (SS):(BP+DI+04H) 例3:MOV DS:BPDI+04H , AL (DS):(BP+DI+04H) (AL),3.3 數(shù)據(jù)尋址方式,有些指令的指令碼中不包含指明操作數(shù)地址的部分,而其操作碼本身隱含的指明了操作數(shù)地址。 如:乘除法指令、字符串操作類指令等。,3.
17、3 數(shù)據(jù)尋址方式,例1.若(BX)=0158H , (DI)=10A5H , (DS)=2100H , DISP=1B57H , (BP)=0100H , (SS)=1100H , 段寄存器按默認(rèn)段寄存器,則相對(duì)于各種尋址方式的EA的求法如下:,直接尋址:,EA=1B57H PA=21000H+1B57H=22B57H,3.3 數(shù)據(jù)尋址方式,例1.若(BX)=0158H , (DI)=10A5H , (DS)=2100H , DISP=1B57H , (BP)=0100H , (SS)=1100H , 段寄存器按默認(rèn)段寄存器,則相對(duì)于各種尋址方式的EA的求法如下:,寄存器間接尋址(設(shè)寄存器為B
18、X):,EA=0158H PA=21000H+0158H=21158H,3.3 數(shù)據(jù)尋址方式,例1.若(BX)=0158H , (DI)=10A5H , (DS)=2100H , DISP=1B57H , (BP)=0100H , (SS)=1100H , 段寄存器按默認(rèn)段寄存器,則相對(duì)于各種尋址方式的EA的求法如下:,寄存器相對(duì)尋址(以BP為例):,EA=0100H+1B57H=1C57H PA=11000H+1C57H =12C57H,3.3 數(shù)據(jù)尋址方式,例1.若(BX)=0158H , (DI)=10A5H , (DS)=2100H , DISP=1B57H , (BP)=0100H
19、, (SS)=1100H , 段寄存器按默認(rèn)段寄存器,則相對(duì)于各種尋址方式的EA的求法如下:,基址變址尋址(BX、DI):,EA=0158H+10A5H=11FDH PA=21000H+11FDH=221FDH,3.3 數(shù)據(jù)尋址方式,例1.若(BX)=0158H , (DI)=10A5H , (DS)=2100H , DISP=1B57H , (BP)=0100H , (SS)=1100H , 段寄存器按默認(rèn)段寄存器,則相對(duì)于各種尋址方式的EA的求法如下:,基址變址相對(duì)尋址(BP、DI):,EA=0100H+10A5H+1B57H=2CFCH PA=11000H+2CFCH=13CFCH,3.
20、3 數(shù)據(jù)尋址方式,例2:判斷下列指令的書寫格式是否正確,正確的說出SRC和DST的尋址方式,不正確說出錯(cuò)誤原因。,MOV AX, BXSI MOV AX, BL MOV BP, DI+01H MOV BXDI+02H ,12H,3.3 數(shù)據(jù)尋址方式, SRC為基址變址尋址 DST為寄存器尋址, 類型不一致, 兩存儲(chǔ)器單元之間 不能直接傳送數(shù)據(jù), 類型不明確,當(dāng)CPU執(zhí)行轉(zhuǎn)移指令時(shí),通過改變IP或CS:IP, 從而實(shí)現(xiàn)程序的轉(zhuǎn)移。 如果程序轉(zhuǎn)移后只有IP發(fā)生了改變,則稱 為段內(nèi)轉(zhuǎn)移或者稱為近程轉(zhuǎn)移(也稱為NEAR 型轉(zhuǎn)移)。 如果程序轉(zhuǎn)移后CS、IP均發(fā)生了改變,則 稱為段間轉(zhuǎn)移或者稱為遠(yuǎn)程轉(zhuǎn)移
21、(也稱為FAR 型轉(zhuǎn)移)。,3.3 轉(zhuǎn)移地址的尋址方式,先介紹無條件轉(zhuǎn)移指令JMP : JMP OPR 程序轉(zhuǎn)移到由OPR指定的位置執(zhí)行。,8086指令系統(tǒng)中的轉(zhuǎn)移指令有兩大類:,無條件轉(zhuǎn)移指令:有JMP、CALL、RET、IRET,條件轉(zhuǎn)移指令:如JZ、JC、JCXZ、LOOP等。,3.3 轉(zhuǎn)移地址的尋址方式,3.3 轉(zhuǎn)移地址的尋址方式,轉(zhuǎn)移地址的尋址方式有下列4種:,段內(nèi)尋址表示轉(zhuǎn)移在本段內(nèi)完成,段間尋址表示轉(zhuǎn)移 在不同段之間完成。,1.段內(nèi)直接尋址 (Direct addressing within same segment) (也叫段內(nèi)相對(duì)尋址),3.3 轉(zhuǎn)移地址的尋址方式,指令中給出
22、的位移量和當(dāng)前IP的內(nèi)容相加做為下一條指令的偏移地址,轉(zhuǎn)移在同一個(gè)段內(nèi)完成。指令中用JMP 表示,當(dāng)然這里的標(biāo)號(hào)與該指令處在同一個(gè)段。例如: JMP LABEL ;程序轉(zhuǎn)移到標(biāo)號(hào)LABEL處執(zhí)行,操作碼,16位DISP, L1: ,間隔的字節(jié)數(shù)稱為相對(duì) 位移量DISP,當(dāng)前IP,-32768,+32767,?H,?H,轉(zhuǎn)移目的地的(IP)=當(dāng)前(IP)+16位DISP,JMP L1 ;JMP NEAR PTR L1,XXH,3.3 轉(zhuǎn)移地址的尋址方式,2.段內(nèi)間接尋址(Indirect addressing within same segment),3.3 轉(zhuǎn)移地址的尋址方式,段內(nèi)間接尋址是指
23、轉(zhuǎn)移目的地址(16位偏移地址)保存在寄存器或存儲(chǔ)單元,轉(zhuǎn)移也在同一個(gè)段內(nèi)完成,在指令中指出所使用的寄存器或存儲(chǔ)單元的偏移地址,當(dāng)采用存儲(chǔ)單元保存轉(zhuǎn)移地址時(shí),可以采用以上介紹的5種存儲(chǔ)器尋址方式。例如: JMP BX;程序轉(zhuǎn)移的目的地址為BX的內(nèi)容 JMP VAR1;程序轉(zhuǎn)移的目的地址為字型變量 VAR1的內(nèi)容 JMP VAR1SI; 目的地址保存在存儲(chǔ)器,其有效 地址為(SI)OFFSET VAR1,例:若(DS)=2000H,(BX)=0100H,(SI)=0002H, (20100H)=1200H,(20102H)=1250H, 則CPU執(zhí)行:,3.3 轉(zhuǎn)移地址的尋址方式,JMP BX 指令后,(IP)=,JMP WORD PTR BX指令后,(IP)=,JMP WORD PTR BXSI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 地面專項(xiàng)施工方案(3篇)
- 校園文化活動(dòng)組織與管理制度
- 漢初的選官制度
- 食品安全會(huì)長制度
- 2026上海復(fù)旦大學(xué)附屬腫瘤醫(yī)院執(zhí)業(yè)醫(yī)師執(zhí)業(yè)助理醫(yī)師招聘10人備考題庫及參考答案詳解
- 新疆維吾爾自治區(qū)吐魯番市高昌區(qū)第二中學(xué)2026屆生物高一上期末達(dá)標(biāo)測試試題含解析
- 2026上半年安徽事業(yè)單位聯(lián)考銅陵市義安區(qū)招聘27人備考題庫及一套參考答案詳解
- 銷售管理部門制度
- 北京市西城區(qū)魯迅中學(xué)2026屆生物高三第一學(xué)期期末達(dá)標(biāo)檢測試題含解析
- 糧食運(yùn)輸企業(yè)財(cái)務(wù)制度
- 干部因私出國(境)管理有關(guān)要求
- 民爆物品倉庫安全操作規(guī)程
- 老年癡呆科普課件整理
- 2022年鈷資源產(chǎn)業(yè)鏈全景圖鑒
- von frey絲K值表完整版
- 勾股定理復(fù)習(xí)導(dǎo)學(xué)案
- GB/T 22900-2022科學(xué)技術(shù)研究項(xiàng)目評(píng)價(jià)通則
- GB/T 6418-2008銅基釬料
- GB/T 16621-1996母樹林營建技術(shù)
- GB/T 14518-1993膠粘劑的pH值測定
- GB/T 14072-1993林木種質(zhì)資源保存原則與方法
評(píng)論
0/150
提交評(píng)論