微机原理课件第7讲

合集下载

《微机原理中断技术》PPT课件

《微机原理中断技术》PPT课件

精选PPT
22
第7章 输入/输出与中断
“ 1” 1#中 断 请 求
响应
&
&
应 答 1# 2#中 断 请 求
&
&
应 答 2#
3#中 断 请 求
&
&
应 答 3#
图7.15 链式中断优先级电路
精选PPT
IN T
23
第7章 输入/输出与中断
上述两种方法虽然可以解决中断优先级控制问题,但实现 起来在硬件和软件上都要做大量的工作,十分麻烦。目前,最 方便的办法就是利用厂家提供的可编程中断控制器,这样的器 件在各种微机中得到普遍应用。本章后面将介绍广泛应用于 80x86微机系统中的专用可编程中断控制芯片8259A。
精选PPT
26
第7章 输入/输出与中断
7.4 8086/8088中断系统
7.4.1 8086/8088的中断源类型
8086/8088 CPU可以处理256种不同类型的中断,每一种中断
都给定一个编号(0255),称为中断类型号,CPU根据中断类型号
来识别不同的中断源。8086/8088的中断源如图7.17所示。从图中
精选PPT
9
第7章 输入/输出与中断
4) 中断处理
中断处理的过程实际就是CPU执行中断服务程序的过程。 用户编写的用于CPU为中断源进行中断处理的程序称为中断服 务程序。由于不同中断源在系统中的作用不同,所要完成的功 能不同,因此,不同中断源的中断服务程序内容也各不相同。 例如,对于图7.11所示的输入设备,其中断服务程序的主要任 务是用输入指令(IN)从接口中的数据端口向CPU输入数据。
精选PPT
20

微机原理与接口技术PPT第七章

微机原理与接口技术PPT第七章
(1) DMAC取代CPU控制了系统总线, 故当DMAC控制总线时, CPU不能读取指令。 (2) 若系统使用的是动态存储器,则在DMA操作期间,存储器 的刷新将会停止。 (3) 当DMAC占用总线时,CPU不能去检测和响应其他设备的中 断请求。 (4) 增加硬件的投资,提高系统的成本。
(5) DMA方式传送的额外开销源: A>总线访问时间: 由于DMAC要同CPU和其他的总线主控设备争用对系统总 线的控制权,因此,必须有一些规则来解决争用总线控制权的 问题,一般是用硬件实现排队,而排队过程要花费时间; B>对DMAC的初始化: CPU要对DMAC写控制字,因此,DMAC的初始化建立, 比程序控制数据传送的初始化,可能要花费较多时间。
五、8237的编程步骤 (1) 输出主清除命令; (2) 写入基址与当前地址寄存器; (3) 写入基址与当前字节数地址寄存器; (4) 写入模式寄存器; (5) 写入屏蔽寄存器; (6) 写入命令寄存器; (7) 写入请求寄存器。
本章完
I/O接口电路 DB 数据寄存器 数据
状态 CPU AB 控制 CB 控制寄存器 状态寄存器 外设
三、8237A可编程寄存器
1. 方式字 格式如图所示。 2. 命令字 命令字是在初始化时写入8位命令寄存器,4个通道共用, 各位定义如图所示。 3. 请求字 DMA请求可以由I/O设备产生DREQ信号,也可以由软件 产生。请求寄存器就是用于由软件来产生的DMA请求。存 储器到存储器的传送,一般利用软件产生DMA请求。软件 请求是不可屏蔽的,其格式如图所示。 4. 屏蔽字 记录各通道的DMA请求是否被允许,如图所示。 5. 状态字 格式如图所示。
(2) 处理I/O操作时的方式
CPU在存储器中建立一个信息块,将所需要的操作和有关 参数按照规定列入,然后通知协处理器来读取。协处理器读

微机原理ppt全

