80x86 尋址方式與指令系統簡介

 

80x86 尋址方式與指令系統簡介

【課前思考】
  (1) 什麼是指令和指令系統?指令在什麼時候由哪部分來執行?
  (2) 8086彙編語言指令由幾部分組成?各部分的作用是什麼?
  (3) 8086彙編語言指令可以有幾個操作數?指令中指定的操作數可能存放在哪裏?
  (4) 什麼是尋址方式?8086彙編語言提供了幾種尋址方式?
  (5) 各種尋址方式所確定的有效地址是什麼?
  (6) 在存儲器尋址方式中,爲什麼有時候要使用段跨越前綴?
  (7) 8086機器語言指令由哪幾個字節組成?爲什麼說彙編語言指令與機器指令是一一對應的?
  (8) 8086的指令系統按功能可分爲幾組?
  (9) 每條指令的功能、助記符、所支持的尋址方式、對標誌位的影響、需要預置的參數以及隱含使用的或限定使用的寄存器等。 

  學習目標】
  熟練掌握8086各種尋址方式;熟悉8086常用指令的功能

  【學習指南
  學習尋址方式時,要注意各種尋址方式所指定的操作數或操作數地址是什麼;各種尋址方式形成操作數地址時,段寄存器和基址、變址寄存器的組合;各種尋址方式限定使用的寄存器。
學習指令系統時,要注意每條指令的功能,所支持的尋址方式、對標誌位的影響、需要預置的參數以及隱含使用的或限定使用的寄存器等。

  【難重點
  重點理解8086常用指令的功能,熟悉8086的各種尋址方式,這是進行彙編語言程序設計的基礎。 

  【知識點
  3.1 尋址方式
   3.1.1 與數據有關的尋址方式
   3.1.1.1 立即尋址方式
   3.1.1.2 寄存器尋址方式
   3.1.1.3 直接尋址方式
   3.1.1.4 寄存器間接方式
   3.1.1.5 寄存器相對尋址方式
   3.1.1.6 基址變址尋址方式
   3.1.1.7 相對基址變址尋址方式
   3.1.2 與轉移地址有關的尋址方式
   3.1.2.1 段內直接尋址
   3.1.2.2 段內間接尋址
   3.1.2.3 段間直接尋址
   3.1.2.4 段間間接尋址

  3.3 指令系統
   3.3.1 數據傳送指令
   3.3.1.1 通用數據傳送指令(MOV、PUSH、POP、XCHG)
   3.3.1.2 累加器專用傳送指令(IN、OUT、XLAT)
   3.3.1.3 地址傳送指令(LEA、LDS、LES)
   3.3.1.4 標誌寄存器傳送指令(LAHF、SAHF、PUSHF、POPF)
   3.3.2 算術指令
   3.3.2.1 加法指令(ADD、ADC、INC)
   3.3.2.2 減法指令(SUB、SBB、DEC、NEG、CMP)
   3.3.2.3 乘法指令(MUL、IMUL)
   3.3.2.4 除法指令(DIV、IDIV)
   3.3.2.5 符號擴展指令(CBW、CWD)
   3.3.2.6十進制調整指令(DAA、DAS、AAA、AAS、AAM、AAD)
   3.3.3 邏輯指令
   3.3.3.1 邏輯運算指令(AND、OR、NOT、XOR、TEST)
   3.3.3.2 移位指令(SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR)
   3.3.4 串處理指令 
   3.3.4.1 設置方向標誌指令(CLD、STD)
   3.3.4.2 串處理指令(MOVSB/MOVSW、STOSB/STOSW、LODSB/LODSW、CMPSB/CMPSW、SCASB/SCASW)
   3.3.4.3 串重複前綴(REP、REPE/REPZ、REPNE/REPNZ)
   3.3.5 控制轉移指令
   3.3.5.1 無條件轉移指令(JMP)
   3.3.5.2條件轉移指令(JZ/JE、JNZ/JNE、JS、JNS、JO、JNO、JP、JNP、JB、JNB、JBE、JNBE、JL、JNL、JLE、JNLE、JCXZ)
   3.3.5.3 循環指令(LOOP、LOOPZ/LOOPE、LOOPNZ、LOOPNE)
   3.3.5.4 子程序調用和返回指令(CALL、RET)
   3.3.5.5 中斷與中斷返回指令(INT、INTO、IRET)
   3.3.6 處理器控制指令 
   3.3.6.1 標誌位處理指令(CLC、CMC、STC、CLD、STD、CLI、STI)
   3.3.6.2 處理機控制指令(NOP、HLT、WAIT、ESC、LOCK)

 我們已經知道計算機是通過執行指令序列來解決問題的,因而每種計算機都有一組指令集供給用戶使用,這組指令集就稱爲計算機的指令系統。本章說明8086的指令系統以及在指令中爲取得操作數地址所使用的尋址方式(Addressing mode)。 計算機中的指令由操作碼字段和操作數字段兩部分組成。操作碼字段指示計算機所要執行的操作,比如加、減運算;操作數字段指示指令執行過程中所需要的操作數,它既可以是操作數本身,也可以是操作數地址或地址的一部分,還可以是指向操作數地址的指針或其他有關操作數的信息。 
操作數字段可以有一個、二個或三個,通常稱爲一地址、二地址或三地址指令。8086的尋址方式包括與數據有關的尋址方式和與轉移地址有關的尋址方式,CPU根據這些尋址方式以不同的方法取得操作數。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章