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