微机原理ppt全
第7章 接口电路应用举例
CALL NEXT: MOV MOV OUT CALL IN MOV CALL CALL JMP
CHAGE:
LEDTEST DX, AD0809 AL, 00H DX, AL DELAY AL, DX KD, AL CHAGE DISP NEXT
; 调用自检程序 ; 启动A/D转换
第7章 接口电路应用举例
图7-1
ADC0809内部结构框图
第7章 接口电路应用举例
ADC0809芯片的引脚如图7-2所示,其引脚功能如下:
图7-2
ADC0809引脚图
第7章 接口电路应用举例
IN0~IN7:8路模拟量输入端口; D0~D7:8位数字量输出端口; START:启动转换控制端口,输入一个正脉冲后开始A/D转换; ALE:地址锁存控制端口,在其上升沿,将ADDA、ADDB、ADDC三个地址 信号送入地址锁存器,经译码后选择相应的模拟量输入通道; EOC:转换结束信号输出端,转换开始EOC变为低电平,转换结束后变 为高电平,并将转换后的数字信号送入三态输出锁存器。 CLK:时钟信号输入端口,须外接10kHz~1280kHz的时钟信号,典型值 为640kHz,一般也可用系统中的ALE信号。 OE:输出允许控制端口,当该端口由低电平变为高电平时,打开输出 锁存器将数据发送到数据总线上; Vref(+)、Vref(-):基准参考电压输入端口,它决定输入模拟量的范 围,一般情况下Vref(+)接+5V,Vref(-)接地, 0~5V对应的数字量为00H~FFH。
第7章 接口电路应用举例
2.利用DAC0832产生方波 .DATA DA0832 EQU 7FFFH .CODE ORG 300H START: MOV DX, DA0832 FB1: MOV AL, 0 OUT DX, AL CALL DELAY MOV AL, 0FFH OUT DX, AL CALL DEL AY JMP FB1 DELAY: PUSH CX MOV CX, 0FFH LOOP $ POP CX RET END START

微机原理第7章ppt

微机原理第7章ppt

DMA方式
利用专用的接口电路直接在内存与外设端口之间直 接进行数据块传送,而不经过CPU中转的一种数据 传送方式。
特点:
无需CPU参与,无需软件介入,传送速度快,在 整个数据传输过程中都是由DMA控制器来控制 管理。
7.3
DMA控制器8237A
wws1996@
一、课前思考
1、8237A由哪几部分组成?
权,用DMA方式实现外部设备和存储器之间的
数据高速传输。
将DMA控制器中和某个接口有联系的部分
为一个通道。而一个DMA控制器一般由几个通
道组成。
wws1996@
7.3.1 8237A的主要功能
• 数据总线缓冲器
• 读写逻辑电路 • 工作方式寄存器 • 状态寄存器 • 优先选择逻辑 • 4个DMA通道
2、如何设置8237A的控制字?
3、8237A有哪些工作方式?各有何特点?
4、如何对8237A进行初始化编程?
二、学习目标
1、了解8237A的内部结构和引脚功能; 2、熟练掌握8237A控制字的设置; 3、熟练掌握8237A的工作方式及编程和应用。
wws1996@
三、难重点 1、8237A的内部结构及功能; 2、8237A的控制字的设置及其工作方式; 3、8237A的编程及应用。 四、主要知识点 1、8237A的控制字设置; 2、8237A的工作方式; 3、8237A的初始化及应用。
第7章 2、查询式输出 CPU通过执行程 序不断地读取并 测试外设的状态, 如果外设处于空 Y(忙) BUSY=1? N 输出数据 输入状态信息
闲状态,则CPU
执行输出指令,
否则就等待。
查询式输出程序流程图
第7章
DATA_PORT

微机原理PPT课件

