微机原理-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指令格式
  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
西北师大计算机系
相关文档
最新文档