微机原理与接口技术第七章1
《微机原理及接口技术》第七章

数。计数过程中,新装入值不影响原计数过程。计数为偶数,计数器减2,到
0,OUT改变,计数值重新装入,反复工作。为奇数,则第一次减1,以后减2。
10/20
一、8253的工作方式5
1、000:方式 0(计数结束产生中断)
第七章、可编程计数/定时控制器8253
本章要点:
计数器/定时器基本概念 可编程计数器/定时器8253的工作原理 可编程计数器/定时器8253结构、功能 可编程计数器/定时器8253的应用
2/20
7.1 可编程计数/定时控制器8253的结构
一、可编程计数/定时控制器
在微机应用系统中,常常要求有一些实时时钟,以实现对外部事件进行定时或 对微机外部输入的脉冲进行计数。一般有3种方法可实现定时/计数的要求。
按照CPU发来的读写信号及地址信号产生相应的控制信号,
来选择读/写操作的端口、控制数据的传送方向,以及对控制寄存器的写入。
3、控制字寄存器: 控制字寄存器是8位的,只能写不能读。
在初始化编程时,CPU写入方式控制字到控制字寄存器中,
用以选择计数通道及其相应的工作方式。
4、计数器0、计数器1、计数器2: 内部结构相同、功能相同,有各自独立的端口地址。
1、软件方法 通过编制一个延时程序段让微处理器执行,利用执行程序所需时钟状态,得到定 时的时间。这种方法通用性和灵活性好,但占用CPU时间。 2、不可编程的硬件方法 采用分频器、单稳电路或简易定时电路控制定时时间,例如555定时电路,这种 方法不占用CPU时间,但通用性、灵活性差。 3、可编程计数器/定时器方法 软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路,可由软件 设定定时与计数功能,设定后与CPU并行工作,不占用CPU时间,使用灵活。
课件:微机原理与接口技术7章

输入输出传送方式
• 查询式传送(异步传送方式)
– 这种方式,CPU要遵循“先查询,后传送”的 原则,保证只有在外设已经是在“准备好”状 态,才开始传送数据。
– 查询式传送的一般流程: • 先从状态口读入状态字; • 如果状态是“准备好”,开始传送; • 如果状态是“没有准备好”,则继续查询,直 到“准备好”,开始传送。
微机原理与接口技术
第七章 微型计算机和外设间的数据传输
第七章 微型计算机外设间的数据传输
概述
• 把外部设备同计算机连接起来实现数据传 送的控制电路称为I/O接口电路,简称 I/O 接口。
I/O接口
(1)转换信息格式——例如串/并、并/串转换等; (2)提供联络信号——协调数据传送的状态信息,如设备
输入输出传送方式
• 查询方式的优点:CPU和外设之间可以很好 地配合工作 。
• 缺点:CPU要长期地查询外设的状态,查询 实际上就是一种等待。CPU长期的等待会影 响CPU的工作效率。
输入输出传送方式:中断
• 中断方式: 中断方式是由外设向CPU发出要求交换数据 的请求,即中断请求。CPU收到中断请求后, 中断当前的工作,为外设服务。服务结束 (输入或输出)后,继续原来的工作。
“就绪”、“忙”、“选通”、“应答”,数据缓冲器 “满”、“空”等; (3)协调定时差异——为协调计算机与外设在“定时”或 数据处理速度上的差异,使两者之间的数据交换取得同步, 有必要对传输的数据或地址加以缓冲或锁存; (4)进行译码选址——一般微机系统中都具有多台外设, 因此I/O接口必须提供设备地址译码以及确定其端口的功 能; (5)实现电平转换——外部电路采用的电平多种多样,包 括TTL, CMOS, RS-232等,接口电路必须提供计算机同外 设间的电平转换和驱动功能; (6)具备时序控制——有的接口电路具有自己的时序,以 满足计算机和各种外设在时序方面的要求。
微机原理及接口第七章习题解答