微机原理PPT课件
一片可管理8级中断,2个端口 级联:最多64级 可中断屏蔽或允许 可中断向量输送 可优先权管理 多种工作方式,编程选择
6
7.2.1 8259A的组成和接口信号
D7~D0
RD WR A0 CS
数据 总线 缓冲器
读/写 控制 逻辑
CAS0 CSA1 CAS2 SP/EN
级联 缓冲 比较器
中断请求寄存器 优先权判别电路 中断服务寄存器
(与CPU中F中IF位不同)
8
说明:
4,INT中断请求
向CPU(INTR*引脚)或主8259A(IR0~IR7 引脚)提中断请求
5,INTA*中断响应
由CPU(INTA*引脚)来
6,数据总线缓冲器
传送控制字、状态、中断向量
9
说明:
7,读/写控制逻辑
A0:端口选择线 读,IN CS*=0,A0=0,RD*=0时,CPU读8259 IRR、ISR、
15
ICW2 (A0=1,奇地址)
D7 D6 D5 D4 D3 D2 D1 D0
T7
T6
T5
T4
T3
×
பைடு நூலகம்
×
×
设置中断向量号
T7~T3为中断向量号的高5位 低3位由8259A自动确定: IR0为000、IR1为001、……、 IR7为111
16
ICW3 (A0=1,奇地址)
D7 D6 D5 D4 D3 D2 D1 D0
D7 D6 D5 D4 D3 D2 D1 D0
×××
1 LTIM × SNGL IC4
×为中LL规SS是IICCTTNN1—1断定否—为II44GGMM—==触单LL写—0==表都==10发片入只,,10示可10方或, ,I能, ,要 不C可以式级电 边为单 级W写 写以(:连平 沿1片 连4入 入,任建方触 触方 方IICC作意议式发 发式 式WW为为:方 方44标0,式 式)志即 ICW4规定的位全为0

微机原理微机原理讲义第7章课件

微机原理微机原理讲义第7章课件

缓冲器 (1)
CS
CPU DB
数据口 42H
M / IO
42H
15
查询式输入如图,状态线占用一根数据线D0,STB是选通 信号,在输入时随着数据一起从输入端口出现,是表示输 入数据已就绪的状态信号。CPU先读状态口,若状态就绪, 再读数据口。
…… …… ……
D7
D7
锁存器
缓冲器 (2)
D0
CS D0
STB
1
D CSLETRQ
Q CLR
STROBE: 选通信号
输入缓冲器
输出设备
输入设备
12
当外设作输入设备,输入数据的保持时
间相对于CPU的处理时间长,所以可以直接
用缓冲器;
外设作为输出设备,由于外设速度比较
慢,CPU的数据必须在接口保持一段时间,
因此必须采用锁存器。
无条件传输时,输出时,必须确认输出
ห้องสมุดไป่ตู้
锁存器的原数据无效,才能正确输出;输入
时,必须认为输入缓冲器中的数据已准备好,
6) 数据缓冲功能
主机与外设速度相差很大,为了防止数据丢失,I/O接口 均设有双向数据缓冲器。
6
7) 中断管理功能
有专门的中断管理接口,能完成中断判优、中断屏蔽,向 CPU送入中断类型码等功能。
8) 错误检测功能
多数可编程芯片都能自动检测出传输过程中出现的错误。 1.传输错误,如串口中的奇偶校验 2.覆盖错误
象也不同
CS
CLK1 OUT1
A1 A0 CLK2
D7 OUT2
D0 GATE1 GATE2
2MHz
VCC
11
输入输出传送方式
1)无条件传送方式

微机原理第七章

微机原理第七章
微机原理
第七章 串并行通信及其接口
微机原理
7.1 CPU与外设之间的数据传输
7.1.1 CPU与I/O接口
(1)接口电路的作用
微型计算机系统必须有各种接口电路。接口电路按功能可分为两类:一种是 使微处理器正常工作所需要的辅助电路,如时钟信号或接收外部的多个中断请
求等;另一种是输入/输出接口电路,微处理器用以接收外部设备送来的 信息或将信息发送给外部设备。
实现并行通信的接口就是并行接口。并行接口可以设 计为只用来输出,也可以只用来输入,或既作为输入又作 为输出接口。
Intel 8255A是一个通用的可编程的并行接口芯片,它的内部
有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,
使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有
⑧错误检测功能
在接口设计中,须考虑对错误的检测问题。当前多数可编程接口芯片一般都能检 测下列两类错误:
一类是传输错误。接口采用奇/偶校验位对传输错误进行校验。有些接口对数 据块传输能进行冗余校验。
另—类是覆盖错误。当计算机输入数据时,如果计算机还没有取走数据,输 入缓冲寄存器又被覆盖新的数据,就会产生一个覆盖错误。输出时也会产生覆 盖错误。接口会在状态寄存器中设置相应的状态。
微机原理
7.2.3 8255A的引脚功能
8255A作为一个通用的I/O接口芯片,在系统中的位置位于CPU与外设
之间。它的引脚信号可以分为两组:一组是面向CPU的信号,一组是面向外 设的信号。
微机原理
微机原理
CS RD WR
001 001 001 010 010 010 010
8255A的操作功能表
为了使CPU能适应各种各样的外设,就需要接口电路,由它完成相应的

