微机原理-CH3-5-8086CPU串操作类指令

合集下载

微机原理第5章80868088CPU总线操作与时序

微机原理第5章80868088CPU总线操作与时序

读周期
CPU从内存或I/O设备读取数据的过程,包括地 址发送、数据读取和数据返回三个阶段。
写周期
CPU向内存或I/O设备写入数据的过程,包括地址发送、数据写入和数据返回三 个阶段。
03
数据传输过程
读周期
总结词
在读周期中,CPU从内存中读取数据。
详细描述
读周期是CPU从内存中读取数据的过程。在读周期开始时,CPU通过地址总线发送要读取的内存地址,然后通过 数据总线从内存中读取数据。这个过程需要多个时钟周期,具体取决于数据的存储位置和CPU的速度。
然而,随着总线技术的不断发展,也 面临着一些技术挑战。例如,如何提 高总线的传输效率、降低能耗以及优 化系统性能等。为了解决这些问题, 需要不断进行技术创新和改进。
展望
未来,CPU总线技术将继续发挥其在 微机原理中的重要作用。随着技术的 不断进步和应用需求的增加,总线技 术将更加成熟和多样化。同时,随着 人工智能、大数据等新兴技术的发展 ,总线技术也将与这些领域进行更深 入的融合,为解决实际问题提供更多 可能性。
8086/8088 CPU的总线结构
地址总线
用于传输地址信息,确定要访问的内存单元或I/O 端口。
数据总线
用于传输数据信息,实现数据在CPU和内存或I/O 设备之间的传输。
控制总线
用于传输控制信号,控制CPU和内存或I/O设备之 间的操作。
总线操作时序
时钟信号
用于同步总线上的操作,确保数据传输的正确 性。
中断源
指引发中断的事件或异常情况,如输入/输出设备、定时器、故障等。
中断向量
指中断处理程序的入口地址。
中断响应过程
保存程序计数器
当发生中断时,CPU会自动将当前的程序计数器(PC)值保存到堆栈 中,以便在中断处理完毕后能够正确返回到原程序。

微机原理-8086指令系统

微机原理-8086指令系统
17
SHR OR MOV INC INC POP DEC JNZ INT
AL,CL AL,30H [DI],AL DI SI CX CX BBB 20H
;逻辑右移4位 逻辑右移4 ;得高4位ASCII码 1000H 得高4 ASCII码 ;存ASCII码 ASCII码 ;DI加1 DI加 ;SI加1 SI加 3000H ;恢复CX 恢复CX ;(CX)←(CX)-1 (CX)←(CX);(CX)=0? 否转 ;是,结束
8
2。 移位指令
(1)非循环移位指令 8086/8088 CPU有4条非循环移位指令: CPU有 算术左移指令SAL 逻辑左移指令SHL 算术左移指令SAL 逻辑左移指令SHL 算术右移指令SAR 逻辑右移指令SHR 算术右移指令SAR 逻辑右移指令SHR 这4条指令的格式相同,以SAL为例: 条指令的格式相同, SAL为例: SAL mem/reg,count 式中变量count表示移位数,其值或是1 式中变量count表示移位数,其值或是1,或是 CL寄存器包含的数值。 CL寄存器包含的数值。
只需13个 状态时间。 只需13个T状态时间。
15
下面看一个实例来说明逻辑运算指令和移 下面看一个实例来说明逻辑运算指令和移 位指令的使用: 位指令的使用: BCD码 ASCII码 BCD码→ASCII码 设在1000H开始存有四个组合的BCD码12、 设在1000H开始存有四个组合的BCD码12、 34、56、78要求转换为ASCII码存放在3000H 34、56、78要求转换为ASCII码存放在3000H 开始的单元中去。 程序段如下:
OR指令对两个指定的操作数,按位进行 OR指令对两个指定的操作数,按位进行 逻辑” 逻辑”或” 例:OR 例:OR AL,80H ;AL与立即数”或” AL与立即数” OR BX,DI ;BX与DI相”或” BX与DI相 为了将AL中的未组合的BCD码 为了将AL中的未组合的BCD码变成相应 十进制数的ASCII码 十进制数的ASCII码,可用如下指令: OR AL,30H “或”指令对标志位的影响同AND指令. 指令对标志位的影响同AND指令. 思考题:键入的大写字母→小写字母? 思考题:键入的大写字母→小写字母?

计算机微机原理8086指令

计算机微机原理8086指令
8086从功能上分成两大部分: 总线接口单元BIU(Bus Interface Unit) 执行单元EU (Execution Unit)
7
总线接口单元BIU (Bus Interface Unit)
负责8086CPU与存储器和I/O设备 功能: 间的信息传送。
8
执行单元EU (Execution Unit)
14
通用寄存器的名称与符号
① AX (Accumulator) --累加器
② BX (Base) --基址寄存器
③ CX (Count) --计数寄存器 ④ DX (Data) --数据寄存器 ⑤ SI (Source Index)是源变址寄存器
数据寄存器
⑥ DI (Destination Index)是目的变址寄存器
38
物理地址和逻辑地址的转换
由于段地址一般存放在段寄存器,所以物理地 址和逻辑地址的转换关系也可表示为: (段寄存器) (CS) 物理地址= (DS) (SS ) 左移4位 + 偏移地址
(ES)
逻辑地址的形式为 段寄存器:偏移地址
39
段寄存器
8086有4个16位专门存放段地址的段寄存器 CS--(Code Segment)(代码段)指明代码段的起 始地址 SS-- (Stack Segment)(堆栈段)指明堆栈段的起 始地址 DS-- (Data Segment)(数据段)指明数据段的起 始地址 ES-- (Extra Segment)(附加段)指明附加段的起 始地址 每个段寄存器用来确定一个逻辑段的起始地址,每种逻 辑段均有各自的用途
27
数据信息的表达单位

