3.3 80X86指令系統
其指令系統可以是以下的6組:
- 數據傳送指令
- 算術指令
- 邏輯指令
- 串處理指令
- 控制轉移指令
- 處理機控制指令
數據傳送指令
傳送指令MOV
- 其目的操作數不能是立即碼
- 其目的操作時不能是代碼段
- 其目的操作數和源操作數不能都是段地址
- IP不能作爲源操作數,也不能作爲目的操作數
- 立即數不能直接傳送給段寄存器
- 兩個操作數必須有一個是寄存器,除了立即尋址以外
- MOV BP OFFSET TABLE 是直接將table的偏移地址傳送給 BP
交換指令 ECHG
- ECHG OPERA1, OPERA2 兩個操作數不能同時是段寄存器,也不能同時是存儲器,必須有一個是寄存器
- 操作數不能是立即數
地址傳送指令
- LEA 簡單的理解,和MOV OFFSET TABLE 有點類似
- LDS 將偏移地址賦給目的操作數,段地址賦給DS
- LES 將偏移地址賦給目的操作數,段地址賦給ES
棧操作指令
- 堆棧的數據必須是字,針對於DS
- PUSH SRC 源操作數不能使立即數
- POP DET 目的操作數,不能POP代碼段或者是立即數
地址傳送指令
- LAHF 傳送標誌位的最低7位到AH
- SAHF 把AH傳送給標誌位的最低7位,0,2,4,6,7(CF, PF, AF, ZF, SF)
- PUSHF 把標誌寄存器的內容壓入到堆棧中
- POPF 把堆棧中的內容放入到標誌寄存器中