微机原理课件ch07

微机原理课件ch07

Q(C,D)
2021/1/10
ENDM
第21页
过程调用和宏调用的区别
在处理时间上不同。 用宏指令得到的目标代码长,占内存空间大,而
且宏调用的次数越多,所占内存空间越大;用过 程占内存空间小,而且不会随调用次数的增加而 增加,但执行时间长。 传递参数的方式不同
2021/1/10
第22页
2021/1/10
PTR运算符
格式: 类型 PTR 表达式
例12:INC WORD PTR [BX]
THIS操作符
格式: THIS 类型(或属性)
例13:FIRST
EQU THIS BYTE
SECOND
DW 100 DUP (?)
2021/1/10
第27页
第19页
子程序调用和宏调用的区别
子程序调用工作方式
主程序
X←A,y←B CALL Q
x←C,y←D CALL Q
子程序Q(x,y) 执行时调用
Q: . . .
RET
2021/1/10
第20页
子程序调用和宏调用的区别
宏调用工作方式
主程序
子程序Q(x,y)
汇编时展开
Q A,B
Q(A,B)
Q C,D Q MACRO x,y
2021/1/10
第10页
伪指令
符号定义语句
等值语句
格式:符号名 EQU 表达式
例1: ⑴ PORT
EQU
⑵ BUFF
EQU
⑶ MEM
EQU
⑷ COUNT
EQU
⑸ ABC
EQU
1234 PORT+58 DS:[BP+20H] CX AAA
等号语句

微机原理7.ppt

微机原理7.ppt
高位字节 放 高地址单元 低位字节 放 低地址单元
▪以最低字节所在的内存地址作为 数据的存储地址。
内存中的字节、字和双字
内存地址
内存单元

1003H 0001 0002
1002H 0003 0004
1001H 1010 0110
1000H 1100 1011

内存单元
内存地址 … 1003H 1 2 1002H 3 4 1001H A 6 1000H C B

3)内存操作
读:将内存单元的内容取入CPU,原
单元内容不改变;
写:CPU将信息放入内存单元,单元
中原内容被覆盖;
… 1003H 1 2 1002H 3 4

3. 输入/输出接口
I/O接口,是CPU与外设间的桥梁.
CPU
I/O
接口
外设
完成信号变换、数据缓冲、联络控制等工作 较简单的I/O接口电路与主板一体 较复杂的I/O接口电路制成独立的电路板(接口卡)
数据总线的条数决定一次可最多传送数据
的宽度。
地址总线AB
C 8 根存 P 16储器根
→I/O

→口
一输次传送I/8O位 一入 设 备次传送接口16位
输 出 设 备
U 32 根 → 一次传送 32位
64 根 → 一次传送 64位
数据总线DB 控制总线CB
控制总线 CB:传送各种控制信号
有的是CPU发出,如读、写控制信号; 有的是发向CPU,如外设发出的中断申请信号。
微机原理 及 应用
主讲 茹媛
计算机学院 网络与工程系
教材: 《微机原理与接口技术》
吉海彦 机械出版社 ISBN 978-7-111-21547-9 参考书: 《IBM PC 汇编语言程序设计》

微机原理第07讲