“微机系统原理与接口技术”第七章习题解答(部分)1. 8086系统采用向量式中断,试简述8086系统中中断类型码、中断向量、中断向量表的含义及其之间的关系。
答:中断类型码:用于区分不同的中断源,即系统中每个中断源都应该对应一个唯一的类型 码。
8086系统中的中断类型码以 8位无符号数(00H 〜0FFH )表示,一共可以区分 256个不同的中断源。
中断向量:中断服务程序(ISR )的入口地址,也就是 ISR 的第一条指令在存储器中的 位置。
8086系统中的中断向量由两个字(4个字节)组成,低位字表示入口的偏移地址,高 位字表示入口的段基址。
显然,每个中断类型码对应一个中断向量,则8086系统中共应有256个中断向量。
中断向量表:中断向量的存放地。
8086系统将最低的 1KB (00000H 〜003FFH ) RAM 空间用于存放这256个中断向量。
三者之间的关系是:利用中断类型码 n 可以很容易地从中断向量表中找到该中断源所对应的中断向量,即:中断向量存放的起始地址 m = nX 4,从中断向量表的 m 地址单元开始连续取出的四个字节就是 n 号中断的ISR 入口地址。
8086CPU 正是用这种方法完成中断索引的。
系统将广义中断分为异常和狭义中断两大类。
(5)对。
4. 8086系统的RAM 存储单元中,从 0000H:002CH 开始依次存放 23H 、0FFH 、00H 和 0F0H 4个字节的中断向量,该向量对应的中断类型码是多少?而中断类型码为 14H 的中断向量应存放在哪些存储单元中?答:中断向量0F000:0FF23存放在0002CH 双字单元中,说明其对应的中断类型码N =2CH - 4= 0BH 。
14H 号中断向量的起始存放地址为4X 14H = 00050H ,即该中断向量的偏移量部分存放2.判断下列说法是否正确,如有错,指出错误原因并改正:(1) (2) (3) (4) (5) 答:(1)优先级别高的中断总是先响应、先处理。
微机原理与接口技术第七章课后答案

微机原理与接口技术第七章课后答案1、 Keil uVision 5集成开发环境中,钩选“creat Hex File”复选框后,默认状态下的机器代码文件名与()相同。
[单选题] *A、项目名(正确答案)B、文件名C、项目文件夹名D、主函数名2、 Keil uVision 5集成开发环境中,编译生成的机器代码文件的后缀名为() [单选题] *A、.mifB、.asmC、 .hex(正确答案)D、 .uvproj3、累加器与扩展RAM进行数据传送,采用的助记符是() [单选题] *A、MOVB、 MOVCC、MOVX(正确答案)D、 XCH4、对于高128字节,访问时采用的寻址方式是() [单选题] *A、直接寻址B、寄存器间接寻址(正确答案)C、变址寻址D、立即数5、对于特殊功能寄存器,访问时采用的寻址方式是() [单选题] *A、直接寻址(正确答案)B、寄存器间接寻址C、变址寻址D、立即数6、对于程序存储器,访问时采用的寻址方式是() [单选题] *A、直接寻址B、寄存器间接寻址C、变址寻址(正确答案)D、立即数7、定义变量x为8位无符号数,并将其分配的程序存储空间,赋值100,正确的是() [单选题] *A、unsigned char code x=100;(正确答案)B、 unsigned char data x=100;C、 unsigned char xdata x=100;D、 unsigned char bdata x=100;8、当执行P1=P1&0xfe;程序时相当于对P1.0进行()操作,不影响其他位。
[单选题] *A、置1B、清零(正确答案)C、取反D、不变9、当执行P2=P2|0x01;程序时相当于对P2.0进行()操作,不影响其他位 [单选题] *A、置1(正确答案)B、清零C、取反D、不变10、当执行P3=P3^0x01;程序时相当于对P3.0进行()操作,不影响其他位 [单选题] *A、置1B、清零C、取反(正确答案)D、不变11、当(TMOD)=0x01时,定时/计数器T1工作于方式()状态 [单选题] *A、0,定时(正确答案)B、 0,计数C、 1,定时D、 1,计数12、当(TMOD)=0x00时,T0X12为1时,定时时/计数器T0计数脉冲是() [单选题] *A、系统时钟;(正确答案)B、系统时钟的12分频信号;C、P3.4引脚输入信号;D、 P3.5引脚输入信号13、当(IT0)=1时,外部中断0触发的方式是() [单选题] *A、高电平触发;B、低电平触发;C、下降沿触发(正确答案)D、上升沿/下降沿触皆触发14、 IAP15W4K58S4单片机串行接口1在工作方式1状态下工作时,一个字符帧的位数是() [单选题] *A、8B、 9C、 10(正确答案)D、1115、当(SM1)=1,(SM0)=0时,IAP15W4K58S4单片机的串行接口工作方式为()[单选题] *A、工作方式0B、工作方式1(正确答案)C、工作方式2D、工作方式316、 IAP15W4K58S4单片机的A/D转换模块中转换电路的类型是() [单选题] *A、逐次比较型(正确答案)B、并行比较型C、双积分型D、Σ-Δ型17 IAP15W4K58S4单片机的A/D转换的8个通道是在()口 [单选题] *A、P0B、 P1(正确答案)C、 P2D、P318、IAP15W4K58S4单片机的PWM计数器是一个()位的计数器。
微机原理、汇编语言与接口技术 第七章 习题答案 人民邮电出版社(周杰英 张萍 郭雪梅 著)