计算机中信息的单位 二进制位Bit:存储一位二进制数:0或1, 记做b 字节Byte:8个二进制位,D7~D0,记做B 字Word:16位,2个字节,D15~D0 双字DWord:32位,4个字节,D31~D0

微机原理-8086CPU介绍

微机原理-8086CPU介绍

DQ
CLK
DO0
STB接8086CPU的
DI1
DO1
ALE引脚,利用
DI2
DO2
ALE的下降沿锁存
DI3
DO3
地址和BHE信号。
DI4
DO4
DI5
DO5
OE为三态门的开启
DI6
DO6
信号。
DI7
DO7
STB
OE
8282内部逻辑图
5.1.2 最小方式下引脚定义和系统总线结构
三、 8282、8286和8284A A0 B0 2.总线收发器8286
第五章 8086CPU总线结构和时序
5.1 8086系统总线结构 5.2 8086系统总线时序
5.1 8086系统总线结构
两级总线:微处理器级总线——CPU的输入输出引脚; 系统级总线——CPU通过微处理器级总线和其它逻辑电 路连接组成主机板系统,形成系统级总线。
总线控制逻辑:微处理器级总线和系统级总线之间的接 口逻辑电路。
TEST
READY
RESET
5.1.1 两种工作方式下的公用引脚
公用控制总线
(1)MN/MX(输入):工 作方式设置引脚。
(2)RD(输出):读控制 输出信号,低电平有效。
(3)NMI(输入):非可 屏蔽中断请求信号,上升沿 有效。
(4)INTR(输入):可屏 蔽中断请求信号,高电平有 效。IF=1,允许;IF=0,屏 蔽。
3片8282锁存20位地址信息和BHE ,2片8286作为16位数据收发器。
VCC
MN/MX
VCC
RD
8284
RES
CLK READY
RESET
WR

微机原理接口技术03_指令系统

微机原理接口技术03_指令系统

3.2.1 数据的寻址方式
基址变址寻址同样适用于数组或表格处理,首地 址存放在基址寄存器中,变址寄存器访问数组中各元
素。因两个寄存器都可以修改,所以它比寄存器相对
寻址方式更灵活。需要注意的是,两个寄存器不能均 为基址寄存器,也不能均为变址寄存器。
3.2.1 数据的寻址方式
7.基址变址相对寻址 (Relative Based Indexed Addressing) 操作数的有效地址为指令中规定的1个基址寄存 器和1个变址寄存器的内容及指令中指定的位移量三 者之和。 位移量[基址寄存器][变址寄存器] 可以表示成多种形式组合。寻址寄存器要放在方括 号中。
3.2.1 数据的寻址方式
4.寄存器间接寻址(Register Indirect Addressing) 操作数的有效地址存放在基址寄存器或变址寄存 器中,而操作数则在存储器中。对16位数进行寄存器 间接寻址时可用的寄存器是基址寄存器BX、BP和变 址寄存器SI、DI。使用BP时默认的段寄存器为SS, 使用其他寄存器默认的段寄存器为DS。 操作数有效地址格式为:[间接寻址的寄存器]。 寻址寄存器放在方括号中。
CPU执行指令时,指令是按顺序存放在存储器 中的,而程序执行顺序是由CS和IP的内容来决定的。 当程序执行到某一转移或调用指令时,需脱离程序 的正常顺序执行,而把它转移到指定的指令地址, 程序转移及调用指令通过改变IP和CS内容,就可改 变程序执行顺序。
3.2.2 程序转移地址寻址方式
根据程序转移地址相对于当前程序地址的关 系,可分为段内、段外;又根据转移地址是否直 接出现在指令中,分为直接、间接,所以有四种 程序转移寻址方式:段内直接寻址、段内间接寻
第3章
指令系统
指令是计算机用以控制各个部件协调

ch3-4 8086指令系统(串操作与控制类指令)

ch3-4 8086指令系统(串操作与控制类指令)

指令n 指令n+1 指令n+3
第三章 8086/8088 指令系统
8086提供了四种控制转移指令:
转移指令 循环控制 过程调用 中断控制
• 除中断指令外,其它转移类指令都不影响状态标志。
第三章 8086/8088 指令系统
注意指令中条件缩写字母的含意分别是: A:Above 高于, B:Below 低于, C:Carry 进位, E:Equal 等于, G:Greater 大于, L:Less 小于, N:Not 无, O:Over 溢出 ,S:Sign 符号, PE:Parity Even 奇偶性偶, PO:Parity Odd 奇偶性奇 a
授课教师:王磊 齐鲁工业大学电气学院 办公室:机电楼C320 E-mail:wanglei@
第三章 8086/8088 指令系统
四、串操作指令
1. 串的概念 串是连续存放在内存中的字节块或字块。 每个串有一个起始地址和长度。待操作的数 据串称为源串,目标地址称为目标串.
第三章 8086/8088 指令系统
2. 串操作指令的特点
(1) 源串在数据段,用SI作地 址指针,允许段重设
(2) 目的串在附加段,用DI作 地址指针 (3)指令自动修改地址指针,修改 方向由DF决定。 DF=0 DF=1 增地址方向; 减地址方向
起始地址
'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H'
00H
串长=8
字 节 块 ( 串 )
ES段
1000H
41 42 43 44 45 46 ’A’ ’B ’ ’C’ ’D ’ ’E’ ’F’

