微机原理程序 (2)
微机原理实验2程序字符串匹配实验
8086汇编语言程序实验:实验二、字符串匹配实验题目:1、(必做题)编程实现:从键盘分别输入两个字符串(不必等长),然后进行比较,若两个字符串有相同的字符,则显示“MATCH”,若字符都不相同则显示“NO MATCH”。
2、(选做题)编程实现:从键盘分别输入两个字符串,然后进行比较,若两个字符串的长度和对应字符都完全相同,则显示“MATCH”,否则显示“NO MATCH”。
对应程序如下所示:;第1题;====================================HUICHE MACRO ;定义一个具有回车、换行功能的宏,为程序多次回车换行所调用。
MOV DL,0DH ;用2号功能“显示”回车。
MOV AH,02HINT 21HMOV DL,0AH ;用2号功能“显示”换行。
MOV AH,02HINT 21HENDMDA TA SEGMENTMESSAGE1 DB 'MATCH','$' ;定义“MATCH”提示信息,“$”作为调用9号功能的结束符。
MESSAGE2 DB 'NO MATCH','$' ;定义“NO MA TCH”提示信息。
TISHI1 DB 'Please input the first string:','$' ;提示输入第1个字符串的提示信息。
TISHI2 DB 'Please input the second string:','$' ;提示输入第1个字符串的提示信息。
STRING1 DB 100 ; 100为存第一个字符串的最大可用空间的字节数。
DB ? ;预留字节,存储将要输入的第1个字符串的实际长度。
DB 100 DUP(?) ;预留100个字节空间,用于存放第1个字符串。
STRING2 DB 100DB ?DB 100 DUP(?)DA TA ENDSSTACK SEGMENT ;定义一个50字节大小的堆栈段空间。
微机原理第2章 习题答案
第2章习题参考答案18086CPU由哪两部分构成它们的主要功能是什么答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。
指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成。
其主要功能是执行指令。
总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成。
其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。
2.8086CPU预取指令队列有什么好处8086CPU内部的并行操作体现在哪里答:8086CPU的预取指令队列由6个字节组成。
按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。
:从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。
8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取并送到指令队列。
3. 8086CPU中有哪些寄存器各有什么用途答:CPU有14个内部寄存器,可分为3大类:通用寄存器、控制寄存器和段寄存器。
通用寄存器是一种面向寄存器的体系结构,操作数可以直接存放在这些寄存器中,既可减少访问存储器的次数,又可缩短程序的长度,提高了数据处理速度,占用内存空间少。
指令执行部件(EU)设有8个通用寄存器:AX:累加器,一般用来存放参加运算的数据和结果,在乘、除法运算、I/O操作、BCD数运算中有不可替代的作用BX:基址寄存器,除可作数据寄存器外,还可放内存的逻辑偏移地址CX:计数寄存器,既可作数据寄存器,又可在串指令和移位指令中作计数用DX:DX除可作通用数据寄存器外,还在乘、除法运算、带符号数的扩展指令中有特殊用途#源变址寄存器SI:多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在DS寄存器中,也可放数据目标变址寄存器DI:多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在DS寄存器中,也可放数据基址指针BP:用于存放内存的逻辑偏移地址,隐含的逻辑段地址在SS寄存器中堆栈指针SP:用于存放栈顶的逻辑偏移地址,隐含的逻辑段地址在SS寄存器中控制寄存器包括指令指针寄存器IP和标志寄存器FLAG:IP用来指示当前指令在代码段的偏移位置。
微机原理2-2
接着判断FLAG寄存器中CF和ZF标志进行分支转移。
《微机原理与接口技术》教学课件 7
2) 修改属性运算符
使用格式
类型说明符 PTR 地址表达式
P.81
使用说明
若(DS)=2000H,(BX)=1000H,(210001H)=02H MOV byte ptr [BX],5
Buf2 dw 1234H,5678H,9000H
思考:
Dseg Ends ,
1. Buf1中10H元素的偏移地址为 2. Buf1中10H元素的物理地址为
Buf2中第一个元素的低8位34H的偏移地址为
, Buf2中第一个元素的低8位34H的物理地址为
《微机原理与接口技术》教学课件
。
。
25
⑤ 程序结束伪指令( End )
《微机原理与接口技术》教学课件 21
② 段分配(约定)伪指令( Assume )
格式:Assume 段寄存器:段名 [, 段寄存器:段名 ,···] ···
P.77
功能:说明源程序中定义的段由哪个段寄存器去寻址。
应用:数据段用DS,代码段用CS,堆栈段用SS,附加段用ES。
应用举例:
段定义 Cseg Segment ‘code’ Assume CS:Cseg , SS:Sseg, DS:Dseg (段体:程序设计) Cseg Ends
通常使用‚缺省‛参数。
《微机原理与接口技术》教学课件 20
类别
数据段 —— ‘Data’ 代码段 —— ‘Code’ 堆栈段 —— ‘Stack’
P.76
微机原理-第6章(2)
四.扩展存储器设计
Note:8086 CPU同8088 CPU一样,也有20条地址总线,其寻 8086 CPU同 CPU一样 也有20条地址总线, 一样, 20条地址总线 址能力达1MB。不同之处是8086 数据总线是16位的, 16位的 址能力达1MB。不同之处是8086 CPU 数据总线是16位的, 与8086 CPU对应的1MB存储空间可分为两个512kB(524 288 CPU对应的1MB存储空间可分为两个512kB(524 对应的 存储空间可分为两个512 B)的存储体。其中一个存储体由奇地址的存储单元(高字节) B)的存储体。其中一个存储体由奇地址的存储单元(高字节) 的存储体 奇地址的存储单元 组成,另一个存储体由偶地址的存储单元(低字节)组成。 组成,另一个存储体由偶地址的存储单元(低字节)组成。 偶地址的存储单元 前者称为奇地址的存储体,后者称为偶地址的存储体。 前者称为奇地址的存储体,后者称为偶地址的存储体。
≈
0
≈ ≈
0 0
0
0
0
0
0
0
0 1…1
作片外寻址的高位不变地址线全部 参加了译码,这种译码方法称为全 参加了译码,这种译码方法称为全 地址译码方法 方法。 地址译码方法。
片外寻址
四.扩展存储器设计
A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9~A0 X 0 0 0 0 0 0 0 0 0 0…0
4KB 00000H 00FFFH
≈
●
模块1 模块
微机原理第2章课后答案
第2章8086微处理器及其系统教材习题解答1. 8086 CPU 由哪两部分构成,它们的主要功能是什么?在执行指令期间,EU 能直接访问存储器吗,为什么?【解】8086CPU由执行部件(EU)和总线接口部件(BIU)两部分组成。
执行部件由内部寄存器组、算术逻辑运算单元(ALU)与标志寄存器(FR)及内部控制逻辑等三部分组成。
寄存器用于存储操作数和中间结果;算术逻辑单元完成16位或8位算术逻辑运算,运算结果送上ALU内部数据总线,同时在标志寄存器中建立相应的标志;内部控制逻辑电路的主要功能是从指令队列缓冲器中取出指令,对指令进行译码,并产生各种控制信号,控制各部件的协同工作以完成指令的执行过程。
总线接口部件(BIU)负责CPU与存储器、I/O设备之间传送数据、地址、状态及控制信息。
每当EU部件要执行一条指令时,它就从指令队列头部取出指令,后续指令自动向前推进。
EU要花几个时钟周期执行指令,指令执行中若需要访问内存或I/O设备,EU就向BIU 申请总线周期,若BIU总线空闲,则立即响应,若BIU正在取一条指令,则待取指令操作完成后再响应EU的总线请求。
2. 8086CPU与传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?【解】8086 CPU与传统的计算机相比增加了指令队列缓冲器,从而实现了执行部件(EU)与总线接口(BIU)部件的并行工作,因而提高了8086系统的效率。
3. 8086 CPU 中有哪些寄存器,各有什么用途?【解】8086共有8个16位的内部寄存器,分为两组:①通用数据寄存器。
四个通用数据寄存器AX、BX、CX、DX均可用作16位寄存器也可用作8位寄存器。
用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。
AX(AH、AL)累加器。
有些指令约定以AX(或AL)为源或目的寄存器。
实际上大多数情况下,8086的所有通用寄存器均可充当累加器。
BX(BH、BL)基址寄存器。
微机原理第2章作业及答案
第2章8086微处理器及其系统习题解答1. 8086 CPU 由哪两部分构成,它们的主要功能是什么在执行指令期间,EU 能直接访问存储器吗,为什么【解】8086CPU由执行部件(EU)和总线接口部件(BIU)两部分组成。
执行部件由内部寄存器组、算术逻辑运算单元(ALU)与标志寄存器(FR)及内部控制逻辑等三部分组成。
寄存器用于存储操作数和中间结果;算术逻辑单元完成16位或8位算术逻辑运算,运算结果送上ALU内部数据总线,同时在标志寄存器中建立相应的标志;内部控制逻辑电路的主要功能是从指令队列缓冲器中取出指令,对指令进行译码,并产生各种控制信号,控制各部件的协同工作以完成指令的执行过程。
总线接口部件(BIU)负责CPU与存储器、I/O设备之间传送数据、地址、状态及控制信息。
每当EU部件要执行一条指令时,它就从指令队列头部取出指令,后续指令自动向前推进。
EU要花几个时钟周期执行指令,指令执行中若需要访问内存或I/O设备,EU就向BIU 申请总线周期,若BIU总线空闲,则立即响应,若BIU正在取一条指令,则待取指令操作完成后再响应EU的总线请求。
2. 8086CPU与传统的计算机相比在执行指令方面有什么不同这样的设计思想有什么优点【解】8086 CPU与传统的计算机相比增加了指令队列缓冲器,从而实现了执行部件(EU)与总线接口(BIU)部件的并行工作,因而提高了8086系统的效率。
3. 8086 CPU 中有哪些寄存器,各有什么用途【解】8086共有8个16位的内部寄存器,分为两组:①通用数据寄存器。
四个通用数据寄存器AX、BX、CX、DX均可用作16位寄存器也可用作8位寄存器。
用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。
AX(AH、AL)累加器。
有些指令约定以AX(或AL)为源或目的寄存器。
实际上大多数情况下,8086的所有通用寄存器均可充当累加器。
BX(BH、BL)基址寄存器。
微机原理(第二章 指令系统)
2.3 数据传送指令
数据传送类分为四类: 1. 通用传送: ①基本传送指令 MOV ②堆栈操作 ③交换指令 PUSH XCHG POP
2. 累加器专用传送: ①输入/ 输出 ②换码 3. 地址传送 4. 标志传送
2012-8-9
IN XLAT LEA LAHF
OUT
LDS SAHF
LES PUSHF POPF
19
7000 0
2000 1500 73500
CS段
2012-8-9
④ 变址寻址(相对寻址) 变址寻址适用于对一维数组的元素进行操作 ⑴无比例因子 EA=变址寄存器+位移量 16位寻址:SI,DI为基址寄存器, DS为默认段寄存器
32位寻址:除ESP外其余7个32位通用寄存器均可 作为变址寄存器,EBP默认SS为段寄存器,其余均 默认段寄存器为DS
执行后 AL=35H
完成什么功能?
2012-8-9
27
2. 堆栈操作指令 •PUSH 源操作数 进栈指令,先调整堆栈指针(-2), 再把源操作数压栈 PUSH AX PUSH [SI+5] POP 目标操作数 出栈指令,先将栈顶2字节送目标操作数,再调整 堆栈指针(+2) POP [SI+5] POP AX 注: 只能有16位通用寄存器进栈/出栈指令 •PUSHF POPF 16位标志寄存器进栈/出栈指令
2012-8-9 31
2. 减法指令 •SUB 目标操作数, 源操作数 目标操作数-源操作数——>目标操作数 •SBB 目标操作数, 源操作数 目标操作数-源操作数-CF——>目标操作数 •DEC 目标操作数 目标操作数-1——>目标操作数 •NEG 目标操作数 0-目标操作数——>目标操作数 影响A,C,O,P,S,Z 6个标志位 •CMP 目标操作数, 源操作数 只影响标志位,不改变目标操作数
微机原理第2章答案
第2章习题参考解答1.8086处理器内部一般包括哪些主要部分?8086处理器与其他处理器一样,其内部有算术逻辑部件、控制与定时部件、总线与总线接口部件、寄存器阵列等。
按功能结构可分为两部分,即总线接口单元(BIU)与执行单元(EU)。
BIU主要包括段寄存器、内部通信寄存器、指令指针、6字节指令队列、20位地址加法器和总线控制逻辑电路。
EU主要包括通用寄存器阵列、算术逻辑单元、控制与定时部件等。
2.什么是总线? —般微机中有哪些总线?所谓总线是指电脑中传送信息的一组通信导线,它将各个部件连接成—个整体。
在微处理器内部各单元之间传送信息的总线称为片内总线;在微处理器多个外部部件之间传送信息的总线称为片外总线或外部总线。
外部总线又分为地址总线、数据总线和控制总线。
随着电脑技术的发展,总线的概念越来越重要。
微机中常用的系统总线有PC总线、ISA总线、PCI总线等。
3.什么是堆栈?它有什么用途?堆栈指针的作用是什么?堆栈是一个按照后进先出的原则存取数据的部件,它是由栈区和栈指针组成的。
堆栈的作用是:当主程序调用子程序、子程序调用子程序或中断时转入中断服务程序时,能把断点地址及有关的寄存器、标志位及时正确地保存下来,并能保证逐次正确地返回。
堆栈除了有保存数据的栈区外,还有一个堆栈指针SP,它用来指示栈顶的位置。
假设是“向下生成”的堆栈,随着压入堆栈数据的增加,栈指针SP的值减少。
但SP始终指向栈顶。
4.在8086 CPU中,FR寄存器有哪些标志位?分别说明各位的功能。
8086 CPU中设置了一个16位的标志寄存器FR,其中用了9位,还有7位保留。
9位中有3位作为控制标志,6位作为状态标志。
IF:中断控制标志。
当IF=1时,允许可屏蔽中断请求;当IF=0时,禁止可屏蔽中断请求。
TF:单步运行标志。
当TF=1,单步运行;TF=0,连续运行程序。
DF:方向标志。
当DF=0,串操作时地址按增量修改;DF=1,地址按减量修改。
微机原理第二章习题答案
《微处理器系统原理与嵌入式系统设计》第二章习题解答2.2 选择题(1) 下列无符号数中最小的数是( A )。
A.H(1,1011,0101)(01A5)B.B(3764)C.D(2590)D.O(2) 下列无符号数中最大的数是( B )。
A.B(10010101)B.O(227)C.H(96)D.D(143)(3) 在机器数( A )中,零的表示形式是唯一的。
A.补码B.原码C.补码和反码D.原码和反码(4) 定点8位字长的字,采用2的补码形式时,一个字所能表示的整数范围为( A )。
A.-128~+127 B.-127~+127C.-129~+128 D.-128~+128(5) 若下列字符码(ASCII)中有奇偶校验位,但没有数据错误,那么采用偶校验的字符码是( D )。
A.B.C. D.(6) 单纯从理论出发,计算机的所有功能都可以交给硬件实现。
而事实上,硬件只实现比较简单的功能,复杂的功能则交给软件完成。
这样做的理由是( BCD )。
A.提高解题速度B.降低成本C.增强计算机的适应性,扩大应用面D.易于制造(7) 编译程序和解释程序相比,编译程序的优点是( D ),解释程序的优点是( C )。
A.编译过程(解释并执行过程)花费时间短B.占用内存少C.比较容易发现和排除源程序错误D.编译结果(目标程序)执行速度快(8) 计算机的存储器采用分级存储体系的主要目的是( D )。
A.便于读写数据B.减小机箱的体积C.便于系统升级D.解决存储容量、价格和存取速度之间的矛盾(9) 在多级存储体系中,cache-主存结构的作用是解决( D )问题。
A.主存容量不足B.主存与辅存速度不匹配C.辅存与CPU速度不匹配D.主存与CPU速度不匹配(10) 下列说法中正确的是( CD )。
A.虚拟存储器技术提高了计算机的速度B.cache与主存统一编址,cache的地址空间是主存地址空间的一部分C.主存是由易失性的随机读写存储器构成的D.cache的功能全部由硬件实现(11) 在CPU与外设之间设计接口电路的目的主要有( ABCD )。
微机原理第02章1
第2章: 溢出和进位的对比
例1:3AH+7CH=B6H
无符号数运算: 58+124=182 范围内,无进位 有符号数运算: 58+124=182 范围外,有溢出
例2:AAH+7CH=(1)26H
无符号数运算: 170+124=294 范围外,有进位 有符号数运算: -86+124=28 范围内,无溢出
常用来存放双字长数据的高16位,或存放外设端口地址
第2章:(2)变址寄存器
16位变址寄存器SI和DI 常用于存储器变址寻址方式时提供地址
SI是源地址寄存器(Source Index) DI是目的地址寄存器(Destination Index)
在串操作类指令中, SI 、 DI 还有较特殊的 用法 现在不必完全理解,以后会详细展开
第2章:溢出和进位的应用场合
处理器对两个操作数进行运算时,按照无 符号数求得结果,并相应设置进位标志 CF; 同时,根据是否超出有符号数的范围设置 溢出标志OF 应该利用哪个标志,则由程序员来决定。 也就是说,如果将参加运算的操作数认为 是无符号数,就应该关心进位;认为是有 符号数,则要注意是否溢出
第2章:符号标志SF(Sign Flag)
运算结果最高位为1,则SF=1; 否则SF=0
有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态
3AH+7CH=B6H,最高位D7=1:SF=1
84H+7CH=(1)00H,最高位D7=0:SF=0
第2章:奇偶标志PF(Parity Flag)
第2章:辅助进位标志AF(Auxiliary Carry Flag)
运算时D3位(低半字节)有进位或
借位时,AF=1;否则AF=0
这个标志主要由处理器内部使用, 用于十进制算术运算调整指令中, 用户一般不必关心 3AH+7CH=B6H,D3有进位:AF=1
微机原理第二章习题答案
1. 8086CPU内部由哪两部分组成?它们的主要功能?8086CPU由指令执行部件EU和总线接口部件BIU两部分组成。
EU完成指令译码和指令执行的工作,BIU是CPU与外部(存储器和I/O口)的接口,它提供了16位双向数据总线和20位地址总线,完成所有的外部总线操作。
具有地址形成、取指令、指令排队、读/写操作数、总线控制等功能。
2.8080CPU中有哪些寄存器?各有什么用途?答:8086CPU的寄存器有通用寄存器组、指针和变址寄存器、段寄存器、指令指针寄存器及标志位寄存器PSW。
4个16位通用寄存器,它们分别是AX,BX,CX,DX,用以存放16位数据或地址。
也可分为8个8位寄存器来使用,低8位是AL、BL、CL、DL,高8位是AH、BH、CH、DH,只能存放8位数据,不能存放地址。
指针和变址寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。
段寄存器给出相应逻辑段的首地址,称为“段基址”。
段基址与段内偏移地址结合形成20位物理地址。
指令指针寄存器用来存放将要执行的下一条指令在现行代码中的偏移地址。
16位标志寄存器PSW用来存放运算结果的特征,常用作后续条件转移指令的转移控制条件。
3.8086CPU与8088CPU的主要区别是什么?答:(1)8086的指令队列是6字节,8088是4字节;(2)8088与外部交换数据的总线宽度是8位,所以,对16位数的存储器读/写需要2个总线周期,8086是16位;AD~(3)8088外部数据总线只有8条,所以分时复用的地址/数据总线为7AD;(4)8088中,用IO/M信号代替M/IO;(5)8088中,不需要BHE信号。
4. 简要解释下列名词的意义。
CPU:中央处理单元CPU (Control Processing Unit)也称微处理器,是微型计算机的核心部件,由运算器ALU、控制器、寄存器组以及总线接口等部件组成。
主要完成各种运算,负责对整机的控制。
微机原理作业二及答案
一.选择题1.用一条指令仅实现将BX+SI=>AX的方法是()(1)XCHG AX,[BX][SI] (2)MOV AX,[BX+SI](3)LEA AX,BX[SI] (4)LEA AX,[BX][SI]2.将DX:AX构成的双字(有符号数)除以2的指令为( )(1)SAR AX.,1 (2)SHR AX,1RCR DX,1 RCR DX,1(3) SAR DX,1 (4) SHRDX,1RCR AX, 1 RCR AX,13.不能使AX和CF同时清零的指令是()(1) SUB AX,AX(2)CMP AX,AX(3)XOR AX,AX(4)AND AX,0 4.不使用AL寄存器的指令是()(1)XLAT (2)AAA (3)STOBS (4)SAHF5.如(SP)=1FFEH,求执行程序段后的(SP)=()PUSH AXPUSH DXPOP CXPOP BXCALL BX(1)(SP)=1FFAH(2)(SP)=1FFCH(3)(SP)=2002H(4)(SP)=2000H6.对寄存器AX的内容乘以4的正确指令序列是()。
A、SHR AX,1 SHR AX,1B、SHL AX,1 SHL,AX,1C、ROL AX,1 ROL AX,1D、RCR AX,1 RCR AX,17.进行除法运算时,可使用字节或字的扩展指令(CBW和CWD),这两条指令对标志寄存器()。
(1) AF,CF有影响(2)CF,ZF有影响(3)对标志寄存器各位均有影响(4)对标志寄存各位均无影响8.下面有语法错误的指令是( )a. ADD AL,AHb. ADD [BX+3],ALc. ADD AH,[DI]d. ADD [BP+2],DA1(DA1是变量名)9.完成对DX的有符号数除以2的指令是( )a. IDIV 2b. SAR DX,1c. SHR DX,1d. RCR DX,110.使进位位置1的指令是( )a. CLCb. CMCc. STCd. NOP11.设AL=-15,要使AL=15应执行的指令是( )a. NEG ALb. NOT ALc. INC ALd. DEC AL12.在条件转移指令中,结果为负数则转移的指令是( )a. JNSb. JXc. JSd. JP13..下面的XCHG指令中,语法正确的是( )a. XCHG AL,DSb. XCHG BL,[BX]c. XCHG AL,0FHd. XCHG BUF1,BUF214.一条指令中目的操作数不允许使用的寻址方式是( )a. 寄存器寻址b. 立即数寻址c. 变址寻址d. 寄存器间接寻址15.设SP=1FFEH,执行下列指令后,SP寄存器的值是( )POPFPUSH AXa. 2000Hb. 2002Hc. 1FFCHd. 1FFEH16.LDS SI,ES:[2000H]指令的全部功能是( )a. 把地址2000H送SIb. 把地址2000H字单元的内容送SIc. 把地址2000H字单元内容送SI,把2002H字单元内容送DSd. 把地址2000H字单元内容送DS,把2002H字单元内容送SI17.设AL=04H,BL=0F8H,执行MUL BL指令后,结果是( )a. AX=0032Hb. AX=00E0Hc. AX=03E0Hd. AX=0FFE0H18.设ES=3000H,DI=00FFH,CX=0005H,AL=41H,DF=0,从300FFH开始的连续5个字节单元内容分别是44H,43H,42H,41H,41H. 执行REPNZ SCASB指令后,正确的结果是( )a. DI=0104H,CX=0000Hb. DI=0103H,CX=0001Hc. DI=0102H,CX=0002Hd. DI=0101H,CX=0003H19. BUF DW 10H DUP(3 DUP(2,10H),3,5)上述语句汇编后,为变量BUF分配的存储单元字节数是()。
第六章 存储器系统 微机原理 第2版 课后答案
第六章存储器系统本章主要讨论内存储器系统,在介绍三类典型的半导体存储器芯片的结构原理与工作特性的基础上,着重讲述半导体存储器芯片与微处理器的接口技术。
6.1 重点与难点本章的学习重点是8088的存储器组织;存储芯片的片选方法(全译码、部分译码、线选);存储器的扩展方法(位扩展、字节容量扩展)。
主要掌握的知识要点如下:6.1.1 半导体存储器的基本知识1.SRAM、DRAM、EPROM和ROM的区别RAM的特点是存储器中信息能读能写,且对存储器中任一存储单元进行读写操作所需时间基本上是一样的,RAM中信息在关机后立即消失。
根据是否采用刷新技术,又可分为静态RAM(SRAM)和动态RAM(DRAM)两种。
SRAM是利用半导体触发器的两个稳定状态表示“1”和“0”;DRAM是利用MOS管的栅极对其衬间的分布电容来保存信息,以存储电荷的多少,即电容端电压的高低来表示“1”和“0”;ROM的特点是用户在使用时只能读出其中信息,不能修改和写入新的信息;EPROM可由用户自行写入程序和数据,写入后的内容可由紫外线照射擦除,然后再重新写入新的内容,EPROM可多次擦除,多次写入。
一般工作条件下,EPROM 是只读的。
2.导体存储器芯片的主要性能指标(1)存储容量:存储容量是指存储器可以容纳的二进制信息量,以存储单元的总位数表示,通常也用存储器的地址寄存器的编址数与存储字位数的乘积来表示。
(2)存储速度:有关存储器的存储速度主要有两个时间参数:TA:访问时间(Access Time),从启动一次存储器操作,到完成该操作所经历的时间。
TMC:存储周期(Memory Cycle),启动两次独立的存储器操作之间所需的最小时间间隔。
(3)存储器的可靠性:用MTBF—平均故障间隔时间(Mean Time Between Failures)来衡量。
MTBF越长,可靠性越高。
(4)性能/价格比:是一个综合性指标,性能主要包括存储容量、存储速度和可靠性。
32位微机原理第2章微机运算基础
1 24 0 23 1 22 1 21 1 20 23D
结果:二进制整数10111,转化为十进制数23
21
2.2.1 任意进制转换为十进制
二进制数转换为十进制数 小数部分(从最低位开始,连续除2) 假设4位二进制整数N,表示为
N K K 1 2 K3K4
K1 21 K2 22 K3 23 K4 24
把02H单元内容
CPU发出读 指令
04H读到DB上
5
程序执行过程实例(执行第2条指令操作)
A中内容送至ALU中的输入
相加结果05H,由 ALU输入端O,送至
累加器A
PC自动加 1
+1
②
PC 0000 0011
PC内容 03H送AR
①
AR 0000
ALU
O
I2
I1
⑧
0000 0101
⑨
端I1,并执行加法操作
中02H单元
读④
ALU
O
I2
I1
A
…
指令译码
PLA
ADD A,n
ID RA
0000 0100 IR
⑦
内部DB
1011 0000 0000 0011 0000 0100 0000 0010 1111 0100
⑥ 0000 DR
0100
把读出的内容
04H,经DB送到
0000 0100 DB
⑤
DR 读命令控制下,
例如:(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2 = (5.75)10
(1111)2=?
n位二进制无符号整数表示范围: 0—(2n-1)
微机原理及应用 第2章 习题及答案
CH02 8086/8088指令系统习题与思考题1.假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量V AL的偏移地址为0050H,请指出下列指令源操作数是什么寻址方式?源操作数在哪里?如在存储器中请写出其物理地址是多少?(1)MOV AX,0ABH (2)MOV AX,[100H](3)MOV AX,V AL (4)MOV BX,[SI](5)MOV AL,V AL[BX] (6)MOV CL,[BX][SI](7)MOV V AL[SI],BX (8)MOV [BP][SI],100解答:(1)MOV AX,0ABH寻址方式:立即寻址;源操作数在数据线上;物理地址:无(2)MOV AX,[100H]寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*16+100H=2000H*16+100H=20100H(3)MOV AX,V AL寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*16+V AL=2000H*16+0050H=20050H(4)MOV BX,[SI]寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址:DS*16+SI=2000H*16+00A0H=200A0H(5)MOV AL,V AL[BX]寻址方式:变址寻址;源操作数在存储器中;物理地址:DS*16+V AL+BX=2000H*16+0050H+0100=20150H(6)MOV CL,[BX][SI]寻址方式:基址加变址寻址;源操作数在存储器中;物理地址:DS*16+BX+SI=2000H*16+0100H+00A0H=201A0H(7)MOV V AL[SI],BX寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无(8)MOV [BP][SI],100寻址方式:立即寻址;源操作数在;物理地址:无2.设有关寄存器及存储单元的内容如下:DS=2000H,BX=0100H,AX=1200H,SI=0002H,[20100H]=12H,[20101H]=34H,[20102H]=56H,[20103]=78H,[21200]=2AH,[21201H]=4CH,[21202H]=0B7H,[21203H]=65H。
微机原理及应用课件第2章
四、内部寄存器
内部寄存器的类型
含14个16位寄存器,按功能可分为三类
8个通用寄存器 4个段寄存器 2个控制寄存器
深入理解:每个寄存器中数据的含义
28
1. 通用寄存器
数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI)
29
数据寄存器
8088/8086含4个16位数据寄存器,它们又可分为8个 8位寄存器,即:
DX:
数据寄存器。在间接寻址的I/O指令中存放I/O端口地址;在 32位乘除法运算时,存放高16位数。
地址指针寄存器
SP:堆栈指针寄存器,其内容为栈顶的偏移地址; BP:基址指针寄存器,常用于在访问内存时存放内存单
元的偏移地址。
BP与BX的区别:
作为通用寄存器,二者均可用于存放数据; 作为基址寄存器,用BX表示所寻找的数据在数据段;用
┇
操作数
35
状态标志位(1)
CF(Carry Flag)
进位标志位。加(减)法运算时,若最高位有进(借)位则CF=1
OF(Overflow Flag)
溢出标志位。当算术运算的结果超出了有符号数的可表达范 围时,OF=l
ZF(Zero Flag)
零标志位。当运算结果为零时ZF=1
SF(Sign Flag)
欲实现对1MB内存空间的正确访问,每个内
存单元在整个内存空间中必须具备20位字长
的惟一地址
物理地址
XXXXXH
12H
00H
内存地址变换:
…
如何将直接产生的16位编码变换
…
为20位物理地址?
┇
内存单元的编址(1)
内存每个单元的地址在逻辑上都由两部分组成:
微机原理课后习题答案
第一章学习指导:1.掌握十六进制、二进制、BCD(十进制数)、ASCII码2.掌握有符号数(补码、原码)、无符号数计算机的表示方法以及表示范围3.掌握补码运算4.了解计算机基本组成及工作原理5.了解新技术6.了解计算机主要性能指标2、完成下列数制之间的转换。
(1)01011100B=92D (3)135D=10000111B (5)10110010B=262Q=B2H3、组合型BCD码和非组合型BCD码有什么区别?写出十进制数254的组合型BCD数和非组合型数。
答:组合型BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;非组合型BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9。
组合型:254=(001001010100)BCD非组合型:254=(00000010 00000101 00000100)BCD7、计算机为什么采用补码形式存储数据?当计算机的字长n=16,补码的数据表示范围是多少?答:在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。
+32767~ -32768。
9、设计算机字长n=8,求下列各式的[X+Y]补和[X-Y]补,并验证计算结果是否正确。
(1)X=18,Y=89 [X+Y]补=00010010+01011001=01101011B=107D 正确[X-Y]补=10111001B=00010010+10100111=(-71D)补正确(2)X=-23,Y=-11 [X+Y]补=11101001+11110101=11011110B=(-34D)补正确[X-Y]补=11101001+00001011=11110100B=(-12D)补正确(3)X=18,Y=-15 [X+Y]补=00010010+11110001=00000011B=(3D)补正确[X-Y]补=00010010+00001111=00100001B=(33D)补正确(4)X=-18,Y=120 [X+Y]补=11101110+01111000=01100110B=(102D)补正确[X-Y]补=11101110+10001000=01110110B=(123D)补由于X-Y=-138 超出了机器数范围,因此出错了。
微机原理第六章 输入输出和中断技术 part 2 (2)
中断处理的一般过程
6.4.3 8088/8086中断系统
8086/8088为每个中断源分配 一个中断类型码(中断向量码),其取值范围为 0~255,实际可处理56种中断。其中包括软件中断,系统占用的中断,已经开放 给用户使用的中断。所有中断又可分为两大类:内部中断和外部中断。
内部中断
6.4.2 中断处理的一般过程
1. 中断请求 2. 中断源识别及中断判优 3. 中断响应 4. 中断处理(服务) 5. 中断返回
1. 中断请求 ➢ INTR中断请求信号应保持到中断被处理为止 ➢ CPU响应中断后,中断请求信号应及时撤销
2. 中断源识别 ➢ 软件判优:由软件来安排中断源的优先级别。顺序查询中断请求,先查询的
➢ (4)能向存储器或外设发出读/写命令。 ➢ (5)能决定传送的字节数,并判断DMA传送是否结束。 ➢ (6)在DMA过程结束后,能向CPU发出DMA结束信号,将总线控制权交
还给CPU。
2. DMA控制器的工作过程 ➢ (1)当外设准备好,可以进行DMA传送时,外设向DMA控制器发出
“DMA传送请求”信号DRQ ➢ (2)DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD ➢ (3)CPU在完成当前总线周期后会立即发出HLDA信号,对HOLD信号进
➢ (2)单步中断——1型中断,标志寄存器中有一位陷阱标志TF。 ➢ (3)断点中断——3型中断,专用于设置断点的指令INT 3,用于程序中设
置断点来调试程序。
➢ (4)溢出中断——4型中断,在算数指令的执行过程发出溢出 ➢ (5)用户自定义的软件中断——n型中断,执行中断指令INT n引起内部中
断。
需要时,CPU回到原来被中断的地方继续执行自己的程序。 优点: ➢ CPU效率高,实时性好 缺点 ➢ 程序编制相对较为复杂
微机原理第2章习题答案
答案:I/O读
10.在最小模式下,执行“OUT DX, AL”指令时, 、 、 、 的状态分别是___。Biblioteka 答案:0, 0, 1, 1
11.8086CPU从偶地址读写两个字节时,需要_____个总线周期,从奇地址读取两个字节时,需要_____个总线周期。
习题
一、选择题
1.8086/8088CPU内部有一个始终指示下条指令偏移地址的部件是_______。
A. SPB.CSC.IPD.BP
答案:C
2.指令队列的作用是_________。
A.暂存操作数地址B.暂存操作数C.暂存指令地址D.暂存预取指令
答案:D
3.8086/8088下列部件中与地址形成无关的是______。
A)上升沿B)下降沿C)结束位置D)中间位置
答案:A
14.LOCK引脚的功能是____。
A.总线锁定B.地址锁定C.数据输入锁定D.数据输出锁定
答案:A
15.与存储器(或外设)同步以及与协处理器同步的引脚信号依次为_______。
A.READY、 B.READY、HOLD
C. 、RESETD. 、
答案:A
21.设8086/8088工作于最小模式,在存储器读、写周期中,总线AD15~AD0上数据开始有效的时刻(不插入Tw)分别是______。
A. T2、T2B.T2、T3C.T3、T4D.T3、T2
答案:D
二、填空题
1.8086/8088CPU在结构上由两个独立的处理单元_______和_______构成,这两个单元可以_____工作,从而加快了程序的运行速度。
16.工作在最大模式时,下列信号皆为输出信号的是_______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二:循环程序设计2.DA TA SEGMENTx db -78,127,-128,-125,88y db 32,-43,76,95,1S db 5 dup(?)data endsCode segmentAssume cs:code,ds:data Start:mov ax,dataMov ds,axMov cx,5Mov bx,0L1:mov al,x[bx]Add al,y[bx]Inc bxLoop L1MOV AH,4CHINT 21HCODE ENDSEND START3.DA TA SEGMENTY DB 68H,24H,90H,57H,13H HX DB 67H,34H,12H,90H,57H S DB 5 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAMOV DS,AXMOV CX,5MOV SI,OFFSET XMOV DI,OFFSET YLP:MOV AL,[SI]MOV AH,[DI]ADC AL,AHDAAMOV S[SI],ALINC SIINC DILOOP LPMOV AH,4CHINT 21HCODE ENDSEND START4、DA TA SEGMENTLIST DB 0,1,2,3,4,5,6,7,8,9COUNT EQU $-LISTDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DATAMOV DS,AXMOV CX,COUNT-1LOOP1:MOV DX,CXMOV BX,0LOOP2:MOV AX,LIST[BX]CMP AX,LIST[BX+1]MOV LIST[BX],AXLOOP3:INC BXLOOP LOOP2MOV CX,DXLOOP LOOP1MOV AX,4CHINT 21HCODE ENDSEND START实验三:子程序调用程序设计DA TA SEGMENTNUM DB 85,77,126,-1,-43,37,-128,11,-19,13 DA TA ENDSADDITION SEGMENTNUM1 DB 10 DUP(?)ADDITION ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:ADDITION START:AX,DATAMOV DS,AXMOV AX,ADDITIONMOV ES,AXCALL ORDERCALL COPYMOV AH,4CHINT 21HORDER PROCMOV CX,9LP2:MOV BX,0MOV DX,CXLP1:MOV AL,NUM[BX]CMP AL,NUM[BX+1]JLE NEXTXCHG AL,NUM[BX+1]MOV NUM[BX],ALNEXT:ADD BX,1DEC DXJNZ LP1LOOP LP2RETORDER ENDPCOPY PROCMOV CX,10MOV BX,0LP:MOV AL,NUM[BX]MOV ES:NUM1[BX],ALINC BXLOOP LPRETCOPY ENDPCODE ENDSEND START实验四:DOS功能系统调用1、DA TA SEGMENTDUF DB 10 DUP(?)DA TA ENDSSTACK SEGMENTSA DB 100 DUP(?)TOP LABEL WORDSTACK ENDSCODE SEGMENTASSUME DS:DATA,CS:CODE,SS:STACK START:MOV AX,STACKMOV SS,AXMOV SP,OFFSET TOPPUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV CX,05HS1:MOV AH,1INT 21HPUSH AXLOOP S1MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HMOV CX,05HMOV BX,4S2:POP AXMOV DUF[BX],ALDEC BXLOOP S2MOV BX,0MOV CX,05HS3:MOV DL,DUF[BX]INC BXMOV AH,2INT 21HLOOP3INC ALMOV AH,4CHINT 21HCODE ENDSEND START2、DA TA SEGMENTBUFF DB 50DB ‘?’LETTER DB 50 DUP(‘?’)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAMOV DS,AXLEA DX,BUFFMOV AH,0AHINT 21HMOV DL,0DHMOV AH,02HMOV DL,OAHMOV AH,02HINT 21HLEA DX,LETTERMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START第五次实验:接口预备知识DA TA SEGMENTOUTBUF DB’5’,’4’,’3’,’2’,’1’COUNT EQU $-COUNTDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAMOV DS,AXMOV SI,OFFSET OUTBUF MOV DI,COUNTNEXT:MOV DL,[SI]MOV AH,02HINT 21HCALL DELAYINC SIDEC DIJNZ NEXTMOV AH,4CHINT 21HDELAY PROC NEARPUSH CXMOV BX,299HFOR1:MOV CX,0FFFFH FOR2:LOOP FOR2DEC BXJNZ FOR1POP CXRETDELAY ENDPCODE ENDSEND START第六次实验:简单的输出接口1、CODE SEGMENT ASSUME CS:CODE start:mov di ,2l1:mov al ,02hmov dx,280hout dx,alcall delaymov al ,00hmov dx,280hout dx,alcall delaymov si,3l2:mov al,04hmov dx,280hout dx,alcall delaymov al,00hmov dx,280hout dx,alcall delaydec sijnz l2mov al,08hmov dx,280hout dx,alcall delaymov al ,00hmov dx,280hout dx,alcall delaydec dijnz l1MOV AH,4CHINT 21HDELAY PROC NEAR PUSH CXMOV BX,100HFOR1:MOV CX,0FFFFH FOR2:LOOP FOR2 DEC BXJNZ FOR1POP CXRETDELAY ENDPCODE ENDSEND START2、CODE SEGMENT ASSUME CS:CODE START:MOV CX,2AA:MOV BX,8PUSH CXMOV DX,280HMOV AL,01HBB:OUT DX,ALCALL DELAYMOV DX,280HROl AL,1OUT DX,ALDEC BXJNZ BBPOP CXMOV DX,280Hmov AL,00hOUT DX,ALLOOP AAMOV AH,4CHINT 21HDELAY PROC NEAR PUSH BXPUSH CXMOV BX,299HFOR:MOV CX,0FFFFH FOR1:LOOP FOR1DEC BXJNZ FORPOP CXPOP BXRETDELAY ENDPCODE ENDSEND START第七次实验:简单的输入接口1、data segmentx db'end$'data endscode segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov cx,6mov dl,31hlp: push dxmov dx,280hin al,dxand al,10hmov bl,allp1: in al,dxand al,10hcmp bl,aljz lp1mov dl,0ahmov ah,02hint 21hmov dl,0dhint 21hpop dxint 21hinc dxloop lpmov dl,0ahint 21hmov dl,0dhint 21hmov dx,offset xmov ah,09hint 21hmov ah,4chint 21hcode endsend start2、data segmentx db'end$'data endscode segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov cx,6mov dl,31hlp: push dxmov dx,280hin al,dxpush cxmov cx,2lp1: and al,10hmov bl,allp2: in al,dxand al,10hcmp bl,aljz lp2loop lp1pop cxmov dl,0ahmov ah,02hint 21hmov dl,0dhint 21hpop dxint 21hinc dxloop lpmov dl,0ahint 21hmov dl,0dhint 21hmov dx,offset xmov ah,09hint 21hmov ah,4chint 21hcode endsend start第八次实验:数码管动态显示实验1、CODE SEGMENTASSUME CS:CODE START:MOV CX,03FFHL1: MOV DX,280HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,76H ;HOUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,73H;POUT DX,ALMOV DX,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L1MOV DX,280HMOV AL,00HOUT DX,ALMOV AH,4CHINT 21HDONG PROC NEARPUSH CXPUSH BXMOV BX,0100H FOR1: MOV CX,0100H FOR2: LOOP FOR2DEC BXJNZ FOR1POP BXPOP CXRETDONG ENDPCODE ENDSEND START2、CODE SEGMENTASSUME CS:CODE START:MOV CX,01FFHL1: MOV DX,280HMOV AL,00HOUT DX,ALMOV AL,3FH ;0OUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,06H;1OUT DX,ALMOV DX,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L1MOV CX,01FFHL2: MOV DX,280HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,5BH ;2OUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,4FH;3OUT DX,ALMOV DX,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L2MOV CX,010FHL3: MOV DX,280HMOV AL,00HOUT DX,ALMOV AL,66H ;4OUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,6DH;5OUT DX,ALMOV DX,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L3MOV CX,010FHL4: MOV DX,280HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,7DH ;6OUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,07H;7OUT DX,ALMOV DX,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L4MOV CX,010FHL5: MOV DX,280HMOV AL,00HMOV DX,290HMOV AL,7FH ;8OUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,6FH;9OUT DX,ALMOV DX,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L5MOV DX,280HMOV AL,00HOUT DX,ALMOV AH,4CHINT 21HDONG PROC NEARPUSH CXPUSH BXMOV BX,0100HFOR1: MOV CX,0100HFOR2: LOOP FOR2DEC BXJNZ FOR1POP BXPOP CXRETDONG ENDPCODE ENDSEND START第九次实验:可编程并行接口8255实验1、code segmentassume cs:codestart:mov dx,283hmov al,90hmov dx,280hin al,dxand al,01hcmp al,01Hmov cx,3mov dx,281hjnz l2l1:mov al,01hout dx,alcall delaymov al,02hout dx,alcall delaymov al,04hout dx,alcall delaymov al,08hout dx,alcall delayloop l1mov al,00hout dx,aljmp l3l2:mov al,0f0hout dx,alcall delaymov al,000hout dx,alcall delayloop l2mov al,00hout dx,all3:mov ah,4chint 21hdelay proc nearPUSH CXPUSH BXMOV BX,0200H FOR3:MOV CX,0FFFFH FOR4:LOOP FOR4DEC BXJNZ FOR3POP BXRETdelay endpcoed endsend start2、CODE SEGMENTASSUME CS:CODESTART:MOV AL,10110100BMOV DX,283HOUT DX,ALL1: MOV DX,282H ;C口端口号,检验C口的pc4就是否为高电平,高电平则输入IN AL,DXAND AL,20HJZ L1MOV DX,280H ; A口端口号,读入数据IN AL,DXCALL DELAYMOV DX,281H ; B口端口号,输出至A口OUT DX,ALL2: MOV DX,282HIN AL,DXAND AL,02H ; 判断输出缓冲器就是否满,满就等待,不满程序结束JZ L2JMP L3LOOP STARTL3:MOV AL,00MOV DX,280HOUT DX,ALMOV AH,4CHINT 21HDELAY PROC NEARPUSH CXMOV BX,0f00HFOR1:MOV CX,0FFFFHFOR2:LOOP FOR2DEC BXJNZ FOR1POP CXRETDELAY ENDPCODE ENDSEND START实验十:可编程计数器/定时器8253实验1、CODE SEGMENTASSUME CS:CODESTART:mov dx,283hmov al,10hout dx,almov dx,280hmov al,04hout dx,alcall delaymov dx,280hin al,dxmov dl,aladd dl,30hmov ah,2int 21h;jmp startmov ah,4chint 21hdelay proc nearpush cxmov bx,1000hfor1:mov cx,0ffffhfor2:loop for2dec bxjnz for1pop cxretdelay endsend startcode ends2、CODE SEGMENTASSUME CS:CODESTART:mov dx,283hmov al,52hout dx,almov dx,281hmov al,05hout dx,almov ah,4chint 21hend startcode ends实验十一:DATA SEGMENTABC DB'ARE YOU READY?',0DH,0AH,'$'CCC DB'IRQ10 INTERRUPT NOW !',0DH,0AH,'$' DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOV AX,CSMOV DS,AXMOV DX,OFFSET ZD10MOV AX,2572HINT 21HCLIIN AL,21HAND AL,0FBHOUT 21H,ALIN AL,0A1HAND AL,0FBHOUT 0A1H,ALSTIMOV CX,20LOOP1: PUSH CXMOV AX,DATAMOV DS,AXLEA DX,ABCMOV AH,9INT 21HCALL DELAYPOP CXLOOP LOOP1MOV DX,21HIN AL,DXOR AL,4OUT 21H,ALMOV DX,0A1HIN AL,DXOR AL,4OUT 0A1H,ALMOV AH,4CHINT 21HZD10 PROC NEAR PUSH AXPUSH BXPUSH CXPUSH DXMOV CX,5AGAIN:PUSH CXLEA DX,CCCMOV AH,9INT 21HCALL DELAYPOP CXLOOP AGAINPOP DXPOP CXPOP BXPOP AXMOV AL,20HOUT 20H,ALMOV AL,20HOUT 0A0H,ALIRETZD10 ENDPDELAY PROC NEAR MOV BX,02FFHFOR1: MOV CX,0FFFFHFOR2: LOOP FOR2DEC BXJNZ FOR1RETDELAY ENDPCODE ENDSEND START2、DATA SEGMENTABC DB'ARE YOU READY?',0DH,0AH,'$' DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX,CSMOV DS,AXMOV DX,OFFSET ZD10MOV AX,2572HINT 21HCLIIN AL,21HAND AL,0FBHOUT 21H,ALIN AL,0A1HAND AL,0FBHOUT 0A1H,ALSTIMOV CX,20LOOP1: PUSH CXMOV AX,DATAMOV DS,AXLEA DX,ABCMOV AH,9INT 21HCALL DELAYPOP CXLOOP LOOP1MOV DX,21HIN AL,DXOR AL,4OUT 21H,ALMOV DX,0A1HIN AL,DXOR AL,4OUT 0A1H,ALMOV AH,4CHINT 21HZD10 PROC NEAR PUSH AXPUSH BXPUSH CXPUSH DXMOV CX,3AGAIN: PUSH CXMOV DX,280HMOV AL,0FHOUT DX,ALCALL DELAYMOV DX,280HMOV AL,00HOUT DX,ALCALL DELAYPOP CXLOOP AGAINPOP DXPOP CXPOP BXPOP AXMOV AL,20HOUT 20H,ALMOV AL,20HOUT 0A0H,ALIRETZD10 ENDPDELAY PROC NEAR MOV BX,02FFHFOR1: MOV CX,0FFFFHFOR2: LOOP FOR2DEC BXJNZ FOR1RETDELAY ENDPCODE ENDSEND START。