一次性掌握計算機中常見的六類指令

一、數據傳送類指令

數據傳送類指令主要分爲 “源地址” 和 “目的地址” 兩個部分。

  1. 寄存器-寄存器 MOVMOV AX,BXAX, BX
  2. 寄存器-存儲器 MOVMOV [20],AX[20], AXSTORESTORE 指令)
  3. 存儲器-寄存器 MOVMOV AX,[20]AX, [20]LOADLOAD指令)
  4. 存儲器-存儲器 MOVMOV [20],[30][20], [30]
  5. 堆棧操作: PUSHPUSH AXAX(入棧),POPPOP AXAX(出棧)
  6. 清零、置1: MOVMOV AX,0AX,0(清零),MOVMOV AX,1AX,1(置1)

二、運算類指令

算術運算

加、減、乘、除、求補、浮點、十進制運算

  • ADDADD AX,20AX, 20
  • DIVDIV AX,3AX, 3

邏輯運算

與、或、非、異或

  • ANDAND AX,30AX, 30
  • XORXOR AX,30AX, 30

其他運算

位測試、位清楚、位求反


三、移位指令

一般來說,有 8 種移位指令:
算術左移、算術右移、邏輯左移、邏輯右移、小循環左移、小循環右移、大循環左移、大循環右移。


四、轉移指令

無條件轉移指令

直接跳轉到某處,不取決於任何條件。類似 C 中的 goto 語句,例如 JMP LOOP。

條件轉移指令

根據機器當前的程序狀態字中的某位來決定是否執行轉移,例如 JZJZ LOOPLOOP

JZJZ LOOPLOOP: 如果當前指令運算結果爲0,則會跳轉到 LOOP 標號處。

調用與返回指令

類比 C 程序中的函數調用,以及函數返回。例如 CALLPRO1CALL PRO1RETRET

子程序調用特點:

  1. 子程序可以在多處被調用
  2. 子程序調用可以嵌套
  3. CALLCALLRETRET 指令配對使用
  4. 要妥善保存子程序的返回地址

陷阱(TRAP)指令

  • 一旦機器運行出現意外故障(未定義指令、除0、設備故障、電壓不穩),計算機發出陷阱信號(陷阱隱指令),暫停當前指令的執行,轉入故障處理程序。陷阱指令不提供給用戶使用,由機器自動執行。
  • 也有某些機器提供陷阱指令,例如 IBM-PC 提供的 INT xx 軟中斷指令,用來完成系統調用。

五、輸入輸出指令

對 I/O 單獨編址對計算機,設置有專門的輸入輸出指令,用來操縱外設,如下所示。

  • ININ AX,[20]AX, [20](外設端口 \rightarrow CPU 的寄存器)
  • OUTOUT DX,AXDX, AX(CPU 的寄存器 \rightarrow 外設端口)

六、其他指令

  1. 停機指令、空操作指令、開中斷指令、關中斷指令、置條件碼指令
  2. 字符串傳送、字符串比較、字符串查詢
  3. 特權指令(操作系統用)
  4. 向量指令
  5. 多處理機指令
參考資料: MOOC
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章