微机原理第3章指令

微机原理第3章指令

第3章指令系统机器指令:能指示计算机完成基本操作的二进制代码指令系统:CPU可执行的机器指令的集合。

为了方便编程,人们又把完成特定操作的机器码用特定的符号表示,这就产生了符号表示的机器指令-------指令助记符。

第3章8086指令系统机器指令由二进制代码组成,一条指令包括操作码和操作数(或地址)两部分,操作码指明该指令进行何种操作,操作数用来说明操作对象。

个别指只有操作码没有操作数。

由于不同的指令所表达的信息不尽相同,因此指令的长度即机器码字节数也有长有短。

8086指令系统的指令是可变长指令(1~6个字节)3.18086CPU寻址方式重点是存储器寻址存放在存储器中的数据称为存储器操作数。

指令中需要确定存储单元的段地址、偏移地址(亦称有效地址EA),以及存储器操作数的类型。

段地址存放在段寄存器中,确定段地址实际上就是确定段寄存器,采用的方法是默认或添加段超越前缀。

生成存储器有效地址有多种方法,这些方法形成了对存储器操作数的多种寻址形式。

确定数据类型的方法是源操作数和目的操作数类型一致原则或附加类型说明。

立即寻址方式中操作数也在存储器中,但立即寻址中的立即数包含在指令中,随程序存放在代码段,CPU在取指令时就获得操作数。

这里所说的存储器操作数是存放在数据段、附加段或堆栈段中,取指令时也不会被立即取到。

段超越前缀变量的定义在第四章详细介绍直接寻址:MOV AX,[2000H];寄存器间接寻址:MOV ES:[DI],AH基址寻址:MOV BYTE PTR[BX+1200H],10变址寻址:MOV DL,[SI+2AH]基址加变址寻址:MOV CL,[BX+SI+5]MOV AX,[BP+DI]MOV CL,[BX+SI+5]的等价形式:MOV CL,5[BX][SI]、MOV CL,5[BX+SI]、MOV CL,[BX][SI+5]MOV CL,[BX+SI-5]等价于MOV CL,[BX+SI+65531] MOV CL,[BX-SI]MOV CL,[SI+DI]错误!MOV[BX+DI],1000H正确吗?3.2.1数据传送类指令传送指令把数据从一个位置传送到另一个位置使用MOV指令应注意1.立即数只能作为源操作数2.无存储器之间直接传送与交换的指令3.没有用立即数对段寄存器直接赋值的指令4.段寄存器之间无传送指令5.两个操作数的类型要一致6.要能确定是字节还是字操作mov ah,al mov bvar,ch mov ax,bx mov ds,ax mov al,[bx]下列MOV指令正确吗?MOV AL,050AHMOV SI,DLMOV[BX+SI],255MOV DS,100HMOV[BX],[SI]MOV[BX+SI],bvarbvar是一个已定义过的字节变量 MOV CS,[SI]将数据段中偏移地址为2000H、2001H、2002H的3个字节的存储单元置数FFH。

微机原理与接口技术-第三章 8086 8088 cpu的指令系统

微机原理与接口技术-第三章 8086 8088 cpu的指令系统

3.4 指令系统
3.4.2 算术运算指令 5.十进制调整指令 (2)减法的非压缩BCD码调整指令AAS
3.4 指令系统
3.4.2 算术运算指令 5.十进制调整指令 (3)乘法的非压缩BCD码调整指令AAM
(4) 除法的非压缩BCD码调整指令AAD
3.4 指令系统
3.4.2 算术运算指令 5.十进制调整指令 (5) 加法的压缩BCD码调整指令DAA
3.3 DEBUG的使用方法
3.3.1 DEBUG使用方法 6.单步运行内存中的程序 7. 查看与修改寄存器内容 8. 查看与修改存储器内容 9. 内存块复制与填数 10. 数据块输出与输入 11. 程序段落输出与输入
3.3 DEBUG的使用方法
3.3.2 DEBUG使用示例
3.3 DEBUG的使用方法
3.4.2 算术运算指令 2.减法指令 ② 带借位的减法指令SBB
3.4 指令系统
3.4.2 算术运算指令 2.减法指令 ③ 与INC的功能相反,DEC是减1指令
3.4 指令系统
3.4.2 算术运算指令 2.减法指令 ④ 求补指令NEG
⑤ 比较指令CMP
3.4 指令系统
3.4.2 算术运算指令 2.减法指令 ⑤ 比较指令CMP
④ 带进位循环右移指令RCR
3.4 指令系统
3.4.4 移位指令 2.循环移位指令
3.4 指令系统
3.4.5 串操作指令 1. 串操作指令 (1)串传送指令MOVS的指令格式
3.4 指令系统
3.4.5 串操作指令 1. 串操作指令 (2) 串比较指令CMPS的指令
(3) 串搜索指令SCAS的指令
第三章
8086/8088 CPU086/8088 CPU指令格式

8086指令系统

8086指令系统

8086/8088C PU指令系统分为6大类(传送指令、算术指令、逻辑运算和移位指令、串操作指令、程序控制指令、处理器控制指令)。

一、数据传送类指令数据传送类指令是指令系统中用得最多的一类指令,也是条数最多的一类指令(14条),常用于将原始数据、中间运算结果、最终结果及其他信息在CPU的寄存器和存储器之间进行传送。

