六指令系統(tǒng)及匯編程序設計PPT學習教案_第1頁
六指令系統(tǒng)及匯編程序設計PPT學習教案_第2頁
六指令系統(tǒng)及匯編程序設計PPT學習教案_第3頁
六指令系統(tǒng)及匯編程序設計PPT學習教案_第4頁
六指令系統(tǒng)及匯編程序設計PPT學習教案_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、會計學1 六指令系統(tǒng)及匯編程序設計六指令系統(tǒng)及匯編程序設計 一、指令的一般格式 操作碼字段 地址碼字段 1. 操作碼 反映機器做什么操作 (1) 長度固定 (2) 長度可變 用于指令字長較長的情況 ,RISC 如 IBM 370操作碼 8 位 操作碼分散在指令字的不同字段中 第1頁/共42頁 (3) 擴展操作碼技術 操作碼的位數(shù)隨地址數(shù)的減少而增加 OP A1 A2 A3 0000 0001 1110 A1 A1 A1 A2 A2 A2 A3 A3 A3 A2 A2 A2 A3 A3 A3 1111 1111 1111 0000 0001 1110 1111 1111 1111 1111 11

2、11 1111 1111 1111 1111 0000 0001 1111 1111 1111 1111 1111 1111 1111 A3 A3 A3 0000 0001 1110 4 位操作碼 8 位操作碼 12 位操作碼 16 位操作碼 最多15條三地址指令 最多15條二地址指令 最多15條一地址指令 16條零地址指令 第2頁/共42頁 (3) 擴展操作碼技術 操作碼的位數(shù)隨地址數(shù)的減少而增加 OP A1 A2 A3 0000 0001 1110 A1 A1 A1 A2 A2 A2 A3 A3 A3 A2 A2 A2 A3 A3 A3 1111 1111 1111 0000 0001 1

3、110 1111 1111 1111 1111 1111 1111 1111 1111 1111 0000 0001 1111 1111 1111 1111 1111 1111 1111 A3 A3 A3 0000 0001 1110 4 位操作碼 8 位操作碼 12 位操作碼 16 位操作碼 三地址指令操作碼 每減少一種可多構(gòu)成 24 種二地址指令 二地址指令操作碼 每減少一種可多構(gòu)成 24 種一地址指令 第3頁/共42頁 2. 地址碼 (1) 四地址 (2) 三地址 OP A1 A2 A3 A4 8 6 6 6 6 A1 第一操作數(shù)地址 A2 第二操作數(shù)地址 A3 結(jié)果的地址 A4 下一條

4、指令地址 若 PC 代替 A4(A1) OP (A2) A3 8 8 8 8 OP A1 A2 A3 (A1) OP (A2) A3 4 次訪存 4 次訪存 尋址范圍 26 = 64 尋址范圍 28 = 256 若 A3 用 A1 或 A2 代替 設指令字長為 32 位 操作碼固定為 8 位 第4頁/共42頁 (3) 二地址 OP A1 A2 8 12 12 (A1) OP (A2) A1 (A1) OP (A2) A2 或 4 次訪存 若ACC 代替 A1(或A2)若結(jié)果存于 ACC (4) 一地址 (5) 零地址 OP A1 8 24 無地址碼 (ACC) OP (A1) ACC 2 次訪

5、存 尋址范圍 212 = 4 K 尋址范圍 224 = 16 M 3次訪存 第5頁/共42頁 二、指令字長 指令字長決定于 操作碼的長度 指令字長 = 存儲字長 2. 指令字長 可變 操作數(shù)地址的長度 操作數(shù)地址的個數(shù) 1. 指令字長 固定 按字節(jié)的倍數(shù)變化 第6頁/共42頁 小結(jié) 當用一些硬件資源代替指令字中的地址碼字段后 當指令的地址字段為寄存器時 可擴大指令的尋址范圍 可縮短指令字長 可減少訪存次數(shù) 三地址 OP R1, R2, R3 二地址 OP R1, R2 一地址 OP R1 指令執(zhí)行階段不訪存 可縮短指令字長 第7頁/共42頁 一、操作數(shù)類型 地址 數(shù)字 字符 邏輯數(shù) 無符號整數(shù)

