当前位置:
文档之家› 微型计算机原理-第4章(4)微机原理与接口技术(第三版)(王忠民)
微型计算机原理-第4章(4)微机原理与接口技术(第三版)(王忠民)
第四章 80x86 指令系统—累加器专用指令
⑴ 输入指令 ①直接寻址的输入指令 指令格式及操作:
IN acc, port ;(acc) ←(port)
②间接寻址的输入指令
指令格式及操作:
IN acc, DX
;(acc) ←((DX))
第四章 80x86 指令系统—累加器专用指令
⑵ 输出指令
①直接寻址的输出指令 指令格式及操作:
第四章 80x86 指令系统—通用数据传送指令
说明: *堆栈按后进先出原则组织。 *堆栈操作以字为单位进行。 *目的操作数dst不可以是CS。 *指令中的操作数不能是立即数。
第四章 80x86 指令系统—通用数据传送指令
例:已知(AX)=1234H,(BX)=5678H,分析下面程序段的执 行过程。
REG <=> REG/MEM • 段寄存器的内容不能参加交换
例: XCHG BX,[BP+SI]
第四章 80x86 指令系统—累加器专用指令
(二) 累加器专用指令 这类指令中的一个操作数必须是累加器。累加器操作数可以 是8位的,也可以是16位的。
第四章 80x86 指令系统—累加器专用指令 1.输入/输出指令
DI 1234H DS 4000H
DM
34H 2130H 12H 00H 2132H 40H
第四章 80x86 指令系统—地址传送指令
3. 地址指针装入ES指令 指令格式:
LES reg16, mem32 此指令的功能是将源操作数所对应的双字长的内存单元中的高 字内容(一般为16位段基址)送入ES,低字内容(一般为偏移地址) 送入指令所指定的寄存器中。例如:
LES DI, [2130H]
DI 1234H ES 4000H
DM
34H 2130H 12H 00H 2132H 40H
第四章 80x86 指令系统—标志传送指令 (四) 标志传送指令 1.取标志指令 指令格式: LAHF
2.置标志指令 指令格式: SAHF
FLAG
AH
OF DF IF TF SF ZF AF PF CF LAHF和SAHF指令操作示意图
第四章 80x86 指令系统—标志传送指令
3.标志压入堆栈指令
指令格式及操作:
PUSHF
;(SP) ←(SP)-2,
((SP)+1;(SP)) ←(FLAG)
4.标志弹出堆栈指令
指令格式及操作:
POPF
;(FLAG) ←((SP)+1;(SP)),
(SP) ←(SP)+2
Thank you!
每一种知识都需要努力, 都需要付出,感谢支持!
第四章 80x86 指令系统—通用数据传送指令
2.堆栈操作指令 堆栈操作指令是用来完成压入和弹出堆栈操作的。 ⑴ 压入堆栈指令 指令格式及操作:
PUSH src ;(SP) ←(SP)-2, ((SP)+1:(SP)) ←(src)
⑵ 弹出堆栈指令 指令格式及操作:
POP dst ; (dst) ←((SP)+1:(SP)), (SP) ←(SP)+2
1. 最基本的传送指令MOV
指令格式及操作: MOV dst,src ;(dst)←(src) dst 是目的操作数 Src 是源操作数
第四章 80x86 指令系统—通用数据传送指令
说明: *DST和SRC的组合关系是:
① REG/MEM <= data ② REG/MEM <=> REG ③ REG/MEM <=> SEG *CS不能做目的操作数; *不能MEM<=>MEM,不能SEG<=>SEG, 不能SEG<=data *MOV不改变源操作数,不影响标志位。
1 PUSH AX
2 PUSH AX
PUSH BX
PUSH BX
POP AX
POP BX
POP BX
POP AX
第四章 80x86 指令系统—通用数据传送指令 3.交换指令XCHG (Exchange)
格式:XCHG OPR1,OPR2 执行操作:OPR1 <=> OPR2
说明: • 两个操作数中必有一个是寄存器
⑴ 数据传送类指令 ⑵ 算术运算类指令 ⑶ 逻辑运算与移位类指令 ⑷ 字符串指令 ⑸ 控制转移类指令 ⑹ 处理器控制类指令。
第四章 80x86 指令系统—指令系统概述
学习指令的注意事项
指令的功能——该指令能够实现何种操作。通常指令助记符就 是指令功能的英文单词或其缩写形式
指令支持的寻址方式——该指令中的操作数可以采用何种寻址 方式
知识就是力量,感谢支持!
一一一一谢谢大家!!
XLAT指令是用来将一种字节代码转换成另一种字节代码。常 用该指令进行查表操作。
使用前先建立一个字节表格,表格的首址存入BX,要转换的 代码(即相对于表格首址的位移量)放入AL,然后执行XLAT,在AL 中得到转换以后的代码。
第四章 80x86 指令系统—地址传送指令 (三)地址传送指令
1. 取有效地址指令
第四章 80x86 指令系统—地址传送指令
2. 地址指针装入DS指令 指令格式:
LDS reg16, mem32 此指令的功能是将源操作数所对应的双字长的内存单元中的 高字内容(一般为16位段基址)送入DS,低字内容(一般为偏移地 址)送入指令所指定的寄存器中。例如: LDS DI, [2130H]
指令格式: LEA reg16, mem
此指令的功能是将存放源操作数的16位偏移地址(即有效地 址EA)送到一个16位的通用寄存器中。即源操作数必须是一个存储 器操作数,目的操作数必须是一个寄存器操作数。
第四章 80x86 指令系统—地址传送指令 例如: LEA DX, bety[BX][SI]
注意LEA指令和MOV指令的异同,比较下面两组指令:
微机原理与接口技术
西安邮电大学计算机学院 宁晓菊
第四章 80x86 指令系统(第四讲) 第一章 微型计算机系统导论(第一讲)
本讲主要内容
1 8086指令系统概述 2 数据传送类指令
第四章 80x86 指令系统—指令系统概述
8086/8088CPU指令系统包含有133条基本指令。按其功能可 以分为6类,它们是:
指令对标志的影响——该指令执行后是否对各个标志位有影响 ,以及如何影响
第四章 80x86 指令系统—数据传送类指令
一、 数据传送类指令
数据传送类指令将数据、地址或立即数传送到寄存器或存 储器单元中。它又可分为通用数据传送指令、累加器专用传送指 令、地址传送指令和标志传送指令等四组。
第四章 80x86 指令系统—通用数据传送指令 (一)通用数据传送指令
第四章 80x86 指令系统—地址传送指令
不同: LEA BX,buffer ;将存储器buffer的偏 移地址送到BX MOV BX,buffer ;将存储器buffer的内 容传送到BX
相同: LEA BX,buffer MOV BX,OFFSET buffer
以上两条指令都是将存储器buffer的偏移地址送到BX。其中 OFFSET buffer 表示存储器偏移地址。
OUT portห้องสมุดไป่ตู้ acc ; (port) ← (acc)
②间接寻址的输出指令 指令格式及操作:
OUT DX, acc ; ((DX)) ← (acc)
第四章 80x86 指令系统—累加器专用指令
2.字节转换指令
指令格式及操作: XLAT src_table ;(AL) ←((BX)+(AL))