根据功能的不同,数据传送类指令可分为:通用数据传送指令:M OV交换指令:X CHG堆栈操作指令:PUS H ,P OP地址传送操作指令:LEA,LDS,LES标志寄存器传送指令:LAHF,SAHF,PUS HF,P OPF累加器专用传送指令:IN,OU T,X LA T1.通用数据传送指令MOV 传送指令格式:M OV DS T,S RC执行的操作:(DST)(SRC)其中DST表示目的操作数,S RC表示源操作数。

功能:此指令把一个字节或一个字操作数从源传送到目的,源操作数内容未变,目的操作数内容和源操作数内容相同。

①从累加器送到存储器格式:M OV MEM,A C ;(mem) ac(ac表示AX,AH,A L)②从存储器送累加器格式:MOV AX,DISP[BP][SI];把地址SS×10H+(BP)+(S I)+DISP存储单元的内容送AX③从存储器或寄存器送到段寄存器格式:M OV se gre g,mem/reg ;se gr eg (mem/re g)其中se gr eg表示不包括CS的段寄存器(SS,DS,ES),本指令只能是字操作。

④从段寄存器到寄存器或存储器格式:M OV mem/reg,se gr eg ;(mem/re g) se gre g规定同③,但se gre g包括CS,即CS,SS,DS,ES。

⑤从寄存器到寄存器格式:M OV re g1,re g2;r eg1 re g2注:两个寄存器之间传送时,只能相同字长的寄存器之间传送,不能在不同字长寄存器之间传送。

8086CPU指令和伪指令(中英文全解)

8086CPU指令和伪指令(中英文全解)

8086CPU指令和寄存器英文全称。

一、数据传送指令比如,mov(move)、push、pop、pushf(push flags)、popf(pop flags)、xchg(exchange)等都是数据传送指令,这些指令实现寄存器和内存、寄存器和寄存器之间的单个数据传送。

二、算术运算指令比如,add、sub(substract)、adc(add with carry)、sbb(substract with borrow)、inc (increase)、dec(decrease)、cmp(compare)、imul(integer multiplication)、idiv (integer divide)、aaa(ASCII add with adjust)等都是算术运算指令,这些指令实现寄存器和内存中的数据运算。

它们的执行结果影响标志寄存器的sf、zf、of、cf、pf、af位。

三、逻辑指令比如,and、or、not、xor(exclusive or)、test、shl(shift logic left)、shr(shift logic right)、sal(shift arithmetic left)、sar(shift arithmetic right)、rol(rotate left)、ror(rotate right)、rcl(rotate left through carry)、rcr(rotate right through carry)等都是逻辑指令。

除了not 指令外,它们的执行结果都影响标志寄存器的相关标志位。

四、转移指令可以修改IP,或同时修改CS和IP的指令统称为转移指令。

转移指令分为一下几类。

(1)无条件转移指令,比如,jmp(jump);(2)条件转移指令,比如,jcxz(jump if CX is zero)、je(jump if equal)、jb(jump if below)、ja(jump if above)、jnb(jump if not below)、jna(jump if not above)等;(3)循环指令,比如,loop;(4)过程,比如,call、ret(return)、retf(return far);(5)中断,比如,int(interrupt)、iret(interrupt return)。

微机原理:CH3(3) 8086的指令系统

微机原理:CH3(3) 8086的指令系统
• 保护断点:将返回地址,即CALL指令下面那条指
令的地址(由IP或CS和IP的内容决定)压入堆栈。 近调用:SP SP-2,IP入栈; 远调用:SP SP-2,CS入栈;
SP SP-2,IP入栈
• 根据指令给出的地址转移。
11
第三章
⑵ RET 过程返回指令 格式:RET 功能:与CALL指令相对应,通常作为一个子程序
判断有符号数的大小 JG ;大于则转移 JGE ;大于等于则转移 JL ;小于则转移 JLE ;小于等于则转移
17
第三章
例1: …… CMP AL,60 JB FAIL CMP AL,85 JAE GOOD MOV AL,’P’ JMP PRINT
FAIL:MOV AL,’F’ JMP PRINT
第三章
4、循环控制指令
特点: 一组增强型的条件转移指令,控制程序段的重复
执行,用在循环程序中以确定是否要继续循环。 循环次数通常置于CX中。 循环控制指令均不影响标志。 共有4条。
20
第三章
⑴ LOOP循环指令 格式:LOOP label 功能:CX-1→CX;
判断若CX≠0,则转至label处执行; 否则退出循环,执行LOOP后面的指令。 LOOP指令与下面的指令段等价: DEC CX JNZ label
CX≠0 则循环
CX≠0和ZF=1 则循环 CX≠0和ZF=0 则循环 CX=0 则转移
中断
INT INTO IRET
中断 溢出中断 中断返回
3
第三章
1、无条件转移指令
格式:JMP 目的 功能:无条件转移到目的地址 分类:
根据转移的距离和寻址方式的不同分为4类。
• 段内直接转移 • 段内间接转移 • 段间直接转移 • 段间间接转移

微机原理实验四串操作指令

微机原理实验四串操作指令

实验四串操作指令程序实验一、实验目的1. 熟悉五种串操作指令的功能,会编写常用的串操作应用程序。

2. 会使用DEBUG 命令查看串操作运行的结果。

二、实验环境1. 硬件:PC 微机2. 软件:Masm for Windows 汇编集成开发环境三、实验讲义串指连续存放在存储器中的一些数据字节、字或者双字。

串操作允许对程序连续存放的数据块进行操作。

这是唯一一种可以从存储器到存储器的指令。

源串一般存放在数据段,偏移地址由SI 指定;目标串必须在附加段,偏移地址由DI 指定。

