172.處理機控制與雜項指令

1.處理機控制與雜項操做指令

 標誌處理指令
CLC、 STC、 CMC、
CLD、STD、
CLI、STI
 其餘處理機控制與雜項操做指令
NOP、HLT、WAIT、ESC、LOCKpost

 

2.標誌處理指令

CLC CF ← 0
CMC CF ← ¬CF
STC CF ← 1測試

CLD DF ← 0
STD DF ← 1spa

CLI IF ← 0
STI IF ← 1指針

注意: * 隻影響本指令指定的標誌blog

 

3.其餘處理機控制與雜項操做指令


NOP     無操做 (機器碼佔一個字節)
HLT      暫停機 (等待一次外中斷,以後繼續執行程序)
WAIT    等待 (等待外中斷,以後仍繼續等待)
ESC      換碼
LOCK    封鎖 (維持總線的鎖存信號,直到其後的指令執行完)

get

注意: * 不影響條件標誌 it

 

4.80x86 的指令系統

(1) 指令集的32位擴展
* 全部 16 位指令均可擴展到 32 位
    MOV EAX, 1
* 可以使用 32 位的存儲器尋址方式
    MOV EAX, [EDX]擴展

(2) 使用方式的擴展
* IMUL:單操做數指令 → 雙操做數指令 / 三操做數指令
    IMUL REG, SRC
* PUSH:容許使用當即數尋址方式
    PUSH 36H
* 移位指令:移位次數可用 8 位當即數 (1~31)date

(3) 新增指令
MOVSX 帶符號擴展傳送
MOVZX 帶零擴展傳送
PUSHA / PUSHAD 全部寄存器進棧
POPA / POPAD 全部寄存器出棧
LFS / LGS / LSS 指針送寄存器和 FS / GS / SS
PUSHFD 標誌進棧
POPFD 標誌出棧
CWDE 字轉換爲雙字 EAX
CDQ 雙字轉換爲 4 字 EDX EAX
BSWAP 32 位寄存器的字節次序變反
XADD 交換加
CMPXCHG 比較並交換 (486)
CMPXCHG8B 比較並交換 8 字節(Pentium)A程序

BT 位測試
BTS 位測試並置1
BTR 位測試並置0
BTC 位測試並變反

BSF 正向位掃描
BSR 反向位掃描

SHLD 雙精度左移
SHRD 雙精度右移

INSB / INSW / INSD 串輸入
OUTSB / OUTSW / OUTSD 串輸出

條件設置指令
(1) 根據單個條件標誌的值把目的字節置 1
SETZ / SETE SETNZ / SETNE
SETS / SETNS SETO / SETNO
SETP / SETPE SETNP / SETPO
SETC / SETB / SETNAE SETNC / SETNB / SETAE
(2) 比較兩個無符號數,根據比較結果把目的字節置 1
SETB / SETNAE / SETC SETNB / SETAE / SETNC
SETBE / SETNA SETNBE / SETA
(3) 比較兩個帶符號數,根據比較結果把目的字節置 1
SETL / SETNGE SETNL / SETGE
SETLE / SETNG SETNLE / SETG

其餘處理機控制指令
BOUND 界限指令 ENTER 創建堆棧幀
LEAVE 釋放堆棧幀 
特權指令

 

 

 

相關文章
相關標籤/搜索