第7章输入/输出接口习题与参考答案这一章的习题与参考答案分为两大部分,一部分是输入输出概述及DMA控制器的习题与参考答案;另一部分是中断及中断控制器部分的习题与参考答案。
一、输入输出概述及DMA控制器的习题与参考答案1、请说明为什么输入接口的数据缓冲寄存器必须有三态输出功能而输出接口却不需要的原因。
解:输入接口的数据缓冲寄存器的输出端是直接接在数据总线上的,如果数据寄存器没有三态输出功能,则无论数据寄存器被寻址选中或未被选中,其数据都会被送上数据总线,若此时总线上真正要传送的数据与该输入缓存器的内容不一致时,就会发生总线冲突。
所以,输入接口的数据缓冲器必须有三态输出功能,以便当接口未被寻址选中时,其输出端处于高阻态,从而与总线隔离。
对于输出接口来说,是输入端与数据总线相连,而输出端是与外设相连,因此其输出不影响总线状态;另外,一个外设一般只与一个输出数据缓存器相连,因此输出接口的数据缓存器无须有三态输出功能。
2、8086/8088CPU中哪些寄存器可以用于I/O寻址?若I/O端口地址分别是10H和100H,分别写出向这两个端口写入73H的程序段。
解:8086/8088CPU内可以用于I/O寻址的寄存器为AL、AX和DX。
向端口10H写入73H的程序段为: MOV AL,73HOUT 10H,AL向端口10H写入73H的程序段为: MOV AL,73HMOV DX,100HOUT DX,AL3、图为7段显示器接口,显示器采用共阳极接法,试编写程序段,使AL中的一位十六进制数显示于显示器上。
输出锁存器地址为40H。
解:TABLE DB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,67H,77H,7CH,DB 39H,5EH,79H,71HLEA BX,TABLEXLATOUT 40H,AL4、PC/XT机有哪些输入输出方式?各自的特点如何?DMA控制器应具备哪些功能?解:无条件方式:需要外设处于就绪状态,硬件简单;查询方式:CPU需要不断地查询外设是否就绪,浪费CPU时间,硬件较简单;中断方式:外设准备好后,向CPU发中断请求,请求CPU完成数据传输,外设与CPU并行;硬件又比前两者复杂。
8071第七章输入输出接口技术第一节内容2009.01.20(第三稿)