6、 定點數(shù)、浮點數(shù)、十進制數(shù) ASCII 邏輯運算 二、數(shù)據(jù)在存儲器中的存放方式 字地址 為 低字節(jié) 地址字地址 為 高字節(jié) 地址 3 76 21 54 0 字地址 0 4 低字節(jié) 0 45 12 67 3 字地址 0 4 低字節(jié) 第8頁/共42頁 存儲器中的數(shù)據(jù)存放(存儲字長為 32 位) 地址(十進制) 0 4 8 12 16 20 24 28 32 36 雙字 雙字(地址32) 雙字 雙字(地址24) 半字(地址20)半字(地址22) 半字(地址16)半字(地址18) 字節(jié)(地址 8)字節(jié)(地址 9)字節(jié)(地址10)字節(jié)(地址11) 字(地址 4) 字(地址 0) 字節(jié)(地址14) 字節(jié)(

7、地址15)字節(jié)(地址13)字節(jié)(地址12) 邊界對準 地址(十進制) 0 4 8 字節(jié)( 地址7)字節(jié)( 地址6) 字( 地址2) 半字( 地址10)半字( 地址8) 半字( 地址0) 字( 地址4) 邊界未對準 第9頁/共42頁 三、操作類型 1. 數(shù)據(jù)傳送 源 目的 寄存器寄存器 寄存器寄存器 存儲器存儲器 存儲器存儲器 置“1”,清“0” 2. 算術邏輯操作 加、減、乘、除、增 1、減 1、求補、浮點運算、十進制運算 與、或、非、異或、位操作、位測試、位清除、位求反 如 8086 MOVESTORELOADMOVE PUSHPOP 例如 MOVEMOVE ADD SUB MUL DIV

8、INC DEC CMP NEG AAA AAS AAM AAD AND OR NOT XOR TEST 第10頁/共42頁 3. 移位操作 算術移位 4. 轉(zhuǎn)移 (1) 無條件轉(zhuǎn)移 JMP (2) 條件轉(zhuǎn)移 結(jié)果為零轉(zhuǎn) (Z = 1) JZ 結(jié)果溢出轉(zhuǎn) (O = 1)JO 結(jié)果有進位轉(zhuǎn)(C = 1)JC 跳過一條指令 SKP 循環(huán)移位(帶進位和不帶進位) 如 300 305 306 307 SKP DZ D = 0 則跳 邏輯移位 完成觸發(fā)器 第11頁/共42頁 (3) 調(diào)用和返回 CALL SUB1 . CALL SUB2 . CALL SUB2 RETURN RETURN 主程序 地址 2

9、000 2100 2101 子程序SUB1 2400 2500 2501 2560 2561 2700 主存空間分配程序執(zhí)行流程 子程序SUB2 . 第12頁/共42頁 IN AX, n OUT DX, ALOUT n, AXOUT DX, AX (4) 陷阱(Trap)與陷阱指令 意外事故的中斷 設置供用戶使用的陷阱指令 如 8086 INT TYPE 軟中斷 提供給用戶使用的陷阱指令,完成系統(tǒng)調(diào)用 5. 輸入輸出 一般不提供給用戶直接使用 在出現(xiàn)事故時,由 CPU 自動產(chǎn)生并執(zhí)行(隱指令) IN AL, DXIN AX, DX 入 端口地址 CPU 的寄存器 出 CPU 的寄存器 端口地址

10、 如 如 IN AL, n OUT n, AL 第13頁/共42頁 尋址方式 確定 本條指令 的 操作數(shù)地址 下一條 欲執(zhí)行 指令 的 指令地址 指令尋址 數(shù)據(jù)尋址 尋址方式 第14頁/共42頁 一、指令尋址 順序( PC ) + 1 PC 跳躍由轉(zhuǎn)移指令指出 LDA 1000 ADD 1001 DEC 1200 JMP 7 LDA 2000 SUB 2001 INC STA 2500 LDA 1100 . 0 1 2 3 4 5 6 7 8 9 PC +1 指令地址尋址方式指令地址指令 順序?qū)ぶ? 順序?qū)ぶ? 順序?qū)ぶ? 跳躍尋址7 順序?qū)ぶ? 第15頁/共42頁 二、數(shù)據(jù)尋址 形式地址 指

11、令字中的地址 有效地址 操作數(shù)的真實地址 約定 指令字長 = 存儲字長 = 機器字長 1. 立即尋址 指令執(zhí)行階段不訪存 A 的位數(shù)限制了立即數(shù)的范圍 形式地址 A操作碼尋址特征 OP # A 立即尋址特征 立即數(shù) 可正可負 補碼 形式地址 A 就是操作數(shù) 第16頁/共42頁 2. 直接尋址 EA = A 操作數(shù) 主存 尋址特征 LDAA A ACC 執(zhí)行階段訪問一次存儲器 A 的位數(shù)決定了該指令操作數(shù)的尋址范圍 操作數(shù)的地址不易修改(必須修改A) 有效地址由形式地址直接給出 第17頁/共42頁 3. 隱含尋址 操作數(shù)地址隱含在操作碼中 ADDA 操作數(shù) 主存 尋址特征 A ACC 暫存 AL

