版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1,第3章 尋址方式與指令系統(tǒng),指令系統(tǒng)概述 8086尋址方式 8086指令系統(tǒng)(傳送指令),2,1.指令的基本概念 指令控制計算機(jī)完成指定操作的命令 機(jī)器語言指令指令的二進(jìn)制代碼形式。 例如:B8 34 12 匯編語言指令助記符形式的指令。 例如:MOV AX,1234H 指令系統(tǒng)CPU所有指令及其使用規(guī)則的集合,指令系統(tǒng)概述,3,2. 指令格式,操作碼 操作數(shù) MOV AX,2000H ;雙操作數(shù) ADD AX,0100H ;表示為:操作碼 DST,SRC ADD AL,BL DEC BX ;單操作數(shù),表示為:操作碼 DST NOP ;無操作數(shù),4,3. 8086指令執(zhí)行過程,以指令: M
2、OV AX,0064H;B8 64 00(機(jī)器碼) ADD AX,0100H;05 00 01 MOV 2000H,AX;A3 00 20 執(zhí)行過程為例。 假設(shè) CS=1000H,IP=0100H,DS=1492H,5,8088的指令執(zhí)行過程,6,1操作數(shù)的種類 (1)立即數(shù) MOVAX , 100H ; 源操作數(shù)100H即為立即數(shù)。 (2)寄存器操作數(shù) ADD AX , BX (3)存儲器操作數(shù) MOV AX,100H (4)操作數(shù)在端口寄存器中 IN AL,80H (5)隱含的寄存器操作數(shù) DAA 指令中沒有給出操作數(shù),但實際上隱含使用了某些指定的寄存器或段寄存器。,8086尋址方式,7,
3、2有效地址EA 存儲器操作數(shù)所給出的偏移地址即為有效地址,簡稱EA。EA是一個16位的無符號數(shù), 代表被尋址的存儲器操作數(shù)在存儲器中的位置距該段起點(首單元)的字節(jié)數(shù)。 操作數(shù)的物理地址=段地址16+EA 例: MOV AX,0100H ;PA=(DS) 16+0100H MOV AX,BX ;PA=(DS) 16+(BX),8,如何根據(jù)指令中提供的操作數(shù)獲得真正參加操作的數(shù)或指令轉(zhuǎn)移的目標(biāo)地址,稱尋址方式。,與數(shù)據(jù)有關(guān)的尋址方式,與轉(zhuǎn)移地址有關(guān)的尋址方式,指令的尋址方式分源操作數(shù)尋址方式和目標(biāo)操作數(shù)尋址方式,通常指源操作數(shù)尋址方式。,3.尋址方式,9,與數(shù)據(jù)有關(guān)的尋址方式:以 MOV指令為例
4、 立即尋址 MOV AX , 3069H 寄存器尋址 MOV AL , BH 直接尋址 MOV AX , 2000H 寄存器間接尋址 MOV AX , BX 寄存器相對尋址 MOV AX , COUNT SI 基址變址尋址 MOV AX , BP DI 相對基址變址尋址 MOV AX , MASK BX SI ,10,(1)立即尋址方式 : 操作數(shù)在指令中給出,即指令中的操作數(shù)就是參加操作的數(shù)。 MOV AL, 5 ;將5這一立即數(shù)送寄存器AL中。 MOV BL,0B6H MOV AX, 3069H ;將3069H這一立即數(shù)送寄存器AX中。 MOV AL, A ;將41H這一立即數(shù)送寄存器AL
5、中。 *立即數(shù)只能作為源操作數(shù)。,11,(2)寄存器尋址方式: 參加操作的數(shù)在指令指定的寄存器中,即寄存器的內(nèi)容為參加操作的數(shù)。 MOV AL, BH;將BH中的值送到寄存器AL中。 MOV AX, BX;將BX中的值送到寄存器AX中。 MOV AX, 3069H指令中的目標(biāo)操作數(shù)也是寄存器尋址。 可使用的寄存器: 16位:AX、BX、CX、DX、SI、DI、BX、BP 8位:AH、AL、BH、BL、CH、CL、DH、DL,12,(3) 直接尋址方式:指令中直接提供參加操作的數(shù)所在的有效地址EA(操作數(shù)的偏移地址) 。 例:MOV AX, 2000H EA=2000H, 假設(shè)(DS)=3000
6、H, 那么PA=32000H,* 隱含的段為數(shù)據(jù)段 DS * 可使用段跨越前綴 MOV AX, ES: 2000H * 編程時,常用符號地址(變量名)代替操作數(shù)的偏移量 如:MOV AX,BUF 或 MOV AX,BUF,50H,30H,32000H,AH AL,(AX) = 3050H,13,(4)寄存器間接尋址:由基址寄存器(BX/BP) 或變址寄存器(SI/DI) 提供參加操作的數(shù)所在的有效地址。 MOV AX, BX PA = 16d (DS) + (BX) MOV AX, ES:BX PA = 16d (ES) + (BX) MOV AX, BP PA = 16d (SS) + (B
7、P) *只有SI、DI、BX和BP可作間址寄存器。 MOV AX, CX * SRC 和 DST 的字長一致 ,源操作數(shù)為立即尋址時,應(yīng)指明操作數(shù)類型。 MOV DL, BX ; BX指示一個字節(jié)單元 MOV DX, BX ; BX指示一個字單元 MOV BYTE PTRSI,3 ;字節(jié) MOV WORD PTRSI,3 ;字 * 一般用于訪問表格或字符串。,14,(5) 寄存器相對尋址方式:由基址寄存器(BX/BP) 或變址寄存器(SI/DI) 與一偏移量相加作為參加操作的數(shù)所在的有效地址。 指令格式: MOV AX, COUNTSI 或 MOV AX, COUNT+SI 設(shè) (DS)=30
8、00H, (SI)=2000H, COUNT=3000H, (35000H)=1234H 則: PA = 35000H (AX)=1234H *也可使用段跨越前綴 MOV AX,ES:COUNTSI *可用于表格或數(shù)組數(shù)據(jù)的訪問,15,操作碼,00 偏移量低,2A 偏移量高,DS 6000,BX 1000,+ DATA 2A00,63A00,63A00H,AH,AL,AX,代碼段,數(shù)據(jù)段,. . .,. . .,. . .,66H,55H,指令操作例:MOV AX,DATABX,16,(6) 基址變址尋址方式:由一基址寄存器(BX/BP) 和一變址寄存器(SI/DI)相加作為參加操作的數(shù)所在的
9、有效地址。 4種組合 指令格式: MOV AX, BX DI MOV AX, BX+DI MOV AX, ES:BX SI *必須是一個基址寄存器和一個變址寄存器的組合 MOV AX, BX BP ;錯誤 MOV AX, SI DI ;錯誤 *可用于表格或數(shù)組數(shù)據(jù)的訪問,有效地址 =,(BX) (SI) (BP) (DI),+,17,( 7 ) 相對基址變址尋址方式:由一基址寄存器(BX/BP) 和一變址寄存器(SI/DI)和偏移量相加作為參加操作的數(shù)所在的有效地址。 如: MOV AX, MASK BX SI 或 MOV AX, MASK BX+SI 或 MOV AX, MASK+BX+SI
10、,有效地址 =,(BX) (SI) 8位 (BP) (DI) 16位,+,+,位移量,18,指令操作例:MOV AX,DATADIBX 若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H 則指令執(zhí)行后AX=5678H,83200,83200H,AH,AL,AX,+ DATA 0200,操作碼,代碼段,數(shù)據(jù)段,. . .,. . .,. . .,78H,56H,DS 8000,BX 2000,DI 1000,19,段 寄 存 器 的 使 用 規(guī) 定,與轉(zhuǎn)移地址有關(guān)的尋址方式(轉(zhuǎn)移指令中介紹),段內(nèi)尋址 段內(nèi)直接尋址 JMP NEAR PTR NEXT 段
11、內(nèi)間接尋址 JMP TABLE BX 段間尋址 段間直接尋址 JMP FAR PTR NEXT 段間間接尋址 JMP DWORD PTR BX ,用來確定轉(zhuǎn)移指令及調(diào)用子程序的入口地址。,21,指令按功能分為六大類(133條) 數(shù)據(jù)傳送指令 算術(shù)運算指令 邏輯運算和移位指令 串操作指令 程序控制指令 處理器控制指令,8086指令系統(tǒng),22,重點關(guān)注: 指令的匯編格式 指令的基本功能 指令支持的尋址方式 指令的執(zhí)行對標(biāo)志位的影響 指令的特殊要求,23,1. 數(shù)據(jù)傳送指令 通用數(shù)據(jù)傳送指令 MOV、 XCHG 、PUSH、POP 累加器專用傳送指令 IN、OUT、XLAT 地址傳送指令 LEA、L
12、DS、LES 標(biāo)志寄存器傳送指令 LAHF、SAHF、PUSHF、POPF,24,(1)通用數(shù)據(jù)傳送指令: MOV DST, SRC,25,注意: * DST、SRC 不能同時為段寄存器 MOV DS, ES * 立即數(shù)不能直接送段寄存器 MOV DS, 2000H * DST 不能是立即數(shù)和CS * DST、SRC 不能同時為存儲器尋址 * 不影響標(biāo)志位,26,如: MOV AX,1000H MOV WORD PTR 2000H,1000H MOV BX,1000H MOV AL,BH MOV 1000H,AX MOV DS,AX MOV ES,2000H MOV AX,DS MOV 200
13、0H,SEGREG,27,存儲器與寄存器間數(shù)據(jù)傳送。,MOV AX,BUF ;BUF是變量,源操作數(shù)為直接尋址 MOV BH,DI ;源操作數(shù)為寄存器間接尋址 MOV DI,ES:3SI ;源操作數(shù)為變址尋址,使用跨段前綴 MOV BP,3BX+SI;源操作數(shù)為基址加變址尋址 MOV BUFA,DL ;BUFA是一字節(jié)變量 MOV BP,AX ;使用SS段寄存器 MOV DS:BP,DL;使用跨段前綴 MOV BUF,DS ;BUF是個字變量 MOV ES ,BUF,28,(2) 堆棧(Stack)操作指令 什么是堆棧? 堆棧有兩種形式:一種是硬堆棧,即用寄存器組來實現(xiàn)的。另一種是軟堆棧,即用
14、主存的一部分空間作堆棧。堆棧的運行方式為先進(jìn)后出或先進(jìn)先出兩種,先進(jìn)后出型堆棧的操作數(shù)只能從一個口進(jìn)行讀或?qū)憽6褩V饕糜跁捍鏀?shù)據(jù)以及在“過程”調(diào)用或處理中斷時暫存斷點信息。 堆棧的構(gòu)造 現(xiàn)在通常采用軟堆棧,由程序設(shè)計人員用程序在存儲器中劃出一塊存儲區(qū)作為堆棧。這個存儲區(qū)最大地址的字存儲單元為堆棧底部,叫棧底(Bottom)。在堆棧中存放的數(shù)據(jù)或斷點信息從這里開始,逐漸向地址小的方向“堆積”。在任何時刻,存放最后一個信息的存儲單元(即已存放信息的最小地址單元)為堆棧頂部,叫棧頂(TOP)。棧頂是隨著存放信息的多少而變的 由于堆棧頂部是浮動的,為了指示現(xiàn)在堆棧中存放數(shù)據(jù)的位置,通常設(shè)置一個指針堆
15、棧指針SP(Stack Pointer),它始終指向堆棧的頂部。,29,8086堆棧的組織 棧底為堆??臻g的高地址單元,棧頂為低地址單元。 數(shù)據(jù)進(jìn)棧后,棧頂向低地址方向浮動;數(shù)據(jù)出棧后,棧頂向高地址方向調(diào)整。 一個16位的數(shù)據(jù)進(jìn)棧的規(guī)律是:高位字節(jié)存入高地址單元,低位字節(jié)存入低地址單元。 一個16位數(shù)據(jù)出棧規(guī)律是:低位字節(jié)彈到目標(biāo)操作數(shù)低位,高位字節(jié)彈到目標(biāo)操作數(shù)據(jù)高位。 為了指示棧頂?shù)漠?dāng)前位置,用SP存放棧頂?shù)挠行У刂贰?堆棧是按字組織的,即每次在堆棧中存取數(shù)據(jù)均是兩個字節(jié)。,30,堆棧操作指令 進(jìn)棧指令: PUSH SRC 執(zhí)行操作: (SP) (SP) 2 ( (SP)+1, (SP)
16、) (SRC) 出棧指令: POP DST 執(zhí)行操作: (DST) ( (SP)+1, (SP) ) (SP) (SP) + 2 堆棧:先進(jìn)后出的存儲區(qū),段地址存放在SS中, SP在任何時候都指向棧頂,進(jìn)出棧后自動修改SP。 注意: * 堆棧操作必須以字為單位。 * 不影響標(biāo)志位 * 不能用立即尋址方式 PUSH 1234H * DST不能是CS POP CS ,31,例:假設(shè) (AX) = 2107 H , 執(zhí)行 PUSH AX,* * * * * * * *,(SP),PUSH AX 執(zhí)行前,(SP),* * * * * * * *,07H 21H,低地址 高地址,PUSH AX 執(zhí)行后,
17、32,(SP),* * * * * * * *,07H 21H,POP BX 執(zhí)行前,(SP),* * * * * * * *,07H 21H,低地址 高地址,POP BX 執(zhí)行后 (BX) = 2107H,例: POP BX,33,例: PUSH AX PUSH BX PUSH CX ;其間用到AX、BX、CX POP AX ; 后進(jìn)先出 POP BX POP CX AX、BX、CX結(jié)果如何呢?,AX、BX、CX分別為CX、BX、AX的值。,34,例: PUSH AX PUSH BX PUSH CX ;此期間使用AX、BX、CX POP CX ; 后進(jìn)先出 POP BX POP AX AX、
18、BX、CX保持不變。,35,(3) 地址傳送指令 有效地址送寄存器指令: LEA REG, SRC 等效于: MOV REG,OFFSET SRC 執(zhí)行操作: REG SRC 指針?biāo)图拇嫫骱虳S指令: LDS REG, SRC 執(zhí)行操作: REG (SRC) DS (SRC+2) 相繼二字 寄存器、DS 指針?biāo)图拇嫫骱虴S指令: LES REG, SRC 執(zhí)行操作: REG (SRC) ES (SRC+2) 相繼二字 寄存器、ES,36,例:LEA BX, BX+SI+0F62H LDS SI, 10H LES DI, BX,40 H 00 H 00 H 30 H,TABLE (DS):100
19、0H,MOV BX, TABLE ; (BX)=0040H MOV BX, OFFSET TABLE ; (BX)=1000H LEA BX, TABLE ; (BX)=1000H LDS BX, TABLE ; (BX)=0040H ; (DS)=3000H LES BX, TABLE ; (BX)=0040H ; (ES)=3000H,注意: * 不影響標(biāo)志位 * REG 不能是段寄存器,一般是SI、DI、BX 。 * SRC 必須為存儲器尋址方式,37,例:LEA SI,BX與MOV SI,BX的區(qū)別 假設(shè)(BX)=1234H,(DS)=2000H,(21234H)=78H,(21235
20、H)=56H。 LEA SI,BX;將寄存器BX的內(nèi)容作為存儲器的有效地址 送入SI,(SI)=1234H MOV SI,BX;將寄存器BX間接尋址的連續(xù)兩個存儲單元 的內(nèi)容送入SI 中,(SI)=5678H,38,(4) 標(biāo)志寄存器傳送指令 標(biāo)志送AH指令: LAHF(Load AH with Flags) 執(zhí)行操作: (AH) (FLAGS的低字節(jié)) * 不影響標(biāo)志位 AH送標(biāo)志寄存器指令: SAHF (Store AH into Flags) 執(zhí)行操作: (FLAGS的低字節(jié)) (AH) * 影響標(biāo)志低位內(nèi)容 標(biāo)志進(jìn)棧指令: PUSHF 執(zhí)行操作: (SP) (SP) - 2 ( (SP
21、)+1, (SP) ) (FLAGS) * 不影響標(biāo)志位 標(biāo)志出棧指令: POPF 執(zhí)行操作: (FLAGS) ( (SP)+1, (SP) ) (SP) (SP) + 2 * 影響標(biāo)志位,39,(5)數(shù)據(jù)交換指令,交換指令: XCHG OPR1, OPR2 執(zhí)行操作: (OPR1) (OPR2) XCHG REG,REG;寄存器之間交換 XCHG REG,MEM;寄存器與存儲器之間交換 注意: * 不影響標(biāo)志位 * 不允許使用段寄存器 * 可字節(jié)操作,也可字操作 例:XCHG BX, BP+SI XCHG AL, BH,40,例: MOVAX,5678H ;(AX)=5678H MOVBX,0FFFFH;(BX)=0FFFFH XCHG AX,BX;(AX)=0FFFFH ,( BX)=5678H,41,(6)換碼指令(查表轉(zhuǎn)換指令) 換碼指令:XLAT 或XLAT OPR 執(zhí)行操作:(AL) ( (BX) + (AL) ) 例如:內(nèi)存數(shù)據(jù)段有一張16進(jìn)制數(shù)的ASCII碼表,設(shè)首地址為2000H,如欲查
溫馨提示
- 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é)議書模板
- 2025年度棗樹種植與現(xiàn)代農(nóng)業(yè)園區(qū)建設(shè)合同4篇
- 行業(yè)間對于展會安全管理知識的普及推廣
- 網(wǎng)絡(luò)安全背景下學(xué)生行為規(guī)范的強(qiáng)化措施
- 科技助力孩子藝術(shù)成長現(xiàn)代教學(xué)方法與實踐
- 二零二五年度車輛擔(dān)保質(zhì)押投資合作合同4篇
- 2025版施工安全協(xié)議書:裝配式建筑安全協(xié)議范本3篇
- 維護(hù)策略在實驗室設(shè)備長期運行中的重要性
- 二零二五年度車牌租賃與車輛租賃信用評估合同4篇
- 巖棉防火技術(shù)在現(xiàn)代建筑中的應(yīng)用研究
- 人教版數(shù)學(xué)四年級下冊核心素養(yǎng)目標(biāo)全冊教學(xué)設(shè)計
- JJG 692-2010無創(chuàng)自動測量血壓計
- 三年級下冊口算天天100題(A4打印版)
- 徐州市2023-2024學(xué)年八年級上學(xué)期期末地理試卷(含答案解析)
- CSSD職業(yè)暴露與防護(hù)
- 飲料對人體的危害1
- 數(shù)字經(jīng)濟(jì)學(xué)導(dǎo)論-全套課件
- 移動商務(wù)內(nèi)容運營(吳洪貴)項目三 移動商務(wù)運營內(nèi)容的策劃和生產(chǎn)
- 中考記敘文閱讀
- 產(chǎn)科溝通模板
- 2023-2024學(xué)年四川省成都市小學(xué)數(shù)學(xué)一年級下冊期末提升試題
評論
0/150
提交評論