当前位置:
文档之家› 微机原理与接口技术实用教程说课讲解
微机原理与接口技术实用教程说课讲解
(1)8086中堆栈段地址在SS寄存器中,堆栈当前偏移地 址在SP寄存器中,SP称为堆栈指针。SP的初值代表了堆 栈区的大小,若 SP=0100H,有右图所示:
( 2 ) 堆栈操作方式: 以字为单位进行操作,高字节在高地址, 低字节在低地址。
2020/5/6
>>微机原理<<
17
(3)堆栈操作指令 a、压入指令: PUSH 例:PUSH AX
>>微机原理<<
29
注意:
(1)乘法运算后,标志位的使用: CF = OF = 1,说明结果为一个字或双字。 CF = OF = 0,说明结果为一个字节或字,
无符号数时,高字(高字节)全为0; 符号数时,高字(高字节)仅是低字(低字节) 的符号扩展 (2)除法结果的标志位无意义。 (3)除数为0或商溢出时,除法结果无意义,
7
③ 直接寻址:操作数放在存储器的数据段(其段地址由
DS中的内容决定)中,其有效地址(偏移地址 直接用偏(位)移量表示在指令中,占2个字节。偏 移量常用disp表示,是有效地址的一部分或全部,
可以8位也可以16位。 例:MOV AX,DS:[0100H]
2020/5/6
>>微机原理<<
8
②寄存器间接寻址:操作数在存储单元中,其有效 由BX﹑SI或DI中的内容给出表示为: (BX)
2020/5/6
>>微机原理<<
20
2、输入输出指令(I/O指令)
IN A,port OUT port,A
;数据从 port 端口输入到AL或AX ;数据从AL或AX输出到 port 端口
1) A是AL(8位输入输出)或AX(16位输入输出) 2)port 是外设的端口地址,可以是8位立即数表示的直接
地址,也可以用DX寄存器的内容作为端口地址。 例: IN AL,3FH
MOV DX,3FH OUT DX,AX
2020/5/6
>>微机原理<<
21
3、地址目标传送指令
LEA
SAHF
PUSHF
POPF
标志送AH指令
功能是:将标 志寄存器中的 SF、ZF、AF 、PF传送至AH 的指定位,空 位没有定义
3.2.1 数据传送指令
a,除SAHF外不影响标志位,SAHF是将AH 内容送到 标志寄存器的低8位;
b,不能用CS作为目的操作数; c,源操作数和目的操作数不能同时在存储器中,
即:不能在一条指令中实现数据在存储器中的传送。
2020/5/6
>>微机原理<<
14
1、MOV指令:数据传送(复制)
Ⅰ.数据传送,由 源---》目的 例:MOV AX,BX ;寄存器寻址
BCD 数
2020/5/6
>>微机原理<<
35
分离BCD数的乘法调整指令,两个BCD数相乘, 结果在AL中,除以10后商在AH中,余数在AL中。 表示为: AL/0AHAH (商)
AL MOD 0AHAL (余)
INC DEC
DST DST
; DST+1 ——》DST ; DST-1 ——》DST
例: INC AX ;AX+1 ——》AX
2020/5/6
>>微机原理<<
28
4、乘法与除法指令 只有一个操作数SRC,且不可以是立即数。
IMUL MUL IDIV
DIV
SRC SRC SRC
SRC
;符号数的乘法
2020/5/6
>>微机原理<&RC ;DST-SRC,结果不保留
;只影响标志位 例: CMP AX,BX
a、作为无符号数时,比较后的大小由CF和ZF决定:
ZF=1
:则 AX = BX
ZF=0,CF=0 :则 AX > BX
ZF=0,CF=1 :则 AX < BX
第3章 80X86的寻址方式 及指令系统
本章要点
80X86系统的各种寻址方式 80X86的指令系统构成 及各类指令的功能和用法
2020/5/6
>>微机原理<<
2
定义:
程序:让计算机完成某种操作的命令,所有指令的集合 称为指令系统。
指令用助记符表示,汇编语言程序经过编译连接后,指令 助记符转换为二进制代码,即指令代码,或称为机器码, 可以由CPU执行。指令代码需要事先存放在微机系统的 内部存储器中由CS寄存器中的内容所指定的代码段中。
SBB DST,SRC ; DST《——DST- SRC-CF
NEG DST
; DST《——0-DST,即取补
2020/5/6
>>微机原理<<
24
ADD AX,[SI]
; 完成16位数据的加法运算 ;SRC在存储器中 ;DST是CPU中的AX寄存器
例:
SBB CX,DATA1 ; 完成16位数据的减法运算 ;SRC在存储器中 ;DST是CPU中的CX寄存器
2020/5/6
>>微机原理<<
10
⑥ 基址变址寻址:操作数在存储器中,偏移地址由基址寄
存器和变址寄存器中的内容相加确定。
例:MOV AX,[BX][DI]
2020/5/6
>>微机原理<<
11
⑦ 基址变址相对寻址:寄存器相对寻址与基址变址寻址
方式的结合。
disp与寄存器均在指令中给出。 例: MOV AX,5[BP][SI]
2020/5/6
>>微机原理<<
23
3.2.2 算术运算类指令
1.加法与减法指令 a,影响标志位 b,只能有一个操作数在存储器中 c,目的操作数不能采用立即寻址方法
ADD DST,SRC ; DST《——DST+ SRC
ADC DST,SRC ; DST《——DST+ SRC+CF
SUB DST,SRC ; DST《——DST- SRC
如果 AX=1234H,则该指令执行后的结果: SP=00FEH, (00FFH)=12H,(00FEH)=34H
b、弹出指令: POP 例: POP BX
2020/5/6
>>微机原理<<
18
Ⅲ. 字节或字交换指令:
寄存器之间或寄存器与存储器之间内容交换。
XCHG OPR1,OPR2 ;(OPR1) 例:xchg ax, cx
;字节运算时,AL×SRC —》AX
;字运算时, AX×SRC —》DX与AX
;无符号数的乘法,其它同上
;符号数除法
;字节运算时:AX÷SRC的商—》AL
;
AX÷SRC的余数—》AH
;字运算时: DX:AX÷SRC的商—》AX
;
DX:AX÷SRC的余数—》DX
;无符号数除法,其它同上
2020/5/6
>>微机原理<<
15
注意事项!
立即数、代码段寄存器CS只能作源操作数。 IP寄存器不能作源操作数或目的操作数。 MOV指令不能在两个存储单元之间直接传 送数据,也不能在两个段寄存器之间直接 传送数据。 两个操作数的类型属性要一致。
2020/5/6
>>微机原理<<
16
Ⅱ. 堆栈操作指令:
堆栈:是以后进先出规则保存信息的一种存储机构。
AH送标志位 寄存器低字节
指令。
影响标志位, 但对OF、DF 、IF无影响
标志入栈指令 标志出栈指令 修改堆栈指针 修改堆栈指针 不影响标志位 影响标志位
2020/5/6
>>微机原理<<
22
4、标志传送指令
标志送AH 指令LAHF
AH送标志寄 存器低字节 指令SAHF
标志入栈指 令PUSHF
标志出栈指 令POPF
影响标志位: CF=1,OF=1,ZF=0,SF=1,PF=0,AF=0
作为无符号数时,CF=1, 则 AX < BX 003AH小于8003H
作为带符号数时,OF 异或 SF = 0,则 AX≥BX 正数大于负数
2020/5/6
>>微机原理<<
27
3. 增量减量指令
影响除CF以外的所有状态标志,只有一个操作数DST, 可以是8位也可以是16位操作数。常用来修改计数器的 计数指针。
若 AL&0FH>9 或 AF=1, 则 AL+6AL,1 AF 若 AL&0F0H>90H 或 CF=1, 则 AL+60HAL,1CF
2020/5/6
>>微机原理<<
32
(1) 针 对 组 合
BCD 数
② DAS
组合BCD数的减法调整指令,半字节1位BCD 相减,有借位,要减6调整。表示为: 若 AL&0FH>9 或 AF=1,则 AL-6AL,
EA= (SI) (DI)
寄存器BX﹑SI或DI在指令中给出。 例: MOV AX,[SI]
2020/5/6
>>微机原理<<
9
⑤ 寄存器相对寻址:操作数在存储器中,其有效地址是
位移量(可8位或者16位)与变址或基址寄存器之和, Disp与寄存器在指令中给出。
例: MOV AX,5[BX] 也可写成 MOV AX,[BX+5]
(OPR2)
2020/5/6
>>微机原理<<
19
Ⅳ. 字节转换指令:常用于查表。