12、U 另一個操作數(shù) 隱含在 ACC 中 如 8086 MUL 指令被乘數(shù)隱含在 AX(16位)或 AL(8位)中 MOVS 指令源操作數(shù)的地址隱含在 SI 中 目的操作數(shù)的地址隱含在 DI 中 指令字中少了一個地址字段,可縮短指令字長 第18頁/共42頁 4. 間接尋址 EA =(A) 有效地址由形式地址間接提供 OPA 尋址特征 AEA 主存 EA A1 EA A1 主存 EA 1 0 執(zhí)行指令階段 2 次訪存 可擴大尋址范圍 便于編制程序 OPA 尋址特征 A 一次間址多次間址 操作數(shù) 操作數(shù) 多次訪存 第19頁/共42頁 子程序主程序 80 81 201 202 調(diào)用子程 序 調(diào)用子程 序

13、 間接尋址編程舉例 (A) = 81 (A) = 202 間址特征 JMP A 第20頁/共42頁 5. 寄存器尋址 EA = Ri 執(zhí)行階段不訪存,只訪問寄存器,執(zhí)行速度快 OPRi 尋址特征 寄存器個數(shù)有限,可縮短指令字長 操作數(shù) R0 Ri Rn 寄存器 有效地址即為寄存器編號 第21頁/共42頁 EA = ( Ri ) 6. 寄存器間接尋址 有效地址在寄存器中, 操作數(shù)在存儲器中,執(zhí)行階段訪存 操作數(shù) 主存 OPRi 尋址特征 便于編制循環(huán)程序 地址 R0 Ri Rn 寄存器 有效地址在寄存器 中 第22頁/共42頁 7. 基址尋址 (1) 采用專用寄存器作基址寄存器 EA = ( B

14、R ) + ABR 為基址寄存器 OPA 操作數(shù) 主存 尋址特征 ALUBR 可擴大尋址范圍 有利于多道程序 BR 內(nèi)容由操作系統(tǒng)或管理程序確定 在程序的執(zhí)行過程中 BR 內(nèi)容不變,形式地址 A 可變 第23頁/共42頁 (2) 采用通用寄存器作基址寄存器 操作數(shù) 主存 尋址特征 ALU OPR0AR0 作基址寄存器 由用戶指定哪個通用寄存器作為基址寄存器 通用寄存器 R0 Rn-1 R1 基址寄存器的內(nèi)容由操作系統(tǒng)確定 在程序的執(zhí)行過程中 R0 內(nèi)容不變,形式地址 A 可變 第24頁/共42頁 8. 變址尋址 EA = ( IX ) +A OPA 操作數(shù) 主存 尋址特征 ALUIX 可擴大尋

15、址范圍 便于處理數(shù)組問題 IX 的內(nèi)容由用戶給定 IX 為變址寄存器(專用) 在程序的執(zhí)行過程中 IX 內(nèi)容可變,形式地址 A 不變 通用寄存器也可以作為變址寄存器 第25頁/共42頁 例 設數(shù)據(jù)塊首地址為 D,求 N 個數(shù)的平均值 直接尋址變址尋址 LDA D ADD D + 1 ADD D + 2 ADD D + ( N -1 ) DIV # N STA ANS LDA # 0 LDX # 0 INX CPX # N BNE M DIV # N STA ANS 共 N + 2 條指令共 8 條指令 ADD X, DM X 為變址寄存器 D 為形式地址 (X) 和 #N 比較 (X) +1

16、X 結(jié)果不為零則轉(zhuǎn) 第26頁/共42頁 9. 相對尋址 EA = ( PC ) + A A 是相對于當前指令的位移量(可正可負,補碼) A 的位數(shù)決定操作數(shù)的尋址范圍 程序浮動 廣泛用于轉(zhuǎn)移指令 操作數(shù) 尋址特征 ALU OPA 相對距離 A 1000PC 主存 1000AOP 第27頁/共42頁 (1) 相對尋址舉例 M 隨程序所在存儲空間的位置不同而不同 EA = ( M+3 ) 3 = M 3 * LDA # 0 LDX # 0 ADD X, D INX CPX # N BNE M DIV # N STA ANS M M+1 M+2 M+3 而指令 BNE 與 指令 ADD X, D 相

