本節內容僅僅作爲對於8086彙編指令的補充
指令系統
CISC和RISC指令系統
CISC
- 指令的功能強,種類多,常用指令由硬件實現
- 指令系統複雜,難以使用
RISC
- 指令功能較弱,種類少,格式簡單
- 多數指令在一個計算機週期內完成
- 對存儲器的結構和存取速度要求較高
間址寄存器
間址寄存器分爲基址寄存器和變址寄存器,基址寄存器:BX BP
變址寄存器:SI、DI
基址寄存器爲BX,默認在數據段
基址寄存器爲BP,默認在堆棧段
擴展指令
-
XLAT 用BX的內容代表表格首地址,AL內容爲表內位移量,BX+AL得到要查找元素的偏移地址
將BX+AL所指單元的內容送AL -
CBW 將AL擴展到AX
若最高位=1,則執行後AH=FFH
若最高位=0,則執行後AH=00H
找出最大的數放入MAX
1 3 5同時爲1時進行傳輸
將1000H開始存放的4個壓縮BCD碼轉換爲ASCII碼存放在3000H開始的單元中去。
串傳送指令實現200個字節數據的傳送
條件轉移指令
統計內存數據段中以TABLE爲首地址的100個8位符號數中正數、負數和零元數的個數。
START: XOR AL,AL
MOV PLUS,AL
MOV MINUS,AL
MOV ZERO,AL
LEA SI,TABLE
MOV CL,100
CLD
CHECK:LODSB
OR AL,AL
JS X1
JZ,X2
INC PLUS
JMP NEXT
X1: INC MINUS
JMP NEXT
X2: INC ZERO
NEXT: DEC CL
JNZ CHECK
HLT
] 對於三個8位無符號數86H、34H和21H,編寫S=86H×34H-21H的程序。
[例4—12] 內存自TABLE開始的連續16個單元中存放着0~15的平方值(稱平方表),查表求DATA中任意數X(0≤X≤15)的平方值,並將結果放在RESULT中.
DSEG SEGMENT
TABLE DB 0,1,4,9,16,25,36, 49,64,81,100,121,
144,169,196,225 ;定義平方表
DATA DB ?
RESULT DB ? ;定義結果存放單元
DSEG ENDS
SSEG SEGMENT STACK ‘STACK’
STA DW 100 DUP(?) ;定義堆棧空間
TOP EQU LENGTH STA
SSEG ENDS