2.I/O端口独立编址
优点:
I/O端口的地址空间独立 控制和地址译码电路相对简单 专门的I/O指令使程序清晰易读 I/O指令没有存储器指令丰富
缺点:
80x86采用I/O端口独立编址
2013年8月1日星期四 中北大学《微机原理及接口技术》 37
Байду номын сангаас
2.I/O端口独立编址
特点:
00000H 内存 地址
12
7.1.3 I/O接口的主要功能
对输入输出数据进行缓冲和锁存 输出接口有锁存环节,输入接口有缓冲环节 实际的电路常用: 输出锁存缓冲环节,输入锁存缓冲环节 对信号的形式和数据的格式进行变换 微机直接处理:数字量、开关量、脉冲量 对I/O端口进行寻址 与CPU和I/O设备进行联络
中北大学《微机原理及接口技术》 24
2013年8月1日星期四
外设接口
输入接口 输出接口 并行接口 串行接口
数字接口
模拟接口
2013年8月1日星期四
中北大学《微机原理及接口技术》
25
输入输出接口的特点
输入接口:
要求对数据具有控制能力(常用三态门实现)
输出接口:
要求对数据具有锁存能力(常用锁存器实现)
中北大学《微机原理及接口技术》
6
7.1.2 I/O接口概述
为什么需要I/O接口(电路)?
多种外设
微机的外部设备多种多样
工作原理、驱动方式、信息格式、以及工作 速度方面彼此差别很大
它们不能与CPU直接相连 必须经过中间电路再与系统相连 这部分电路被称为I/O接口电路
微型计算机原理与接口技术第七章课后答案
第七章1. 什么叫中断?什么叫可屏蔽中断和不可屏蔽中断?答:当CPU正常运行程序时,由于微处理器内部事件或外设请求,引起CPU中断正在运行的程序,转去执行请求中断的外设(或内部事件)的中断服务子程序,中断服务程序执行完毕,再返回被中止的程序,这一过程称为中断。
可屏蔽中断由引脚INTR引入,采用电平触发,高电平有效,INTR信号的高电平必须维持到CPU响应中断才结束。
可以通过软件设置来屏蔽外部中断,即使外部设备有中断请求,CPU可以不予响应。
当外设有中断申请时,在当前指令执行完后,CPU首先查询IF位,若IF=0,CPU就禁止响应任何外设中断;若IF=1,CPU就允许响应外设的中断请求。
不可屏蔽中断由引脚NMI引入,边沿触发,上升沿之后维持两个时钟周期高电平有效。
不能用软件来屏蔽的,一旦有不可屏蔽中断请求,如电源掉电等紧急情况,CPU必须予以响应。
2. 列出微处理器上的中断引脚和与中断有关的指令。
答:INTR:可屏蔽中断请求输入引脚。
NMI:不可屏蔽中断请求输入引脚INTA:可屏蔽中断响应引脚INT n :软件中断指令,其中n为中断类型号INTO:溢出中断,运算后若产生溢出,可由此指令引起中断。
CLI:中断标志位IF清0STI:置位中断标志位为13. 8086/8088系统中可以引入哪些中断?答:(1)外部中断两种外部中断:不可屏蔽中断NMI和可屏蔽中断INTR(2)内部中断内部中断又称软件中断,有三种情况引起:①INT n :中断指令引起的中断②CPU的某些运算错误引起的中断:包括除法错中断和溢出中断③由调试程序debug设置的中断:单步中断和断点中断。
4. CPU响应中断的条件是什么?简述中断处理过程。
答:CPU响应中断要有三个条件:外设提出中断申请;本中断位未被屏蔽;中断允许。
可屏蔽中断处理的过程一般分成如下几步:中断请求;中断响应;保护现场;转入执行中断服务子程序;恢复现场和中断返回。
CPU在响应外部中断,并转入相应中断服务子程序的过程中,要依次做以下工作:⑴从数据总线上读取中断类型号,将其存入内部暂存器。
微型计算机原理与接口技术第七章课后答案全文
第七章1. 什么叫中断?什么叫可屏蔽中断和不可屏蔽中断?答:当CPU正常运行程序时,由于微处理器内部事件或外设请求,引起CPU中断正在运行的程序,转去执行请求中断的外设(或内部事件)的中断服务子程序,中断服务程序执行完毕,再返回被中止的程序,这一过程称为中断。
可屏蔽中断由引脚INTR引入,采用电平触发,高电平有效,INTR信号的高电平必须维持到CPU响应中断才结束。
可以通过软件设置来屏蔽外部中断,即使外部设备有中断请求,CPU可以不予响应。
当外设有中断申请时,在当前指令执行完后,CPU首先查询IF位,若IF=0,CPU就禁止响应任何外设中断;若IF=1,CPU就允许响应外设的中断请求。
不可屏蔽中断由引脚NMI引入,边沿触发,上升沿之后维持两个时钟周期高电平有效。
不能用软件来屏蔽的,一旦有不可屏蔽中断请求,如电源掉电等紧急情况,CPU必须予以响应。
2. 列出微处理器上的中断引脚和与中断有关的指令。
答:INTR:可屏蔽中断请求输入引脚。
NMI:不可屏蔽中断请求输入引脚INTA:可屏蔽中断响应引脚INT n :软件中断指令,其中n为中断类型号INTO:溢出中断,运算后若产生溢出,可由此指令引起中断。
CLI:中断标志位IF清0STI:置位中断标志位为13. 8086/8088系统中可以引入哪些中断?答:(1)外部中断两种外部中断:不可屏蔽中断NMI和可屏蔽中断INTR(2)内部中断内部中断又称软件中断,有三种情况引起:①INT n :中断指令引起的中断②CPU的某些运算错误引起的中断:包括除法错中断和溢出中断③由调试程序debug设置的中断:单步中断和断点中断。
4. CPU响应中断的条件是什么?简述中断处理过程。
答:CPU响应中断要有三个条件:外设提出中断申请;本中断位未被屏蔽;中断允许。
可屏蔽中断处理的过程一般分成如下几步:中断请求;中断响应;保护现场;转入执行中断服务子程序;恢复现场和中断返回。
CPU在响应外部中断,并转入相应中断服务子程序的过程中,要依次做以下工作:⑴从数据总线上读取中断类型号,将其存入内部暂存器。
微机原理与接口技术_第7章8253
§7-1 8253的工作原理 ——8253的内部结构和引脚信号
然后,开始递减计数。即每输入一个时钟脉冲,计数
器的值减1,当计数器的值减为0时,便从OUT引脚输出 一个信号。输出信号的波形主要由工作方式决定,同 时还受到从外部加到GATE引脚上的门控信号控制,它 决定是否允许计数。 当用8253作外部事件计数器时,在CLK脚上所加的计 数脉冲是由外部事件产生的,这些脉冲的间隔可以是 不相等的。 如果要用它作定时器,则CLK引脚上应输入精确的时 钟脉冲。这时,8253所能实现的定时时间,决定于计 数脉冲的频率和计数器的初值,即 定时时间=时钟脉冲周期tc×预臵的计数初值n
16
§7-1 8253的工作原理 ——8253的内部结构和引脚信号 ③引脚 8253的3个计数器都各有3个引脚,它们是:
CLK0~CLK2:计数器0~2的输入时钟脉冲从这里输
入。频率不能大于2MHz。
OUT0~OUT2:计数器0~2的输出端。
GATE0~GATE2:计数器0~2的门控脉冲输入端。
4
第七章 可编程计数器/定时器8253及其应用 ——概述 2. 不可编程的硬件定时 555芯片是一种常用的不可编程器件,加上外接电阻和电 容就能构成定时电路。这种定时电路结构简单,价格 便宜,通过改变电阻或电容值,可以在一定的定时范 围内改变定时时间。但这种电路在硬件已连接好的情 况下,定时时间和范围就不能由程序来控制和改变, 而且定时精度也不高。 3. 可编程的硬件定时 ①可编程定时器/计数器电路利用硬件电路和中断 方法控制定时,定时时间和范围完全由软件来确 定和改变,并由微处理器的时钟信号提供时间基 准,这种时钟信号由晶体振荡器产生,故计时精
12
§7-1 8253的工作原理 ——8253的内部结构和引脚信号 8253输入信号组合的功能表
微机原理与接口技术 第7章课后作业答案
串行通信是将数据逐位的传送。其特点是传送速度相对较慢,但设备简单,需要的传输线少,成本较低。 所以常用于远距离通信。
7.9 在对8255的C口进行初始化为按位置位或复位时,写入的端口地址应是( 解:应是(8255的内部控制寄存器)地址。 7.10 某8255芯片的地址范围为A380H~A383H,工作于方式0,A 口、B 口为输出口,现欲将PC4置“0”, PC7置“1”,试编写初始化程序。 解:该8255芯片的初始化程序包括置方式控制字及C口的按位操作控制字。程序如下: MOV DX,0A383H MOV AL,80H OUT DX,AL ;PC4置0 MOV AL,08H ;内部控制寄存器地址送DX ;方式控制字 )地址。
A 13 A 11 A 10 A9 A8
A5 A3 A2
≥1
G2B
C B A 74LS138
(题7.4图)
3
8253的初始化程序如下: MOV DX,0D0D3H
MOV AL,16H
OUT DX,AL MOV AL,74H OUT DX,AL MOV AL,0B4H OUT DX,AL MOV DX,0D0D0H MOV AL,20 OUT DX,AL
1
7.3 8253可编程定时/计数器有两种启动方式,在软件启动时,要使计数正常进行,GATE端必须为( )电平, 如果是硬件启动呢? 解:在软件启动时,要使计数正常进行,GATE端必须为高电平;如果是硬件启动,则要在写入计数初值后使 GATE端出现一个由低到高的正跳变,以启动计数。 7.4 若8253芯片的接口地址为D0D0H~D0D3H,时钟信号频率为2MHz。现利用计数器0、1、2分别产生周期为 10us的对称方波及每1ms和1s产生一个负脉冲,试画出其与系统的电路连接图,并编写包括初始化在内的程 序。 解:根据题目要求可知,计数器0(CNT0)工作于方式3,计数器1(CNT1)和计数器2(CNT2)工作于方式2。 时钟频率2MHz,即周期为0.5us,从而得出各计数器的计数初值分别为:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19
例
用程序实现
1234H + 5678H
value
34H 12H 78H 56H
data SEGMENT value DW 1234H, 5678H result DW ? data ENDS code SEGMENT result ASSUME CS:code, DS:data start: MOV AX, data ;给DS赋值 给 赋值 MOV DS, AX MOV AX, value ;取数 取数 ADD AX, value+2 ;两数相加 两数相加 MOV result, AX ;保存结果 保存结果 MOV AH, 4CH ;返回 返回DOS 返回 INT 21H code ENDS END start
例
ASSUME
CS: CC , CS:
DS:AA DS:
▲ ASSUME 伪操作的作用 指示汇编程序指令中用到的标号、 指示汇编程序指令中用到的标号、过程及变量所在 的段。 的段。 对标号、 其中 对标号、过程必须用 CS 段寄存器指示 CS、DS、ES、 对变量可用 CS、DS、ES、SS 段寄存器指示
100 100H -5
DATA-DW
26
12
MESS
41H 42H 43H 44H
注意: 注意 : 3 个及其以 上的字符, 上的字符 , 只能 DB定义 用DB定义 复制操作符定 可用 DUP 复制操作符定 义相同的操作数, 义相同的操作数 , 其格式 为 重复次数 数) DUP( 操作
ABC DEF 32H
18
▲ 若未用ASSUME语句指示指令中用到的标号、 若未用ASSUME语句指示指令中用到的标号、 ASSUME语句指示指令中用到的标号
量所在的段, 汇编程序将给出错误信息。 过程和变 量所在的段, 汇编程序将给出错误信息。
▲ ASSUME语句只起指示作用,并无实际的操作。 ASSUME语句只起指示作用,并无实际的操作。 语句只起指示作用 在程序中引用定义的变量做内存操作数时, 在程序中引用定义的变量做内存操作数时, 需按寻址方式用传送指令( MOV) 需按寻址方式用传送指令(如MOV)给相应的段寄存器 赋值。 赋值。
数据定义伪指令中的表达式也可以是字符串如: MESS DB ‘ABCD’
数据定义伪指令的表达式中会出现“?”数据项 , ABC DEF DB DW ?, ?,
?,50, ?
这时汇编程序会对“?”数据项保留相应的存储 空间,而不存入数据。 11
DATA-BYTE
DATA-WORD
0AH 04H 10H 64H 00H 00H 01H FBH FFH 1AH 00H 00H 00H
8
例如:EMP COUNT
EQU EQU =
8 EMP+6 表达式
2、等号语句: 、等号语句: 格式 符号名
作用是用符号名等值指定的表达式, 作用是用符号名等值指定的表达式, 定义的符号名可重新定义。 用“=”定义的符号名可重新定义。 定义的符号名可重新定义 例如: NMU=6 : NMU=NMU+6
9
二、数据定义伪指令
格式 变量名 助记符 操作数 [ ,操作数 , ... ]
▲ 用来定义程序中所用的内存操作数。 用来定义程序中所用的内存操作数。
其中变量名指示内存操作数的地址(符号地址) 其中变量名指示内存操作数的地址(符号地址) 变量名指示内存操作数的地址 助记符指示内存操作数的类型 ( 字节、 双字等) 助记符 指示内存操作数的类型( 字节 、 字 、 双字等 ) 指示内存操作数的类型 操作数指示内存操作数的内容 指示内存操作数的内容。 操作数指示内存操作数的内容。
2
汇编语言上机过程 D:>EDIT ABC.asm D:>MASM ABC; 有语法错,回EDIT下改该程序 有语法错, 下改该程序 D:>LINK ABC; 有错,回在EDIT下改程序 有错,回在 下改程序 D:>ABC 运行结果错, 运行结果错,回EDIT下改程序 下改程序 或在DEBUG下调试,找原因。 下调试,找原因。 或在 下调试 D:>DEBUG ABC.exe
15
格式
段名
数据传送源程序: 数据传送源程序: AA SEGMENT ;数据段 数据段1 数据段 str1 DB 'Hello!’ AA ENDS BB SEGMENT ;数据段 数据段2 数据段 str2 DB 6 dup (?) BB ENDS CC SEGMENT ;代码段 代码段 ASSUME CS:CC ASSUME DS: AA, ES: BB start: CLD MOV AX , AA MOV DS , AX LEA 、等值语句: 、等值语句: 格式 符号名 EQU 表达式 ▲作用是用符号名等值指定的表达式 作用是用符号名等值指定的表达式 其中表达式可以是任何有效的操作数 汇编时用语句中的表达式代替程序中符号所在的 地方。 地方。 ▲应用: 应用: 应用 1. 定义符号常量,方便修改程序。 定义符号常量,方便修改程序。 某表达式多次出现时, 2. 某表达式多次出现时 , 用等值伪指令可以方 便编程。 便编程。
1
上机环境
用户开发的程序: 用户开发的程序:ABC.exe等 等
应用软件 系统软件 硬件
操作系统: 操作系统:DOS系统 系统 编辑器: 编辑器: EDIT.exe 编程序: 编程序: MASM.exe 连接程序: 连接程序:LINK.exe 调试程序: 调试程序:DEBUG.exe
CPU、存储器(ROM、RAM)、I/O接口、输入、输出设备 、存储器 接口、 、 、 接口 输入、
3
编辑源程序EDIT ABC.ASM 汇编源程序MASM ABC.ASM 形成目标程序ABC.OBJ 连接目标程序LINK ABC.OBJ 形成可执行程序ABC.EXE 运行程序 用DEBUG调试
4
§7.2伪指令(指示性语句) 7.2伪指令(指示性语句) 伪指令
伪指令是汇编语言程序中的指示性语句, 伪指令是汇编语言程序中的指示性语句,它体 指示性语句 现程序员的汇编意图, 现程序员的汇编意图,其作用是在源程序汇编时指 导汇编程序汇编而不会产生目标代码和占用内存。 导汇编程序汇编而不会产生目标代码和占用内存。 伪指令的具体功能是向汇编程序提供下列信息: 伪指令的具体功能是向汇编程序提供下列信息:如 何分段、段的定义和说明,段间关系, 何分段、段的定义和说明,段间关系,模块的定义 和说明以及模块间的关系,数据的定义, 和说明以及模块间的关系,数据的定义,开始汇编 和结束汇编等。 和结束汇编等。
第七章 汇编语言程序设计
用指令助记符、标号、寄存器名、数字等 符号构成的编写程序的语言叫汇编语言。汇编语 言是机器语言的符号表示,它比机器语言好读, 比高级语言占用的内存少、执行速度快。因此汇 编语言总是程序设计的重要手段。 §7.1概述 概述 用汇编语言编写的程序叫汇编语言程序,简 称源程序。 机器语言程序称目标程序。 将源程序翻译成目标程序的过程叫做汇编。
例 EE DB 3 DUP ( 4 )
等价于EE DB 4, 4, 4 等价于
13
复制操作符定义相同的操作数 定义相同的操作数, 可用 DUP 复制操作符定义相同的操作数,其 格式为 操作数) 重复次数 DUP( 操作数
例 EE DB 3 DUP ( 4 )
等价于EE DB 4, 4, 4 等价于 例:ED DB 10 DUP (?)
相当于定义10个空单元。 相当于定义 个空单元。 个空单元
14
三、段定义伪操作
定位类型][组合类型][类别] ][组合类型][类别 SEGMENT [定位类型][组合类型][类别] 、、、 、、、 段名 ENDS ▲ 段定义由伪操作SEGMENT开始、ENDS结束。 段定义由伪操作SEGMENT开始、ENDS结束 SEGMENT开始 结束。 其中: 必须成对出现, 其中: SEGMENT 和ENDS 必须成对出现 , 且语句前 必须有段名,段名必须相同。 必须有段名,段名必须相同。 ▲ SEGMENT和ENDS语句之间可以有指令和其他伪操作, SEGMENT和ENDS语句之间可以有指令和其他伪操作 语句之间可以有指令和其他伪操作, 表示存放在该段内存的变量、 表示存放在该段内存的变量、指令或其他伪操作对 该段内存的处理 ▲ 程序中可以定义多个段。 程序中可以定义多个段。 ▲ 程序经汇编 、 连接及装入内存后 , 段名为一具体的 程序经汇编、 连接及装入内存后, 段值。 段值。
20
五、过程定义伪操作 格式 过程名 PROC 类型 、、、 过程名 ENDP ▲ 过程定义由伪操作PROC开始、ENDP结束。 过程定义由伪操作PROC开始、ENDP结束 PROC开始 结束。 其中: 必须成对出现, 其中: PROC 和ENDP 必须成对出现, 且语句前必须有过程名,过程名必须相同。 且语句前必须有过程名,过程名必须相同。 ▲ PROC和ENDP语句之间为子程的指令序列。 PROC和ENDP语句之间为子程的指令序列。 语句之间为子程的指令序列 ▲ 程序中可以定义多个过程。 程序中可以定义多个过程。 ▲ 程序经汇编、连接及装入内存后, 程序经汇编、连接及装入内存后, 过程名为一具体的内存地址, 指示子程入口。 过程名为一具体的内存地址 , 指示子程入口 。
例 MOV
code MOV
AX,
4 + 8
中的+ 中的+ 中的SEGMENT 中的SEGMENT string 中的OFFSET 中的OFFSET
SEGMENT BX, OFFSET
6
指示性语句与指令性语句区别 一个程序经汇编,连接和装入内存后, 一个程序经汇编,连接和装入内存后,在执行程 序之前: 序之前: ◢指示性语句的功能已经完成,故又称伪指令。 指示性语句的功能已经完成,故又称伪指令。 CPU去执 ◢而指令性语句的功能尚未完成,需控制CPU去执 而指令性语句的功能尚未完成,需控制CPU 才能完成。 行,才能完成。