17、對位移量不變 3 * 指令 BNE操作數(shù)的有效地址為 3 * 相對尋址特征 * 第28頁/共42頁 (2) 按字節(jié)尋址的相對尋址舉例 OP 位移量 2000 H 2008 H 8 JMP * + 8 OP 06 H 2000 H 2008 H 8 設 當前指令地址 PC = 2000H 轉(zhuǎn)移后的目的地址為 2008H 因為 取出 JMP * + 8 后 PC = 2002H 二字節(jié)指令 故 JMP * + 8 指令 的第二字節(jié)為 2008H - 2002H = 06H 第29頁/共42頁 10. 堆棧尋址 (1) 堆棧的特點 堆棧 硬堆棧 軟堆棧 多個寄存器 指定的存儲空間 先進后出(一個入出

18、口) 棧頂?shù)刂?由 SP 指出 1 1FFFH +1 2000 H 進棧 (SP) 1 SP出棧 (SP)+ 1 SP 棧頂 棧底 2000 H SP 2000 H 1FFF H SP 1FFFH 棧頂 棧底 進棧出棧 1FFF H 棧頂 2000 H 棧頂 第30頁/共42頁 (2) 堆棧尋址舉例 15 200H ACC SP X 棧頂 200H 棧底 主存 15 1FFH ACC SP 15 棧頂 200H 棧底 主存 X 1FFH PUSH A 前PUSH A 后 POP A 前POP A 后 Y 1FFH ACC SP X 棧頂 200H 棧底 主存 151FFH 15 200H AC

19、C SP棧頂 200H 棧底 主存 X 15 第31頁/共42頁 (3) SP 的修改與主存編址方法有關 按 字 編址 進棧 出棧 (SP) 1 SP (SP)+ 1 SP 按 字節(jié) 編址 存儲字長 16 位進棧 出棧 (SP) 2 SP (SP)+ 2 SP 存儲字長 32 位進棧 出棧 (SP) 4 SP (SP)+ 4 SP 第32頁/共42頁 一、設計指令格式時應考慮的各種因素 1. 指令系統(tǒng)的 兼容性(向上兼容) 2. 其他因素 操作類型 數(shù)據(jù)類型 指令格式 包括指令個數(shù)及操作的難易程度 指令字長是否固定 尋址方式 寄存器個數(shù) 地址碼位數(shù)、地址個數(shù)、尋址方式類型 操作碼位數(shù)、是否采用

20、擴展操作碼技術, 確定哪些數(shù)據(jù)類型可參與操作 指令尋址、操作數(shù)尋址 寄存器的多少直接影響指令的執(zhí)行時間 第33頁/共42頁 二、指令格式舉例 1. PDP 8指令字長固定 12 位 操作碼 間 頁 地址碼 訪存類指令 0235411 寄存器類指令 1 1 1 輔助操作碼 02 311 I/O 類指令 1 1 0 設備 操作碼 02 31198 采用擴展操作碼技術 第34頁/共42頁 2. PDP 11 源地址OP 4 6 6 16 16 目的地址存儲器地址1存儲器地址2 OP 10 6 16 目的地址存儲器地址 目的地址 4 6 6 源地址OP 10 6 目的地址OP-CODE 16 OP-C

21、ODE 指令字長有 16 位、32 位、48 位三種 零地址 (16 位) 一地址 (16 位) 二地址 R R (16 位) 二地址 R M (32 位) 二地址 M M (48 位) 擴展操作碼技術 第35頁/共42頁 3. IBM 360 OPR1R2 RR 格式 8 4 4 OPR1XBD RX 格式 8 4 4 4 12 OPR1R3BD RS 格式 8 4 4 4 12 OPBDI SI 格式 8 8 4 12 二地址 R R 基址加變址尋址 二地址 R M 三地址 R M 基址尋址 二地址 M M 基址尋址 基址尋址 立即數(shù) M OPB1D1LB2D2 SS 格式 8841 2 41 2 第36頁/共42頁 4. Intel 8086 (1) 指令字長 (2) 地址格式 1 6 個字節(jié) MOV WORD PTR0204, 0138H 6 字節(jié) INC AX 1 字節(jié) 一地址 NOP 1 字節(jié) CALL 段內(nèi)調(diào)用 3 字節(jié) 零地址 5 字節(jié)段間調(diào)用 寄存器 寄存器 寄存器 立即數(shù) 寄存器 存儲器 ADD AX,BX 2 字節(jié) ADD AX,3048H 4 字節(jié) ADD AX,3048H 3 字節(jié) 二地址

溫馨提示

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

評論

0/150

提交評論