微机原理第07讲
18
注意区分下列指令: 注意区分下列指令: LEA SI,DATA1 , MOV SI,DATA1 , MOV SI, OFFSET DATA1 MOV BX,[BX] , LEA BX,[BX] ,
符号 地址
┇ DATA1 34H 12H ┇ 1100H 88H 77H ┇
BX=1100H
19
(2)指针送寄存器和DS指令 )指针送寄存器和 指令 格式: 格式: LDS OP目,OP源 目 源 功能:把OP源指定的4个字节内容取出,低地址的两 功能: 源指定的4个字节内容取出, 字节→ 目 高地址的两字节→DS。 字节→OP目,高地址的两字节→DS。 DI,[2130H];2130H 2131H单元中的内容→DI; 例:LDS DI,[2130H];2130H和2131H单元中的内容→DI; 2132H和2133H单元中的内容→DS 2132H和2133H单元中的内容→
2130H 2131H 2132H 2133H 34H 12H 78H 56H
DI=1234H DS=5678H
20
的值是多少? 例:下列指令执行后DI ,AX的值是多少? 下列指令执行后 的值是多少 LDS DI,[1200H] , MOV AX,[DI] , ┇
1200H 34H 12H 00H 60H ┇ 61234H 33H 22H ┇
12
注意: 注意: 堆栈操作总是按字进行的。 堆栈操作总是按字进行的。 压入指令,SP压入指令,SP-2,数据在栈顶。弹出指令正好相反。 数据在栈顶。弹出指令正好相反。 操作数可以是存储器、 操作数可以是存储器、寄存器或段寄存器操作数 不能用于POP ),不能是立即数。 ),不能是立即数 不能是立即数。 ( CS不能用于 不能用于 PUSH CS √ POP CS × POP 2300H × PUSH 1200H ×

微机原理课件第7讲

微机原理课件第7讲

无条件转移和过程控制指令
命令 JMP CALL RET
含义 无条件转移 过程调用 过程返回
时钟数 11~24+EA 16~37+EA 16~24
无条件转移
偏移量 0000 0000 0002 0003 0005 0006 机器码 程序 CODE SEGMENT ASSUME CS:CODE PROG_S: ADD AL,05H NOP JMP SHORT PROG_S NOP CODE ENDS END
加重复前缀 REPE/REPZ CMPS ;直至CX=0(比完了)或ZF= = = 0(两串不相等)时停止操作。 REPNE/REPNZ CMP;直至CX=0(比完了)或ZF= = = 1(两串相等)时停止比较。
③SCAS字符串扫描指令 SCAS字符串扫描指令 (Scan String)
格式 SCAS 目的串。 。 功能 AL/AX(字节/字操作)内容减去ES:DI中的串元素, 结果反映在标志位上,源操作数不变,操作后目的串 指针会自动修改,指向下一个待搜索的串元素。 应用 利用SCAS指令,可在内存中搜索关键字。指令执行 前,必须事先将关键字存在AL(字节)或AX(字)中,才 能用SCAS指令进行搜索。 。 SCAS指令可以加重复前缀。
①MOVS字符串传送指令 MOVS字符串传送指令 (Move String)
格式 MOVS 目的串,源串。 功能 SI作指针的源串中的一个字节或字,DI作指针的目 的串;自动修改指针SI和DI。 应用
解决MOV指令不能直接在存储单元间进行数据传送的问 题。 若使用重复前缀,还可以利用一条指令传送一批数据。
段内间接转移指令
【例】JMP BX 解:若该指令执行前BX=4500H; = 则指令执行时,将当前IP修改成4500H; 程序转向段内偏移地址为4500H处执行。 【例】JMP WORD PTR 5[BX] 解:设指令执行前,DS=2000H,BX=100H, = = , (20105H)=04F0H;则指令执行后,IP= = ; = (20000H+100H+5H)=(20105H)=04F0H;转到代码段 = = 内偏移地址为04F0H处执行。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

字符串操作指令
对字符串进行的传送、比较、扫描、存储及装入 等5种操作。
隐含约定
源串
起始地址(或末地址)为DS:SI。源串允许使用段超 越前缀来修改段地址。
目的串
起始地址(或末地址)为ES:DI。目的串不允许使 用段超越前缀修改ES。如果要在同一段内进行串运算, 必须使DS和ES指向同一段。
指针
④RET n过程返回指令 RET n过程返回指令(Return)
格式
RET n。
功能
n称为弹出值,CPU在弹出返回地址后,再从堆栈 中弹出n个字节的数据。其值可以是0000-0FFFFH范围 内的任何一个偶数。
④RET n过程返回指令
用途
调用过程的主程序通过堆栈向过程传递参数。
参数在调用过程前推入堆栈,过程运行中通过堆栈指 针寻找; 过程返回时,用RET n把它们从栈中弹出。
过程调用及返回指令
过程:程序中能完成特定功能而又独立的模块, 也称子程序。 过程嵌套:在过程运行中又去调用另一个过程。 过程调用和返回指令的格式:CALL 过程名 RET 近过程调用:调用指令CALL和被调用的过程在同 一代码段中。 远过程调用:两者在不同代码段中。
②CALL过程调用指令 CALL过程调用指令(Call)
段间直接(远)转移指令
【例】 JMP FAR PTR PROG_F 解:设标号PROG_F所在段的基地址=3500H, 偏移地址=080AH;
则指令执行后,IP=080AH,CS=3500H;
程序转到3500:080AH处执行。
段间间接转移指令
【例】 JMP DWORD PTR [SI+0125H] 设指令执行前:CS=1200H,IP=05H,DS= 2500H,SI=1300H;内存单元(26425H)=4500H, (26427H)=32F0H。 解:目的操作数地址=DS×16+SI+DISP =25000H+1300H+0125H =26425H 从单元中取出转移地址,赋与IP和CS:IP= 4500H,CS=32F0H;程序转到32F0:4500H处执行。
①JMP无条件转移指令
两种提供地址的方式
直接转移
指令码中直接给出转移的目的地址,目的操作数 用一个标号来表示,它又可分为段内直接转移和段间直 接转移。 间接转移
目的地址包含在某个16位寄存器或存储单元中, CPU根据寄存器或存储器寻址方式,间接求出转移地址。
①JMP无条件转移指令
无条件转移指令的类型和方式
②CMPS字符串比较指令 CMPS字符串比较指令 (Compare String)
格式
CMPS 目的串,源串。
功能
SI作指针的源串减去DI作指针的目的串数据,结果 反映在标志位上;两个数据串的原始值不变;源串和 目的串指针自动修改,指向下一对待比较的串。常用 来比较两个字符串是否相等。
②CMPS字符串比较指令
类型 方式
寻址目标
指令举例
JMP SHORT PROG_S
直接 立即短转移(8位)
段内 直接 立即近转移(16位) JMP NEAR PTR ROG_N 转移 间接 寄存器(16位) JMP BX 间接 存储器(16位) 段间 直接 立即转移(32位) 转移 间接 存储器(32位) JMP WORD PTR 5[BX] JMP FAR PTR PROG_F JMP DWORD PTR [DI]
解决MOV指令不能直接在存储单元间进行数据传送的问 题。 若使用重复前缀,还可以利用一条指令传送一批数据。
①MOVS字符串传送指令
举例
要求把数据段中以SRC_MESS为偏移地址的一串字符 “HELLO!”,传送到附加段中以NEW_LOC开始的单元中。
START: MOV AX,DATA DATA SEGMENT ;数据段 MOV DS,AX ;DS=数据段段址 SRC_MESS DB ‘HELLO!’ ;源串 MOV AX,EXTRA DATA ENDS; MOV ES,AX ;ES=附加段段址 EXTRA SEGMENT ;附加段 LEA SI,SRC_MESS ;SI指向源串偏移地址 NEW_LOC DB 6 DUP(?) ;存放目的串 EXTRALEA DI,NEW_LOC ;DI指向目的串偏移地址 ENDS; MOV CX,6 ;CX作串长度计数器 CODE SEGMENT CLD ;清方向标志,地址增量 ASSUME CS:CD, DS:DATA, ES:EXTRA REP MOVSB ;重复传送串中各字节,直到CX=0 Code ENDS End start
条件循环控制指令
中断指令
控制转移指令(28条)
①无条件转移和过程调用 ③条件转移指令 JMP 无条件转移 JZ/JE等10条指令 直接标志转移 CALL 过程调用 JA/JNBE等8条指令 间接标志转移 RET 过程返回 ④条件循环控制 LOOP CX≠0循环 ②中断指令 INT LOOPE/LOOPZ 中断 CX≠0和ZF=1 INTO LOOPNE/LOOPNZ CX≠0和ZF=0 溢出中断 IRET JCXZ 中断返回 CX=0则转移
格式 STOS 目的串。 功能 AL/AX(字节/字操作)的一个字节或字ES:DI所 指的目的串;修改DI,以指向串中的下一个单元。 关于重复前缀:“REP STOS” ,可用累加器中的 常数,对数据串初始化。如初始化为全0串。
控制转移指令
作用 改变CS和IP的值,从而改变指令的执行顺序。 类型 无条件转移和过程调用指令 条件转移指令
④LODS取字符串指令 LODS取字符串指令 (Load String)
格式 LODS 源串。 功能
DS:SI中的串元素AL/AX(字节/字操作)中,修改 SI,以指向串中的下一个元素。SI的修改量由方向标
志DF和源串的类型确定。
⑤STOS存字符串指令 STOS存字符串指令 (Store String)
格式
Call 过程名
功能
将当前主程序的返回地址压入堆栈保存,转到子程
序入口地址执行子程序。
近调用时:IP入栈;远调用时,CS和IP入栈。
③RET过程返回指令 RET过程返回指令(Return)
格式 RET。 功能 从堆栈中弹出返回地址,使程序返回主程序继续执行。 如果从近过程返回:从栈中弹出一个字 IP,并且使 SP SP+2。 如果从远过程返回:先从栈中弹出一个字 IP,并且 使SP SP+2;再从个字栈中弹出一个字CS,并使 SP SP+2。
过程调用与返回指令
寻址方式
段内直接调用;
段内间接调用;
段间直接调用;
段间间接调用
过程调用与返回指令
①段内直接调用
【例】 CALL PROG_N ;PROG_N是一个近标号 CS=2000H,IP=1050H,SS=5000H,此指令含3 字节。SP=0100H,PROG_N与CALL指令之间的距离 等于1234H(即DISP=1234H)。 CALL(机器码E83412)执行过程。
每执行一次字符串指令,指针SI和DI会自动修改, 以指向下一个待操作单元。
隐含约定
DF标志:控制字符串处理的方向。
DF=0为递增方向。DS:SI指向源串首地址,每执
行一次串操作:字节串操作时,SI、DI分别增1;字串操 作时,SI和DI分别增2; DF=1为递减方向。DS:SI指向源串末地址,每执 行一次串操作:字节串操作时减1;字串操作时减2。
第3章 8086的寻址方式和指令系统
3.1 8086的寻址方式
3.2 8086指令格式及数据类型
3.3 8086的指令集
串处理指令
命令 含义 时钟数
MOVSB/MOVSW CMPSB/CMPSW SCASB/SCASW LODSB/LODSW STOSB/STOSW
REP REPE/REPZ REPNE/REPNZ
0405 90 EBFB 90
①JMP无条件转移指令 JMP无条件转移指令 (Jump)
格式 JMP 目的。 功能 程序无条件地转移到指定的目的地址去执行。 转移类型
段内转移或近(NEAR)转移 转移指令的目的地址和JMP指令在同一代码段中,转移时, 仅改变IP寄存器的内容,段地址CS的值不变。 段间转移,又称为远(FAR)转移 转移时,CS和IP的值都要改变,转到另一代码段去执行。
无条件转移和过程控制指令
命令 JMP CALL RET
含义 无条件转移 过程调用 过程返回
时钟数 11~24+EA 16~37+EA 16~24
无条件转移
偏移量 0000 0000 0002 0003 0005 0006 机器码 程序 CODE SEGMENT ASSUME CS:CODE PROG_S: ADD AL,05H NOP JMP SHORT PROG_S NOP CODE ENDS END
STD使DF置1,CLD将DF清0。
串长度
要处理的字符串长度(字节或字数)放在CX寄存器中。
重复前缀
①功能
在基本指令前加重复前缀,可加快串运算指令的执行速度。
每重复执行一次,地址指针SI和DI按方向标志自动修改,CX的 带有重复前缀的串指令执行过程中允许有中断进入。 值自动减1。
②类型和格式
REP:无条件重复,重复操作直到CX=0为止。
字符串传送 字符串比较 字符串扫描 字符串装入 字符串存储
无条件重复 相等/结果为零重复 不相等/非零重复
17 22 15 12 11
2 2 2
相关概念
字符串
一系列存放在存储器中的字或字节数据,字符串 长度可达64K字节。
字符串元素
组成字符串的字节或字。每种字符串指令对字符 串元素只进行同一种操作。
REPE/REPZ:相等/结果为零则重复,重复直到ZF=0或CX =0为止。 REPNE/REPNZ :不相等/结果非零则重复,重复直到ZF=1 或CX=0为止。
相关文档
最新文档