在每次进行串操作后,SI 和DI 两个指针会自动修改。

修改的是增量方向还是减量方向由标志位DF 决定,DF=0 为增量操作,DF=1 为减量操作。

CX 中存放的是数据块的长度,可在CX 前加重复前缀标志,对串进行连续操作。

执行串指令之前,一般先进行如下操作:源串首地址(末地址)→ SI目的串首地址(末地址)→ DI串长度→ CX建立方向标志DF1. 重复前缀标志助记符判断条件说明REP CX 0 CX=CX-1,若CX 0 则重复REPE 或REPZ CX 0 且ZF=1 CX=CX-1,若CX 0 且ZF=1 则重复REPNE 或REPNZ CX=0 且ZF=0 EX=CX-1,若CX 0 且ZF=0 则重复2. 方向标志指令方向标志由标志位DF 决定,有CLD 和STD 两种指令。

CLD 将DF 置0,地址为增量操作。

STD 将DF 置1,地址为减量操作。

3. 串传送指令格式: [REP] MOVS DESTS, SRCS[REP] MOVSB/ MOVSW / MOVSD功能:将DS:SI 中的源串数据传送到ES:DI 规定的目的串单元中。

加重复前缀REP 可实现连续存放的数据块的传送。

例1:将源串中前三个字节的数据传送到目的串。

源串在数据段(DATAS)中,存放在SRC 单元中;目的串在附加数据段(EDATAS)中,存放在DEST 单元中。

微机原理

微机原理
• 有效地址由基址寄存器(BX或BP)的内容加上变 址寄存器(SI或DI)的内容构成: 有效地址=BX/BP+SI/DI • 基址寄存器和变址寄存器默认的段寄存器不同, 一般以基址寄存器决定段寄存器。 • 段地址对应BX基址寄存器默认是DS,对应BP基 址寄存器默认是SS;可用段超越前缀改变。
MOV AX, [BX+SI] MOV AX, [BX][SI] MOV AX, [BP+SI]
MOV AX, BX
;AX←BX
微机原理
§ 4.2.3 存储器寻址方式
存储器段的分配: 在对存储器进行操作时,内存一般可分成4个段,分别称为代码段
、数据段、堆栈段和附加数据段,每个段存放不同性质的数据,进
行不同的操作。 代码段:存放指令。
数据段:存放程序所使用的数据。
堆栈段:程序的堆栈区(子程序调用、系统功能调用、中断处 理等操作使用,是按“先进后出”原则访问的特殊存储区域)或作 为临时数据存储区。 附加数据段:辅助的数据区。 4个逻辑段的段基址分别放在相应的代码段寄存器CS、数据段 寄存器DS、堆栈段寄存器SS和附加段寄存器ES中,由这4个段寄存 器来指明每个段在内存中的起始地址。
, 标号: 指令助记符 操作数 ;注释
(1) 标号是给该指令所在地址取的名字,必须后跟冒号 (“:”),它可以缺省,是可供选择的标识符。规则: – 标识符由字母(a~z,A~Z)、数字(0~9)或某些特殊 字符(@,-,?)组成。 – 第一个字符必须是字母(a~z,A~Z)或某些特殊的符 号(@,-,?),但“?”不能单独作标识符。
MOV AX, [SI+06H] MOV AX, 06H[SI]
微机原理
;AX←DS:[SI+06H] ;AX←DS:[SI+06H]

8086cpu知识点总结

8086cpu知识点总结

8086cpu知识点总结8086 CPU 是 Intel 公司于 1978 年推出的第一款 16 位微处理器,它奠定了后来计算机发展的基础,为后续的计算机体系结构设计奠定了基础,其后续版本的处理器也是以其为基础进行设计。

这篇文章将对 8086 CPU 的架构、指令系统、寻址方式、操作模式、管脚、寄存器组、数据通路和控制信号等知识点进行详细的总结,以便更好地理解和掌握该处理器的相关知识。

一、8086 CPU 架构8086 CPU 是一种 16 位微处理器,其架构主要包括三部分:执行单元 (EU)、总线接口单元(BIU) 和通用寄存器组成。

EU 负责执行指令、算术运算和逻辑运算,同时与 BIU 进行数据交换;BIU 负责处理数据传输、地址生成和取指令等操作;通用寄存器组包括 4 个 16 位通用寄存器 AX、BX、CX 和DX,其中 AX 寄存器作为中央处理器 (CPU) 的数据寄存器,用于存放运算结果。

8086 CPU 内部结构由许多部件组成,包括寄存器、运算器、时钟、分频器、全速脉冲发生器、指令译码器、片选逻辑、地址生成器、数据总线缓冲器、地址总线驱动器、总线控制器、中断控制器、中断识别器、数据缓冲器等。

这些部件共同组成了 8086 CPU 的内部结构,为其正常工作提供了支持。

二、8086 CPU 指令系统8086 CPU 的指令系统包括数据传输指令、算术运算指令、逻辑运算指令、串处理指令、控制转移指令、程序调用和返回指令、中断指令等。

这些指令可以根据其功能和操作数的不同进行分类。

数据传输指令包括将数据从一个位置传送到另一个位置的指令,其中包括 MOV、XCHG、LEA 等指令;算术运算指令包括实现加法、减法、乘法、除法等运算的指令,其中包括ADD、SUB、MUL、DIV 等指令;逻辑运算指令包括实现与、或、非、异或等逻辑运算的指令,其中包括 AND、OR、NOT、XOR 等指令;串处理指令包括在存储器中进行字符串操作的指令,其中包括 MOVSB、MOVSW、CMPSB、SCASB 等指令;控制转移指令包括跳转、调用、返回等指令,其中包括 JMP、CALL、RET 等指令;程序调用和返回指令包括实现过程调用和返回的指令,其中包括 INT、IRET 等指令;中断指令包括控制中断处理的相关指令,其中包括 INT、IRET 等指令。

