文章目录
本节内容仅仅作为对于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