8086CPU指令系统

8086CPU指令系统

•数据交换指令XCHG
【指令格式】XCHG dst,src 【 指令功能 】 交换指令 XCHG 的操作是使源操作数 src 与目标 操作数dst进行互换.即不仅将源操作数传送到目标操作数, 而且,同时将目标操作数传送到源操作数。交换的内容可以 是一个字节(8位),也可以是一个字(16位)。 【注意】①交换指令的源操作数和目标操作数各自均可以是 寄存器或存储器,但不能两者同时为存储器。 ②段寄存器不能参加交换 例:XCHG CH,AL 字节操作 XCHG BX,SI 字操作 XCHG [SI],CX 存储器与寄存器之间交换
•堆栈操作指令PUSH和POP
【注意】 ① 堆栈操作总是按字进行的,没有字节操作指令。 ② 码段寄存器CS的值可推入堆栈,但却不能从堆栈中弹出一个 字到CS中。 ③堆栈操作指令中,有一个操作数是隐含的,这个操作数就是 (SP)指示的栈顶单元。 【注意】 ① 堆栈主要用于暂存数据和在过程调用或处理中断时暂存断点 信息。 ② 有时在程序中需要对某些寄存器内容进行保护以便后面使用, 就常用堆栈先保护起来,用到时再恢复。
•堆栈操作指令PUSH和POP
堆栈就是在存储器中指定的一个特定的存储区域。在这个 区域中,信息的存入与取出的原则是按照先进后出( first in last out,FILO)或后进先出(last in first out,LIFO)的原 则进行存取,称该存储区为堆栈。此时,信息的存入称为推入, 信息的取出称为弹出。 可以把堆栈想像成一个开口向上的容器。堆栈的一端是固 定的,另一端是浮动的。堆栈的固定端是堆栈的底部,称为栈 底。堆栈的浮动端可以推入或弹出数据,称为栈顶。向堆栈推 入数据时,新推入数据堆放在以前推入数据的上面,而最先推 入的数据被推至堆栈底部,最后推入的数据堆放在堆栈顶部。 从堆栈弹出数据时,堆栈顶部的数据最先弹出,而最先推入的 数据则是最后弹出。

第3章 8086(8088)CPU指令系统

第3章 8086(8088)CPU指令系统
11
第3章 8086/8088CPU指令系统
4.1.4 操作数寻址方式
3.存储器寻址(Memory Addressing)
4.1操作数寻址方式
存储器操作数的寻址方式中,数据都存放于存储单元中,指令操 作过程中需要BIU通过一个总线周期的访问,才能获取操作数。存储 器操作数的寻址方式是怎么计算出操作数的有效地址EA(Effective Address)。有效地址EA是三个地址量因子一个以上组合,由CPU执行 单元EU计算出来。
4.1操作数寻址方式
Relative -plus-Index Addressing)
有效地址是一个8/16位移量和一个基址与变址之和构成 EA=(BX/BP)+(SI/DI)+ DISP8/16
MOV AX,[BX+SI+10H] 操作如图所示
数据段 BX 20H 00H
3000H:0000H
注: ◆基址因子BP访问默认为堆栈段 ◆不能同时取两个基址因子;也不 能同时去两个变址因子
第3章 8086/8088CPU指令系统
3.1操作数寻址方式
3.2指令系统
1
第3章 8086/8088CPU指令系统
微机工作过程中其内部信息有两类: 一类是控制信息(指令); 一类是被加工处理的信息(数据)。
指令:微机中的控制信息就是使计算机进行某种 操作的命令,这些命令就称为指令。 指令系统:一台计算机所能执行的全部指令的集合称 为指令系统。不同的计算机其指令系统是不同的。
第3章 8086/8088CPU指令系统
4.1.4 操作数寻址方式
4.端口寻址(Port Addressing)
4.1操作数寻址方式
80X86系列CPU在访问外设时使用10根地址线A9-A0,其实际访问空 间为210=1K。根据通常书写习惯当高2为A9A8=00时,直接书写低8位, 可直接出现在指令格式中即端口的直接寻址;当A9A8≠00时,要按照 16为的数据书写,不能直接出现在指令格式中,要预先送到DX寄存器 中,即端口的间接寻址。 A 9 A 8 A7A6A5A4A3A2A1A0 0 0 X X X X X X X X 0 1 X X X X X X X X 1 0 X X X X X X X X 1 1 X X X X X X X X

微机原理和接口技术应用8086指令系统和通用指令

微机原理和接口技术应用8086指令系统和通用指令

《微机原理与接口技术》
4、标志传送指令 8086有四条标志传送操作指令:
1)LAHF(Load AH from flags)(了解) 格式:LAHF ; 功能:标志寄存器低八位传送给AH
(AH)←(PSW的低字节)
《微机原理与接口技术》
2)SAHF(Store AH into Flags)(了解) 格式:SAHF 功能:AH内容传送给标志寄存器低八位。 (PSW的低字节)←(AH)
注意:源操作数必须以寄存器间接寻址、变址寻址、 基址加变址寻址等方式表示的存储器操作数;目的操 作数为一个16位的通用寄存器。
例: LEA AX,[DI]
《微机原理与接口技术》
设(DI)=1005H
执行 结果:(AX)=1005H
例: LEA BX,[BX+SI+0F62H]
设(BX)=0400H,(SI)=003CH
《微机原理与接口技术》
微机原理和接口技术应用 8086指令系统和通用指令
3.4 8086的通用指令
• 可以分为以下六类: 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 控制转移指令 处理器控制指令
《微机原理与接口技术》
3.4.1 数据传送指令
《微机原理与接口技术》
包括:
通用传送指令;累加器专用传送指令;
(reg16)←(mem) (DS)←((mem)+2)
《微机原理与接口技术》
3)LES (Load pointer using ES )(了解) 格式:LES reg16 ,mem ; 功能:把源操作数指定的4个相继字节的数据 分别送指令指定的寄存器及ES寄存器中。
(reg16)←(mem) (ES)←((mem)+2)

微机第二章 8086处理器指令

微机第二章 8086处理器指令

第二章处理器指令一.微机在实地址模式下的寄存器1 .Pentium处理器的工作模式Inter系列的微处理器从80386开始就具备了3 种工作模式,到80486DX 又增加了1种工作模式,这4种工作模式都被Pentium继承下来并一直延续到Pentiu mⅡ/Ⅲ和Pentiu m 4。

这4种状态分别是:实地模式、虚地址保护模式、虚拟8086模式和系统管理模式。

1)实地址模式系统启动后,Pentium自动进入实地址模式。

在此模式下,采用类似于8086的体系结构。

Pentium在实地址模式下的寻址方式、存储器管理、中断处理与8086的一样。

操作数默认长度为16位,但如果在指令前加前缀也允许访问32位寄存器。

在实地址模式下不用虚拟地址,最大地址范围仍限于1MB,只采用分段方式,每段最大64KB。

尽管Pentium有4个特权级,但在实地址模式下,程序在最高级0级上执行,也就是说用户此时和操作系统拥有一样的级别。

2)保护模式所谓保护是指在执行多任务操作时,对不同任务使用的虚拟存储器空间进行完全的隔离,保护每个任务顺利执行。

保护模式是80386及以后的微机常用的模式,系统启动后先进入实地址模式,完成系统初始化后立即转到保护模式。

这种保护模式提供了多任务环境下的各种复杂功能以及对复杂存储器组织的管理机制。

只有在保护模式下,Pentium 才发挥其强大的功能。

在保护模式下,Pentium具有如下特点:存储器采用虚拟地址空间,线性地线空间和物理地址空间三种方式来描述。

在保护模式下,Pentium寻址机构是通过描述符这种数据结构来实现对内存访问的。

Pentium可以寻址的空间大至64TB2),这个空间就是所谓的虚拟地址空间。

在保护模式下,可以使用Pentium (48的4级保护功能,实现程序与程序,用户与用户及用户与操作系统之间的隔离和保护,为多任务操作系统提供优化支持。

只是在保护模式下,Pentium就能启动其分页单元,以支持虚拟内存。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[REPE/NE] CMPSB
;字节串比较
[REPE/NE] CMPSW
;字串比较
[REPE/NE] CMPSD
;双字串比较
执行的操作:
PSW ← ([ES:(DI)])-([DS:(SI)])
字节操作:SI←(SI)±1, DI←(DI)±1
字操作:SI←(SI)±2, DI←(DI)±2
双字操作:SI←(SI)±4, DI←(DI)±4
2014年3月27日星期四
20
例题:
比较两个字符串是否有相同的元素,其首地址和目标 首地址分别为SRC和DST,字符串的长度为N个字节
CLD
LEA SI,SRC
;设SI=2000H
LEA DI,DST
;设DI=3000H
MOV CX,N
双字操作:AC选EAX, SI←(SI)±4
2014年3月27日星期四
26
西北师大计算机系
STOS存串元素指令
索国瑞:suogr @
指令格式:
[REP] STOS OPR ;串类型已定义
[REP] STOSB
;字节串存值
[REP] STOSW
;字串存值
[REP] STOSD
西北师范大学计算机科学与工程学院
微机原理及汇编语言
8086CPU串操作类指令
索国瑞 2014秋选课班
西
北 师
8086CPU串操作指令


算 机
串的概念和共性
系 微
串重复前缀
机 原
串的类型后缀

及 汇
串处理方向
编 语
段超越问题

串操作指令
suogr@ QQ :31696867
6
西北师大计算机系
索国瑞:suogr @
REP无条件重复操作前缀
格式: REP 〈串操作指令〉 可用于任何串操作指令,可使其后的串指令重复执行 基本操作
执行次数预置在CX中,每重复一次,(CX)自动减1, 一旦归零,则停止重复。
注意,执行重复串操作之前应该为CX赋初值,并设 置指针寄存器和方向变化标志DF,并小心数据类型
2014年3月27日星期四
17
例题:
将数据段内起始地址在SOURCE(段内偏移地址)的一 数据块传送到附加段地址在DEST的存储单元中去,数 据块长度是200个字节
按一般处理方式:
LEA SI,SOURCE ;设SI=2000H
LEA DI,DEST ;设DI=3000H
MOV CX,50
CX
0000H
ES-附加段 00 ES:3000H 2C ES-附加段
DI 3000H
…… 00 ES:30C7H ……
…… 3D ……
DI 30C8H
2014年3月27日星期四
19
西北师大计算机系
CMPS串比较指令
索国瑞:suogr @
指令格式:
[REPE/NE] CMPS DST,SRC ;串类型已定义
LODS取串元素指令
索国瑞:suogr @
指令格式:
LODS OPR ;串类型已定义
LODSB
;字节串取值
LODSW
;字串取值
LODSD
;双字串取值
执行的操作:
AC ← ([DS:(SI)])
字节操作:AC选AL, SI←(SI)±1
字操作:AC选AX, SI←(SI)±2
索国瑞:suogr @
1.若 (CX) = 0,或者 ZF = 0,则退出REPE/REPZ, 否则向下执行
2.CX ← (CX) – 1
3.执行REPE/REPZ后的串指令一次
4.重复1~3
REPE/REPZ前缀主要和串比较指令CMPS及串扫描指令 SCAS联用。此时的含义可理解为:字符串未处理完并 且当前两数据相等或者当前数据为0时重复
串操作 是指对串中相关项进行传送、比较、查找、装 入和存储等操作,这些操作一般是可以自动而连续地 进行。
8086CPU提供的串操作指令在每次基本操作后,可以 自动修改指针 地址,并可以加 重复前缀,从而通过 硬件自动完成规定次数的动作,比用软件循环要快的 多。
2014年3月27日星期四
3
西北师大计算机系
2014年3月27日星期四
10
西北师大计算机系
索国瑞:suogr @
REPNZ/NE 不相等时重复
格式: REPNZ REPNE
执行的操作:
〈串操作指令〉 〈串操作指令〉
可用于任何串操作指令,可使其后的串指令重复 执行,执行次数预置在CX中,每重复一次,CX自动减 1,一旦归零,或者ZF=1,则停止重复。注意,执行 重复串操作之前应该为CX赋初值。但ZF是由当前串指 令本身设置的,不需预置。
2014年3月27日星期四
24
西北师大 计算机系
CX 00C8H 0000H
AL ‘M’
DI 3000H 30C8H
2014年3月27日星期四
索国瑞 suogr@
ES-数据段 …… 2C ES:3000H 4F …… 3B 2C ES:30C7H …… …… ……
25
西北师大计算机系
;200字节
CLD
;DF=0,+
REP MOVSD
;双字串的传递
2014年3月27日星期四
18
西北师大 计算机系
DS-数据段
索国瑞 suogr@
CX
DS-数据段
2000H SI
…… 0032H ……
2C DS:2000H 2C
……
……
3D DS:20C7H 3D
……
……
20C8H SI
[REPE/NE] SCASB
;字节串比较
[REPE/NE] SCASW
;字串比较
[REPE/NE] SCASD
;双字串比较
执行的操作:
PSW ← (AC)-([ES:(DI)])
字节操作:AC选AL, DI←(DI)±1
字操作:AC选AX, DI←(DI)±2
双字操作:AC选EAX, DI←(DI)±4
2C ES:3000H
SI 2000H 20C8H
4F …… 3B 2C ES:30C7H
DI 3000H
30C8H
…… …… ……
2014年3月27日星期四
22
西北师大计算机系
SCAS串搜索指令
索国瑞:suogr @
指令格式:
[REPE/NE] SCAS OPR ;串类型已定义
;200字节
REPNE CMPSB
;串比较
JNZ NOT_FOUND ;结果判断
2014年3月27日星期四
21
西北师大 计算机系
DS-数据段
……
DS:2000H 2C
4F …… 07 DS:20C7H 00
…… …… ……
索国瑞 suogr@
ES-数据段
CX 00C8H
……
0000H
串指令在书写时可以写上操作数,也可以在指令助 记符后加 类型后缀,作为判定数据类型的标记
西北师大计算机系
索国瑞:suogr @Βιβλιοθήκη
串重复前缀
无条件重复前缀 REP
有条件重复前缀 REPZ/REPE REPNZ/REPNE
2014年3月27日星期四
5
2014年3月27日星期四
2014年3月27日星期四
12
西北师大计算机系
索国瑞:suogr @
串处理方向
是指串处理过程中,指针寄存器对应的存储地址变化 的方向,是从高地址到低地址,还是相反。这取决于 方向标志 DF 的设置,
DF =0时为地址增加方向,每执行一条串操作指令, 相关变址寄存器的内容增加。
2014年3月27日星期四
23
例题:
在首地址为ES:DST的字符串中检查是否有字符“M”, 字符串的长度为N个字节
CLD
LEA DI,DST
;设DI=3000H
MOV CX,N
;200字节
MOV AL,’M’
REPNE SCASB
;串检索
JNZ NOT_FOUND ;结果判断
其他内容与REPE类似
2014年3月27日星期四
11
西北师大计算机系
索国瑞:suogr @
串的类型后缀
串操作指令可带类型后缀,有三种 后缀 B 表示字节串,指针变化量是 1 后缀 W 表示字串,指针变化量是 2 后缀 D 表示双字串,指针变化量是 4
不同的数据类型后缀,会影响到指针寄存器变化时的 变化量,也会影响到对应的默认寄存器

suogr@
教9楼C区C506实验室 教学群号:31696867
2014年3月27日星期四
2
西北师大计算机系
索国瑞:suogr @
串的概念与共性
串是指一系列含有字符、数字的 字节 或 字 或 双字 的 序列 ,在内存中是 地址连续 的空间,可以看做 数 据块、数据堆。
[REP] MOVSB
;字节串传送
[REP] MOVSW
;字串传送
[REP] MOVSD
;双字串传送
执行的操作:
ES:(DI)←([DS:(SI)])
字节操作:SI←(SI)±1, DI←(DI)±1
字操作:SI←(SI)±2, DI←(DI)±2
双字操作:SI←(SI)±4, DI←(DI)±4
2014年3月27日星期四
7
西北师大计算机系
相关文档
最新文档