为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

微机原理与接口技术(第二版)课后习题答案完整版

2018-09-06 50页 doc 150KB 3485阅读

用户头像

is_751406

暂无简介

举报
微机原理与接口技术(第二版)课后习题答案完整版习题1 1. 什么是汇编语言,汇编程序,和机器语言? 答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。 汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。 2. 微型计算机系统有哪些特点?具有这些特点的根本原因是什么? 答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、...
微机原理与接口技术(第二版)课后习题答案完整版
1 1. 什么是汇编语言,汇编程序,和机器语言? 答:机器语言是用二进制代码示的计算机能直接识别和执行的一种机器指令的集合。 汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。 2. 微型计算机系统有哪些特点?具有这些特点的根本原因是什么? 答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。 这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工基础之上。 3. 微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。 答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。 “存储程序控制”的概念可简要地概括为以下几点: ① 计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。 ② 在计算机内部采用二进制来表示程序和数据。 ③ 将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。 ④ 五大部件以运算器为中心进行组织。 4. 请说明微型计算机系统的工作过程。 答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存放的第1个存储单元起,逐步取出指令、分析指令,并根据指令的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。 5. 试说明微处理器字长的意义。 答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快。 6. 微机系统中采用的总线结构有几种类型?各有什么特点? 答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总线、IEEE1394总线、USB总线等类型。 7. 将下列十进制数转换成二进制数、八进制数、十六进制数。 (4.75)10=(0100.11)2=(4.6)8=(4.C)16 (2.25)10=(10.01)2=(2.2)8=(2.8)16 (1.875)10=(1.111)2=(1.7)8=(1.E)16 8. 将下列二进制数转换成十进制数。 (1011.011)2=(11.6)10 (1101.01011)2=(13.58)10 (111.001)2=(7.2)10 9. 将下列十进制数转换成8421BCD码。 2006=(0010 0000 0000 0110)BCD 123.456=(0001 0010 0011.0100 0101 0110)BCD 10. 求下列带符号十进制数的8位基2码补码。 [+127]补= 01111111 [-1]补= 11111111 [-128]补= 10000000 [+1]补= 00000001 11. 求下列带符号十进制数的16位基2码补码。 [+655]补= 1 [-1]补=0 [-3212]补=0  [+100]补=0 习题 2 1. 8086 CPU在内部结构上由哪几部分组成?各部分的功能是什么? 答:8086 CPU内部由两大独立功能部件构成,分别是执行部件和总线接口部件。执行部件负责进行所有指令的解释和执行,同时管理有关的寄存器。总线接口部件是CPU在存储器和I/O设备之间的接口部件,负责对全部引脚的操作。 2. 简述8086 CPU的寄存器组织。 答:8086 CPU内部共有14个16位寄存器,按用途可分为数据寄存器,段寄存器,地址指针与变址寄存器和控制寄存器。数据寄存器包括累加器,基址寄存器,计数器,和数据寄存器。段寄存器用来存放各分段的逻辑段基值,并指示当前正在使用的4个逻辑段。地址指针与变址寄存器一般用来存放主存地址的段内偏移地址,用于参与地址运算。 控制寄存器包括指令寄存器和标识寄存器。 3. 试述8086 CPU标志寄存器各位的含义与作用。 答:标志寄存器是16位的寄存器,但实际上8086只用到9位,其中的6位是状态标识位,3位是控制标识位。状态标志位分别是CF,PF,AF,ZF,SF,和OF;控制标志位包括DF,IF,TF。 CF:进位标志位。算数运算指令执行后,若运算结果的最高位产生进位或借位,则CF=1,否则CF=0。 PF:奇偶标志位。反应计算结果中1的个数是偶数还是奇数。若运算结果的低8位中含有偶数个1,则PF=1;否则PF=0. AF:辅助进位标志。算数运算指令执行后,若运算结果的低4位向高4位产生进位或借位,则AF=1;否则AF=0. ZF:零标志位。若指令运算结果为0,则ZF=1;否则ZF=0。 SF:符号标志位。它与运算结果最高位相同。 OF:溢出标志位。当补码运算有溢出时,OF=1;否则OF=0。 DF:方向标志位。用于串操作指令,指令字符串处理时的方向。 IF:中断允许标志位。用来控制8086是否允许接收外部中断请求。 TF:单步标志位。它是为调试程序而设定的陷阱控制位。 4. 8086 CPU状态标志和控制标志有何不同?程序中是怎样利用这两类标识的?8086的状态标志和控制标识分别有哪些? 答:状态标志位反应了当前运算和操作结果的状态条件,可作为程序控制转移与否的依据。它们分别是CF,PF,AF,ZF,SF,和OF。控制标志位用来控制CPU的操作,由指令进行置位和复位,控制标志位包括DF,IF,TF。 5. 将1001 1100和1110 0101相加后,标识寄存器中CF, PF, AF, ZF, SF, OF各为何值? 答:CF=1,PF=1,AF=1,ZF=0,SF=1,OF=0 6. 什么是存储器的物理地址和逻辑地址?在8086系统中,如何由逻辑地址计算物理地址? 答:逻辑地址是思维性的表示,由段地址和偏移地址联合表示的地址类型叫逻辑地址。物理地址是真实存在的唯一地址,指的是存储器中各个单元的单元号。 在8086系统中,物理地址=段地址×10H+偏移地址 7. 段寄存器CS=1200H,指令指针寄存器IP=4000H,此时,指令的物理地址为多少?指向这一地址的CS指和IP值是唯一的吗? 答:此指令的物理地址=1200H×10H+4000H=16000H 并且指向这一物理地址的CS值和IP值并不是唯一的。 8. 在8086系统中,逻辑地址FFFF:0001,00A2:37F和B800:173F的物理地址分别是多少? 答: 逻辑地址 FFFF:0001 00A2:3TF B800:173F 物理地址 FFFF1H 00D9FH B973FH         9. 在8086系统中,从物理地址388H开始顺序存放下列3个双字节的数据651AH,D761H和007BH,请问物理地址388H,389H,38AH,38BH,38CH和38DH 6个单元中分别是什么数据? 答:(388H)=1AH,(389H)=65H,(38AH)=61H,(38BH)=DTH,(38CH)=7BH,(38DH)=00H 10. 8086微处理器有哪几种工作模式?各有什么特点? 答:8086微处理器有最大和最小工作模式。 在最小模式下:8086 CPU直接产生全部总线控制信号(DT/R,DEN,ALE,M/IO)和命令输出信号(RD,WR,INTA)并提出请求访问总线的逻辑信号HOLD,HLDA。 在最大工作模式下,必须配置8288总线控制器,并且根据8086提供的状态信号S2,S1,S0,输出读写控制命令,可以提供灵活多变的系统配置,以实现最佳的系统性能。 11. 简述8086引脚信号中M/IO,DT/R,RD,WR,ALE,DEN和BHE的作用。 答:M/IO:输出信号,高电平时,表示CPU与存储器之间数据传输;低电平时,表示CPU与I/O设备之间数据传输。 DT/R:控制其数据传输方向的信号。DT/R=1时,进行数据发送;DT/R=0时,进行数据接收。 RD:CPU的读信号,RD=0时,表示8086为存储口或I/O端口读操作。 WR:CPU的写信号,WR =0时,表示8086为存储口或I/O端口写操作。 ALE:地址存锁信号,在T1能时刻有效。 DEN:数据选通信号,当DEN有效时,表示允许传输。 BHE:数据总线允许信号,与A0组合使用,表示是否访问奇地址字节。 12. 简述8086读总线周期和写总线周期和引脚上的信号动尖态变化过程。8086的读周期时序和写周期时序的区别有哪些? 答:在8086读周期内,有关总线信号的变化如下: ①M/ :在整个读周期保持有效,当进行存储器读操作时,M/ 为高电平;当进行I/O端口读操作时,M/ 为低电平。 ②A19/S6~A16/S3:在T1期间,输出CPU要读取的存储单元或I/O端口的地址高4位。T2~T4期间输出状态信息S6-S3。 ③ /S7:在T1期间,输出BHE有效信号( 为低电平),表示高8位数据总线上的信息可以使用, 信号通常作为奇地址存储体的体选信号(偶地址存储体的体选信号是最低地址位A0)。T2—T4期间输出高电平。 ④ADl5~AD0:在T1期间,输出CPU要读取的存储单元或I/O端口的地址A15~A0。T2期间为高阻态,T3~T4期间,存储单元或I/O端口将数据送上数据总线。CPU从ADl5~AD0上接收数据。 ⑤ALE:在T1期间地址锁存有效信号,为一正脉冲,系统中的地址锁存器正是利用该脉冲的下降沿来锁存A19/S6~A16/S3,ADl5~AD0中的20位地址信息以及 。 ⑥ :T2期间输出低电平送到被选中的存储器或I/O接口,注意,只有被地址信号选中的存储单元或I/O端口,才会被RD信号从中读出数据(数据送上数据总线ADl5~AD0)。 ⑦DT/ :在整个总线周期内保持低电平,表示本总线周期为读周期,在接有数据总线收发器的系统中,用来控制数据传输方向。 ⑧ :在T2~T3期间输出有效低电平,表示数据有效,在接有数据总线收发器的系统中,用来实现数据的选通。 总线写操作的时序与读操作时序相似,其不同处在于: ①ADl5~AD0:在T2~T4期间送上欲输出的的数据,而无高阻态。 ② :从T2~T4, 引脚输出有效低电平,该信号送到所有的存储器和I/O接口。注意,只有被地址信号选中的存储单元或I/O端口才会被 信号写入数据。 ③DT/ :在整个总线周期内保持高电平,表示本总线周期为写周期,在接有数据总线收发器的系统中,用来控制数据传输方向。 习题3 1. 假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令原操作数是什么寻址方式,其物理地址是多少? (1) MOV  AX, 0ABH          (2) MOV  AX, [100H] (3) MOV  AX, VAL          (4) MOV  BX, [SI] (5) MOV  AL, VAL[BX]      (6) MOV  CL, [BX][SI] (7) MOV  VAL[SI], BX      (8) MOV  [BP][SI], 100 答:(1) 立即数寻址,无物理地址 (2) 直接寻址,物理地址=2000H×10H+100H=20100H (3) 直接寻址,物理地址=2000H×10H+0050H=20050H (4) 寄存器间接寻址,物理地址=2000H×10H+00A0=200A0H (5) 相对寄存器寻址,物理地址=2000H×10H+(0050+0100H)=20150H (6) 基址加变寻址,物理地址=2000H×10H+(0100H+00A0H)=201A0H (7) 寄存器寻址,无物理地址 (8) 立即数寻址,无物理地址 2. 已知(SS)=0FFA0H,(SP)=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图。 答: “8057H”进栈,则SP自动从00B0H指向00B2H,“0F79H”进栈,则SP自动从00B2H指向00B4H;执行一条POP指令,“0F79H”被弹出栈,SP从00B4H指向00B2H。图略。 3. 设有关寄存器及存储单元的内容如下: (DS)=2000H, (BX)=0100H, (AX)=1200H, (SI)=0002H, (20100H)=12H, (20101H)=34H, (20102H)=56H, (20103H)=78H, (21200H)=2AH, (21201H)=4CH, (21202H)=0B7H, (21203H)=65H. 试说明下列各条指令单独执行后相关寄存器或存储单元的内容。 (1) MOV AX, 1800H  (2)  MOV AX, BX (3)  MOV BX, [1200H]  (4)  MOV DX, 1100[BX] (5)  MOV [BX][SI], AL  (6)  MOV AX, 1100[BX][SI] 答:(1) (AX)=1800H (2) (AX)=0100H (3) (BX)=4C2AH (4) (DX)=4C2AH (5) (20102H)=00H (6) (AX)=65B7H 4.  写出实现下列计算的指令序列。 (1) Z=W+(X+Z)  (2) Z=W-(X+6)-(R+9) 答:(1)     MOV  AX, Z      ADD  AX, X ADD  AX, W MOV  Z, AX (2)  MOV  AX, W ADD  X, 6 SUB  AX, X ADD  R, 9 SUB    AX, R MOV  Z, AX 5.  若在数据段中从字节变量TABLE相应的单元开始存放了0~15的平方值,试写出包含XLAT指令的指令序列查找N(0~15)中的某个平方数。 答:LEA  BX, TABLE MOV  AL, CL XLAT 6.  写出实现下列计算的指令序列。 (1) Z=(W*X)/(R+6)  (2) Z=((W-X)/5*Y)*2 答:(1) MOV  AX, W IMUL  X ADD  R, 6 IDIV  R MOV  Z, AX (2) MOV  AX, W SUB  AX, X MOV  BL, 5 IDIV  BL CBW IMUL  Y MOV  BX, 2 IMUL  BX MOV  Z, AX 7.  假定(DX)=1B,CL=3,CF=1, 试确定下列各条指令单独执行后DX的值。 (1) SHR DX, 1      (2) SHL DL, 1      (3) SAL DH, 1  (4) SAR DX, CL (5) ROR DX, CL      (6) ROL DL, CL      (7) RCR DL, 1  (8) RCL DX, CL 答:(1) (DX)=0110 0100 1101 1100B  (2) (DX)=1100 1001 0111 0010B (3) (DX)=1001 0010 1011 1001B  (4) (DX)= 1111 1001 0011 0111B (5) (DX)= 0011 1001 0011 0111B  (6)(DX)= 0100 1101 1100 1110B (7) (DX)= 1110 0100 1101 1100B  (8) (DX)= 1001 0011 0111 0011B 8.  已知程序段如下: MOV  AX, 1234H MOV  CL, 4 ROL  AX, CL DEC  AX MOV  CX, 4 MUL  CX INT  20H 试问:(1)每条指令执行后,AX寄存器的内容是什么?(2)每条指令执行后,CF,SF及ZF的值分别是什么?(3)程序运行结束后,AX及DX寄存器的值为多少? 答:MOV  AX, 1234H        (AX)=1234H, CF=0,SF=0,ZF=0 MOV  CL, 4 ROL  AX,CL            (AX)=2341H,CF=1,SF=0,ZF=0 DEC  AX                (AX)=2340H,CF=1,SF=0,ZF=0 MOV  CX,4          MULL CX                (AX)=8D00H, CF=0,SF=1,ZF=0 INT    20H 结束后,(DX)=0000H, (AX)=8000H 9. 试分析下列程序段: ADD  AX, BX JNC  L2 SUB  AX, BX JNC  L3 JMP  SHORTL5 如果AX,BX的内容给定如下: AX          BX (1) 14C6H      80DCH (2) B568H      54B7H 问该程序在上述情况下执行后,程序转向何处。 答:(1)转到L2处 (2)转到L3处 习题4 1.下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。 VAR1 DB 10,2 VAR2 DW 5 DUP(?),0 VAR3 DB ‘HOW ARE YOU?’,3 DUP(1,2) VAR4 DD -1,1,0 答:字节空间: VAR1:2; VAR2:12; VAR3:13; VAR4:8。 存储空间的分配图: 2.假定VAR1 和VAR2 为字变量,LAB 为标号,试指出下列指令的错误之处。 (1)ADD VAR1,VAR2         (2)SUB AL,VAR1 (3)JMP  LAB[CX]             (4)JNZ  VAR1 (5) MOV [1000H],100         (6)SHL AL, 4 答:(1) 在算术运算指令中,两个操作数不能同时为存储器寻址方式 (2) AL 为字节,VAR1 为字变量,字长不相等; (3) 错误1:寄存器相对寻址方式,只能使用基址或变址寄存器,不能使用CX寄存器。 错误2:汇编格式错误,无法判段是段内转移还是段间转移。 (4) 转向地址应为标号,不能是变量; (5) 目的操作数的类型不确定; (6) SHL 指令中,当所移位数超过1 时,必须用CL取代所移位数。 3.对于下面的符号定义,指出下列指令的错误。 A1 DB ? A2 DB 10 K1 EQU 1024 (1) MOV K1,AX (2)MOV A1,AX (3)CMP A1,A2 (4)K1 EQU 2048 答:(1)K1 为常量,不能用MOV 指令赋值; (2)A1 为字节,AX 为字变量,类型不一致; (3)A1 和A2同为存储器寻址方式,不符合语法规则; (4)K1 重新赋值前,必须用PURGE 释放。 4.数据定义语句如下所示: FIRST DB 90H,5FH,6EH,69H SECOND DB 5 DUP(?) THIRD DB 5 DUP(?) FORTH DB 4 DUP (?) 自FIRST 单元开始存放的是一个四字节的十六进制数(低位字节在前),要求: 编一段程序将这个数左移两位后存放到自SECOND 开始的单元,右移两位后存放到自THIRD 开始的单元,求补后放到FORTH开始的单元。(注意保留移出部分) 答: DATA SEGMENT FIRST  DB 90H,5FH,6EH,69H SECOND  DB 5 DUP(?) THIRD  DB 5 DUP(?) FORTH  DB 4 DUP (?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV  AX,DATA MOV  DS,AX LEA  SI,FIRST LEA  DI,SECOND MOV CX,2 CLC ;左移2 位 MOV  AX,WORD  PTR  [SI]          ;AX=5F90H 为低十六位数据 INC SI INC SI MOV  DX,WORD  PTR  [SI]          ;DX=696EH 为高十六位数据 PUSH  DX                    ;保存原有的高十六位数据 PUSH  AX                    ;保存原有的低十六位数据 ROL  DX,CL ;将高位数据不带进位循环左移两位,即高2 位数据在DL 的低2 位 AND  DL,03H              ;让DL 中仅保存移出的高2 位数据 MOV  [DI+4] ,DL;将移出的高2 位数据放入SECOND 中的最高单元中 ROL  AX,CL ;将低位数据不带进位循环左移两位,即AX 的高2 位在AL 的低2 位 AND  AL,03H;让AL 中仅保存移出的AX 高2 位数据 MOV  BL ,AL;将AL 中的数据放入BL 中保存 POP  AX;弹出原有的低十六位数据 POP  DX;弹出原有的高十六位数据 SHL  DX,CL;将高位数据算术逻辑左移2 位 SHL  AX,CL;将低位数据算术逻辑左移2 位 OR  DL,BL;将AX 中移出的高2 位数据放入DX 的低2 位 MOV  WORD  PTR  [DI] ,AX MOV  WORD  PTR  [DI+2] ,DX ;右移2 位 LEA  SI,FIRST LEA  DI,THIRD MOV  CX,2 CLC MOV AX,WORD  PTR  [SI]  ;AX=5F90H 为低十六位数据 INC SI INC SI MOV  DX,WORD  PTR  [SI]  ; DX=696EH 为高十六位数据 PUSH  DX;保存原有的高十六位数据 PUSH  AX;保存原有的低十六位数据 ROR  AX,CL;将低位数据不带进位循环右移两位,即低2 位数据在AH 的高2 位 AND  AH,0C0H;让AH 中仅保存移出的低2 位数据 PUSH  CX MOV  CX,6 SHR    AH,CL POP    CX MOV  [DI] ,AH  ;将移出的低2 位数据放入THIRD 中的最低单元中 ROR    DX, CL ;将低位数据不带进位循环左移两位,即AX 的高2 位在AL 的低2 位 AND  DH,0C0H          ;让DH 中仅保存移出的DX 低2 位数据 MOV  BL ,DH          ;将DH 中的数据放入BL 中保存 POP  AX                ;弹出原有的低十六位数据 POP  DX                ;弹出原有的高十六位数据 SHR  DX,CL            ;将高位数据算术逻辑左移2 位 SHR  AX,CL            ;将低位数据算术逻辑左移2 位 OR    AH,BL          ;将DX 中移出的低2 位数据放入AX 的高2 位 MOV  WORD  PTR  [DI+1] , AX MOV  WORD  PTR  [DI+3] ,DX ;求补 LEA  SI,FIRST LEA  DI,FORTH MOV  AX,WORD  PTR  [SI]  ;AX=5F90H 为低十六位数据 INC SI INC SI MOV  DX,WORD  PTR  [SI]  ; DX=696EH 为高十六位数据 XOR  AX, 0FFFFH          ;将低十六位取反 XOR  DX, OFFFFH          ;将高十六位按位取反 CLC ADD  AX,01H              ;低位加1,即可为原数的求补 ADC  DX,0                  ;高位加低位加法时的进位 MOV  WORD  PTR  [DI] , AX MOV  WORD  PTR  [DI+2] ,DX MOV AH,4CH INT 21H CODE ENDS END START 5. 试编程序将内存从40000H到4BFFFH的每个单元中均写入55H,并再逐个单元读出比较,看写入的与读出的是否一致。若全对,则将AL置7EH; 只要有错,则将AL置81H。 答: DATA  SEGMENT DA1  DB  55H CODE  SEGMENT ASSUME  CS:CODE,DS:DATA START:      MOV  AX,4000H MOV  DS,AX MOV  CX,0C000H MOV  BX,0000H MOV  AH,55H NEXT1:  MOV  byte ptr[BX],AH INC    BX LOOP    NEXT1 MOV  BX,0000H MOV  CX,0C000H MOV  AL,81H NEXT2:  MOV  AH, [BX] CMP    AH,55H JNZ    EXIT INC    BX LOOP  NEXT2 MOV  AL,7EH EXIT:      MOV  AH,4CH INT  21H CODE  ENDS END  START 6. 在当前数据段4000H开始的128个单元中存放一组数据,试编程序将它们顺序搬移到A000H开始的顺序128个单元中,并将两个数据块逐个单元进行比较; 若有错将BL置00H; 全对则将BL置FFH,试编程序。 答: DATA  SEGMENT ORG  400H DA1  DB  128 DUP(?) ORG  0A00H DA2  DB  128 DUP(?) DATA  ENDS CODE  SEGMENT ASSUME  CS:CODE,DS:DATA,ES:DATA START: MOV  AX,DATA MOV  DS,AX LEA  SI,DA1 LEA  DI,DA2 MOV  CX,128 AGAIN:  MOV  AL,[SI] INC  SI INC  DI LOOP  AGAIN LEA  SI, DA1 LEA  DI, DA2 MOV  CX,128 NEXT:  MOV  AL,[SI] MOV  BL,[DI] CMP  AL,BL JNZ  ERROR INC  SI INC  DI MOV  BL,0FFH LOOP  NEXT JMP  EXIT ERROR: MOV  BL,00H EXIT:  MOV  AH,4CH INT 21H CODE  ENDS END  START 7. 设变量单元A、B、C存放有3个数,若3个数都不为零,则求3个数的和,存放在D中; 若有一个为零,则将其余两个也清零,试编写程序。 答: DATA  SEGMENT A  DB  ? B  DB  ? C  DB    ? DATA  ENDS CODE  SEGMENT ASSUME  CS:CODE,DS:DATA START: MOV  AX,DATA MOV  DS,AX CMP  A,00H JNZ    LP1 MOV  B,0 MOV  C,0 JMP    LP4 LP1:  CMP  B,00H JNZ    LP2 MOV  A,0 MOV  C,0 JMP    LP4 LP2:  CMP  C,00H JNZ    LP3 MOV  A,0 MOV  B,0 JMP  LP4 LP3:  MOV  AL,A ADD  AL,B ADD  AL,C MOV  AH,4CH LP4:  INT  21H CODE  ENDS END    START 8. 有一个100个字节的数据表,表内元素已按从大到小的顺序排列好,现给定一元素,试编程序在表内查找,若表内已有此元素,则结束; 否则,按顺序将此元素插入表中适当的位置,并修改表长。 答: DATA  SEGMENT BUFF  DB  100 DUP(?) DA1  DB  (?) LENGTH  DB  0 DATA  ENDS CODE  SEGMENT ASSUME  CS:CODE,DS:DATA START:    MOV  AX,DATA MOV  DS,AX MOV  SI,0 MOV  AL,DA1 MOV  CX,100 FIND0: CMP  BUFF[SI],AL JZ    EXIT INC  SI LOOP  FIND0 MOV  DI,99 MOV  SI,0 COMPARE: CMP  BUFF[DI],AL JG    INSERT MOV  BL,BUFF[DI] MOV  BUFF[DI+1],BL DEC  DI CMP  DI,SI JNL    COMPARE JMP  EXIT INSERT:    MOV  BUFF[DI+1],AL MOV  LENGTH , 101 EXIT:    MOV  AH,4CH INT  21H CODE  ENDS END  START 9. 内存中以FIRST和SECOND开始的单元中分别存放着两个16位组合的十进制(BCD码)数,低位在前。编程序求这两个数的组合的十进制和,并存到以THIRD开始的单元。 答: DATA  SEGMENT FIRST  DD  34341212H SECOND  DD  78785656H THIRD  DB    ?,?,?,? DATA  ENDS CODE  SEGMENT ASSUME    CS:CODE,DS:DATA START:        MOV  AX,DATA MOV  DS,AX LEA  SI,FIRST LEA  DI,SECOND LEA  BX,THIRD MOV  CX,4          CLC AGAIN:        MOV  AL,BYTE PTR[SI] MOV  DL,BYTE PTR[DI] ADC  AL,DL DAA MOV  BYTE PTR[BX],AL INC  SI INC  DI INC  BX LOOP  AGAIN JC  AA MOV  BYTE PTR[BX],0 JMP  EXIT AA:        MOV  BYTE  PTR[BX],1 EXIT:    MOV  AH,4CH INT 21H CODE  ENDS END  START 10. 编写一段程序,接收从键盘输入的10个数,输入回车符表示结束,然后将这些数加密后存于BUFF缓冲区中。加密表如下: 输入数字: 0,1,2,3,4,5,6,7,8,9; 密码数字: 7,5,9,1,3,6,8,0,2,4。 答: DATA      SEGMENT  MITAB        DB    '7591368024' CONT        EQU    $-MITAB BUFF        DB  10 DUP (?),'$' YUANWEN      DB  10 DUP (?),'$' DATA      ENDS CODE      SEGMENT ASSUME    CS∶CODE,DS∶DATA START:  MOV    AX,DATA MOV        DS,AX MOV    SI,0 MOV    CX,CONT INPUT:  MOV      AH,1 INT        21H CMP  AL,13 JZ  EXIT AND        AL,0FH MOV    YUANWEN[SI] ,AL INC    SI LOOP  INPUT EXIT :  LEA        BX,MITAB MOV  CX,SI MOV  SI,0 JIAMI:  MOV  AL,YUANWEN[SI] XLAT      MITAB MOV        BUFF[SI],AL INC  SI LOOP  JIAMI MOV    AH,  4CH INT  21H CODE      ENDS END  START 11.试编程序,统计由40000H开始的16K个单元中所存放的字符“A”的个数,并将结果存放在DX中。 答: DATA  SEGMENT DA1    DB  'A' BUFF  DB  4000H DUP(?) DATA  ENDS CODE  SEGMENT ASSUME  CS:CODE,DS:DATA START:     MOV  AX,4000H MOV  DS,AX MOV  BX,0 MOV  CX,4000H FIND:      MOV  AL,[BX] MOV  BL,DA1 CMP  AL,BL JNZ    NEXT INC  DX NEXT:      INC  SI LOOP  FIND MOV  AH,4CH INT  21H CODE  ENDS END  START 12. 在当前数据段(DS),偏移地址为DATAB开始的顺序80个单元中,存放着某班80个同学某门考试成绩。按如下要求编写程序: (1) 编写程序统计≥90分; 80分~89分; 70分~79分; 60分~69分,<60分的人数各为多少,并将结果放在同一数据段、偏移地址为BTRX开始的顺序单元中。 (2) 试编程序,求该班这门课的平均成绩为多少,并放在该数据段的AVER单元中。 答: DATA  SEGMENT BUFF  DW  80 DUP(?) DA9  DB  0 DA8  DB  0  DA7  DB  0 DA6  DB  0 DA5  DB  0 AVER  DB  0 DATA  ENDS CODE  SEGMENT ASSUME  CS:CODE,DS:DATA START:        MOV  AX,DATA MOV  DS,AX MOV  CX,80 COMPARE: MOV  BX,0 CMP  BUFF[BX],90 JB  LP8 INC  DA9 JMP  NEXT LP8:  CMP  BUFF[BX],80 JB  LP7 INC  DA8 JMP  NEXT LP7:  CMP  BUFF[BX],70 JB  LP6 INC  DA7 JMP  NEXT LP6:  CMP  BUFF[BX],60 JB  LP5 INC  DA6 JMP  NEXT LP5:  INC  DA5 JMP  NEXT NEXT:       INC  BX LOOP  COMPARE MOV  CX,80 XOR  AX,AX MOV  BX,00 SUM:  ADD  AX,BUFF[BX] INC  BX LOOP  LP1 MOV  CL,80 DIV  CL MOV  AVER ,  AL MOV  AH,4CH INT  21H CODE  ENDS END  START 13. 编写一个子程序,对AL中的数据进行偶校验,并将经过校验的结果放回AL中。 答: JIOU  PROC PUSH  CX PUSH  BX XOR  AH, AH PUSH  AX MOV  CL, 7 LOOP1: SAR  AL, 1 ADC  AH,  0 LOOP  LOOP1 MOV  AL,  AH XOR  AH,  AH MOV  BL,  2 DIV  BL MOV  BL,  AH POP  AX ROR  BL,  1 OR  AL,  BL POP  BX POP  CX RET JIOU  ENDP 14. 利用上题的子程序,对80000H开始的256个单元的数据加上偶校验,试编程序。 CODE  SEGMENT ASSUME  CS: CODE START :  MOV  AX,  8000H MOV  DS,  AX MOV  SI,  0 MOV  CX, 256 LP:  MOV  AL,  [SI] CALL  JIOU MOV  [SI],  AL INC  SI LOOP  LP MOV  AH,  4CH INT 21H JIOU  PROC PUSH  CX PUSH  BX XOR  AH, AH PUSH  AX MOV  CL, 7 LOOP1: SAR  AL, 1 ADC  AH,  0 LOOP  LOOP1 MOV  AL,  AH XOR  AH,  AH MOV  BL,  2 DIV  BL MOV  BL,  AH POP  AX ROR  BL,  1 OR  AL,  BL POP  BX POP  CX RET JIOU  ENDP CODE  ENDS END  START 习题5 1. 试述DRAM的工作特点;与SRAM相比有什么长处和不足之处;说明它的使用场合。 答:DRAM,动态随机存取存储器,需要不断的刷新,才能保存数据。 而且是行列地址复用的,许多都有页模式。  SRAM,静态的随机存取存储器,加电情况下,不需要刷新,数据不会丢失,而且一般不是行列地址复用的。 与SRAM相比,DRAM价格便宜、速度慢、容量大,主要用来做主存储器,存储程序和数据;而SRAM主要用在Cache等对速度要求高的情况。 2. 试述DRAM刷新过程和正常读/写过程的区别。 答:刷新是以行为单位进行,且刷新过程中不能进行读写操作。 3. 设有一个具有20位地址和32位字长的存储器,问: (1) 该存储器能存储多少个字节的信息? (2) 如果存储器由512K*8位SRAM芯片组成,需要多少片? (3) 需要多少位作芯片选择? 答:(1)该存储器能存储4MB的信息。 (2) 需要8片512K*8位的芯片。 (3) 需要1位做芯片选择。 4. 对于8K×8位RAM组成的存储器系统,若某组的起始地址为08000H,则其末地址为多少? 答:末地址为9FFF.  5. 在8088最大方式系统总线上扩充设计4K字节的SRAM存储器电路。SRAM芯片选用Intel 2114,起始地址从0000H。试画出此存储器电路与系统总线的连接图。 答:系统容量为 4K*8bit,芯片容量为1K*4bit,所以一共需要8片芯片 连接图如下: 6. 在8088系统总线上扩充设计8K的字节的SRAM存储器电路。SRAM芯片选用Intel 6264,起始地址从04000H开始,译码器电路74LS138. (1) 计算此RAM存储区的最高地址是多少。 (2) 画出此存储器电路与系统总线的连接图。 答:(1)最高地址是05FFFH。 (2) 7. 在8086最小方式系统总线上扩充设计16K字节的SRAM存储器电路,SRAM芯片选用Intel 6264,起始地址从04000H开始,译码器电路采用74LS138. (1) 计算此RAM存储区域的最高地址是多少 (2) 画出此存储器与总线的连接图。 答:(1) 07FFFH (2) 习题6 1. 什么是接口?接口的功能是什么? 答:位于主机与外设之间,用来协助完成数据传送和控制任务的逻辑电路称为接口电路,接口电路对输入/输出过程起缓冲和联络作用。接口的功能是有,数据缓冲功能,联络功能,寻址功能,预处理功能,中断管理功能。 2. 计算机对I/O端口编址时通常采用哪两种?在8086系统中,用哪种方法进行编址? 答:I/O端口和存储器统一编址;I/O端口单独编址。8086系统采用I/O端口单独编址方式。 3. CPU和输入/输出设备之间传送的信息有哪几类? 答: 数据信息,控制信息,与状态信息。 4. 简述CPU与外设进行数据交换的几种常用方式. 答: 程序控制方式: 特点是依靠程序的控制来实现主机和外设的数据传送,可分为无条件传送方式和查询方式. 中断控制方式: 每次输入和输出一个数据,CPU都要检查外设的状态。 直接存储器存取控制方式: cpu不参加数据传送,而是由DMA控制器来实现内存与外设,外设与外设之间的直接传递。 通道方式:可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。 外围处理机方式:由PPU独立于主机工作,减少了CPU控制外设的负担。 5.无条件传送方式适用哪些场合?查询方式原理怎样?主要用在什么场合? 答:无条件传送适用于简单的输入/输出设备,CPU可以随时读取或接受状态。这些信号变化缓慢,当需要采集数据时,无需检查端口,就可以立即采集数据,直接用输入/输出指令完成。无条件传送方式主要用于控制CPU与低俗I/O接口之间的信息交换。 6.现有一输入设备,其数据端口的地址为FFE0H,并于端口FFE2H提供状态,当其D0位为1时表明输入数据准备好。请编写采用查询方式进行数据传送的程序段,要求从该设备读取100B并输入到1000H:2000H开始的内存中。 MOV  DX, 0FFE2H L1: IN  AL, DX                  这是习题6的第6题的答案, TEST  AL, 01H        这个程序写不出来,建议删这一问 JZ  L1 MOV  AX, 1000H MOV  DS, AX MOV  DX, 2000H MOV  CX, 100 MOV  DX, 0FFE0H L2:  IN  AL, DX MOV  [DX], AL INC  BX LOOPN  L2 7.查询式传送方式有什么优缺点?中断方式为什么能弥补查询方式的缺点? 答:查询传送方式CPU通过程序不断查询相应设备的状态,状态不符合要求,则CPU需要等待;只有当状态信号符合要求时,CPU才能进行相应的操作。中断方式提高了计算机系统中信息处理的并行和处理器效率,中断可以实现同步操作,实时处理等功能。 8. 8088/8086中断向量表的作用是什么? 答:中断向量表建立了不同的中断源与其相应的中断服务程序首地址之间的联系,它是CPU在响应中断时可以依据中断类型码自动转向中断服务程序。 9. 什么叫中断向量?它放在哪里?对于1CH的中断向量在哪里?如果1CH的中断程序从5110H开始:2030H开始,则中断向量应该怎样存放? 答:中断向量即用来提供中断入口地址的一个指针。 10. 8259中IRR, IMR, ISR三个寄存器的作用是什么? 答:⑴中断请求寄存器IRR 8259A有8条外部中断请求输入信号线IR0-IR7,每一条请求线上有一个相应的触发器来保存请求信号,它们形成了中断请求寄存器IRR(Interrupt Request Register)。 ⑵中断屏蔽寄存器IMR IMR(Interrupt Mask Register)用来存放屏蔽位信息,IMR的每一位可以禁止IRR中对应位的中断请求输入信号进入。 ⑶中断服务寄存器ISR ISR(Interrupt Service Register)存放当前正在进行服务的所有中断。ISR中相应位的置位是在中断响应的 脉冲期间,由优先权判决电路根据IRR中各请求位的优先权级别和IMR中屏蔽位的状态,将中断的最高优先级请求位选通到ISR中。 11. 类型号为20H的中断服务程序入口符号地址为INT-5,试写出中断向量的装入程序片段。 答:MOV AX, 0 MOV DS, AX MOV SF, 20H*4 LEA  AX, IMS MOV  [IS], AX MOV  AX, SEQ, INTS MOV  [SI+2], AX 12. 简述DMA控制器同一般接口芯片的区别。 答:DMA控制器能给出访问内存所需要的地址信息,并能自动修改地址指针,也能设定和修改传送的字节数,还能向存储器和外设发出相应的读/写控制信号。在DMA传送结束后,它能释放总线,把对总线的控制权又交还给CPU。用DMA方式传输数据时,不需要进行保护和恢复断点及现场之类的额外操作。 13. 简述8237A3种基本传送类型的特点。 答:单次传送方式:每次DMA操作只传送1B,然后就自动把总线控制权交给CPU,若还有通道请求信号,则DMAC则再重新向CPU发出总线请求,获得控制权后责传送下一B数据。 数据块传送:在进入DMA操作后,就连续传送数据,直到整块数据全部传送完毕,在字节数减为0或外界输入终止信号时,才会将总线控制权交还给CPU。 请求传送:这种方式也可以用于成块数据传输。这种方式适用于准备好传送数据时,发出通道请求;若数据未准备好时,就使通道请求无效,将总线控制权交还给CPU。 习题7 1. 并行接口有何特点?其应用场合如何? 答:一个并行接口包含状态信息,控制信息,和数据信息,这些信息分别存放在状态寄存器,控制寄存器和数据缓冲缓冲寄存器。从并行接口的电路结构来看,它有硬连接线接口和可编程接口之分。硬连接线接口不能用软件编程方法加以改变,而可编程接口可用软件编程方式加以改变。其应用于打印机,IEEE488接口,开关量接口,控制设备接口等。 2. 可编程并行芯片8255有哪几种工作方式?其差别何在?他们在危机系统中的连接方法有什么不同? 答:8255A有3种工作方式:称为方式0,方式1和方式2。 其中A口可以工作在3种方式中的任一种;B口只能工作在方式0和方式1;C口通常作为控制信号使用,配合A口和B口的工作。 ①方式0:基本的输入输出方式 方式0之所以被称为基本的输入输出方式,是因为在这种方式下,A口、B口和C口(C口分为2个4位使用)都可提供简单的输入和输出操作,对每个口不需要固定的应答式联络信号。 工作在方式0下,在程序中可直接使用输入指令(IN)和输出(OUT)指令对各口进行读写。方式0的基本定义如下:2个8位的口和2个4位的口。任何一个口都可以作为输入或输出。输出可以被锁存。输入不能锁存。 方式0一般用于无条件传送的场合,不需要应答式联络信号,外设总是处于准备好的状态。也可以用作查询式传送,查询式传送时,需要有应答信号。可以将A口、B口作为数据口使用。把C口分为2部分,其中4位规定为输出,用来输出一些控制信息;另外4位规定为输入,用来读入外设的状态。利用C口配合A口和B口完成查询式的I/O操作。 ②方式1:选通输入/输出方式 在这种方式下,当A口和B口进行输入输出时,必须利用C口提供的选通和应答信号。而且这些信号与C口中的某些位之间有着固定的对应关系,这种关系是硬件本身决定的不是软件可以改变的。由于工作在方式l时,要由C口中的固定位来作为选通和应答等控制信号,因此称方式1为选通的输入/输出方式。 方式1的基本定义如下:分成2组(A组和B组)。每组包含一个8位的数据口和1个4位的控制/数据口。8位的数据口既可以作为输入也可以作输出,输入和输出都可以被锁存。4位的控制/数据口用于传送8位数据口的控制和状态信息。 ③方式2:带选通的双向传输方式 这种双向的传输方式,8255A可以向外设发送数据,同时CPU通过这8位数据线又接收外设的数据。因此称为双向的传输方式。 方式2的基本定义如下:只能适用于A口。一个8位的双向口(A口)和1个5位的控制口(C口)。A口的输入和输出都可以被锁存。5位的控制口用于传送8位双向口的控制和状态信息。 当A口工作在方式2时,由PA7~PA0作8位数据线,因为要由C口对A口进行控制,所以称为带选通的双向传输方式。C口对A口的控制信号如图8.20所示,工作时序如图8.20所示。在这种方式下,C口中有5位PC7一PC3作为控制信号和状态信息使用,剩下的3位PC2~PC0可作为简单的输入/输出线使用。当控制字的D0位为1时PC2~PC0作输入;当控制字的D0位为0时PC2~PC0作输出。 3. 可编程接口芯片8255的控制字有哪两个?其控制字及每位的含义是什么? 控制字分为2种:分别称为方式选择控制字和端口C置1/置0控制字。根据控制寄存器的D7位的状态决定是哪一种控制字。 ①方式选择控制字 方式选择控制字用来决定8255A三个数据端口各自的工作方式,它的格式如图所示。它由一个8位的寄存器组成。 ②口C置1/置0控制字 8255A在和CPU传输数据的过程中,经常将C口的某几位作为控制位或状态位来使用,从而配合A口或B口的工作。为了方便用户,在8255A芯片初始化时,C口置1/置0控制字可以单独设置到C口的某一位为0或某一位为1,具体的格式如图所示。 4. 假定8255的端口地址分别为0060H---0063H,编写出下列各情况的初始化程序: (1) 将A口,B口设置方式0,端口A和C作为输入口,B作为输出口 (2) 将A口设置成方式1,输入口,PC6,PC7作为输出端,B口设置成方式1,输入口 答:(1)MOV  AL, 99H MOV  DX, 0063H OUT  DX, AL (2) MOV  AL, 0B6H MOV DX, 0063H OUT DX, AL 5. 设8253计数器0~2和控制字I/O地址依次F8H~FBH,说明如下程序的作用。 MOV AL, 33H OUT  0FBH, AL MOV  AL, 80H OUT  0F8H, AL MOV  AL, 50H OUT  0F8H, AL 答:计数器0,方式1,写两个字节 控制字节送到控制字寄存器 计数值的低位 写低位 计数初值的高位 写高位 6. 定时/计数器芯片Intel 8253占用几个端口地址?各个端口分别对应什么? 答:8253占用4个端口地址,低地址分别为计数器0,计数器1,计数器2,最高地址端口对应控制字寄存器。 7. 试按如下要求分别编写8253的初始化程序,已知8253的计数器0~2和控制字I/O地址依次为04H~07H (1)计数器1工作在方式0,仅用8位二进制计数器,计数初值为128 (2)计数器0工作在方式1,按BCD码计算,计数值为3000 (3)计数器工作在方式2,计数值为02F0H 答:(1) MOV  AL, 50H OUT  07H, AL MOV  AL, 128 OUT  05H, AL (2) MOV  AL, 33H OUT  07H, AL MOV  AX, 3000 OUT  04H, AL MOV  AL, AH OUT  04H,A; (3) MOV  AL, 0B4H OUT  07H, AL MOV  AL, 0F0H OUT  06H,AL MOV  AL, 02H OUT  06H, AL 8. 设一个8253的端口为0140H—0143H,时钟输入是由8284时钟发生器发出的2.3864MHZ经二分频得到。现在要求使计数器0产生20ms的定时信号,试对它进行初始化编程。 答:根据题意,控制格式字为00110100B 计数次数为23864 程序段如下: MOV  AL ,  34H MOV  DX, 0143H OUT  DX,  AL MOV  AX,  23864 MOV  DX ,  0140H OUT  DX,  AL MOV  AL,  AH OUT  DX,  AL 9.让8253的计数器3工作在单稳态方式,让它产生15ms的脉冲宽度。假设输入频率为2MHz,8253的端口地址为20H—23H,二进制计数方式。 答:方式字为B2H 计数器初值:30000 程序如下:MOV  AL ,  B2H OUT  23H,  AL MOV  AX,  30000 OUT  20H,  AL MOV  AL,  AH OUT  20H,  AL 10.请把一个8253与8086CPU相连,地址为2FF0~2FF3H。 11. 8251方式控制器的作用是什么?方式选择有几种?分别有什么特点? 答:方式寄存器是8251在初始化时,用来写入方式选择字的。8251的方式选择有两种:同步方式和异步方式。 异步工作方式时,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数位来作为分隔位。在采用异步工作方式时,非数据信息比例比较大,而且,信息有效率比同步方式低,在异步方式下,接收方的时钟频率和发送方的时钟频率不必完全一样,而只要比较像近,即不超过一定的允许范围就行了。 同步方式时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步方式下,非数据信息比例比较小,要求进行信息传输的双方必须用同一个时钟进行协调,正是这个时钟确定了同步串行传输过程中每1位的位置,而且,在传输数据的同时,还必须传输时钟信号。  12.什么是A/D, D/A转换器? 答:A/D是将模拟信号转换成数字信号的电路,称为模数转换器(analog to digital converter); D/A是将数字信号转换为模拟信号的电路称为数模转换器(digital to analog converter)。 13. DAC0832有哪几种工作方式?每种工作方式适用于什么场合?每种方式是用什么方法产生的? 答:DAC0832可实现双缓冲、单缓冲和直通三种工作状态。 ①双缓冲方式 所谓双缓冲方式,就是把DAC0832的输入锁存器和DAC寄存器都接成受控锁存方式。 适用于多个DAC0832同时输出的情况。采用的方法是先别分别是这些DAC0832的输入寄存器接受数据,在控制这些DAC0832同时传送数据到DAC寄存器以实现都多个DAC转换同步输出 ②单缓冲方式 所谓单缓冲方式就是使DAC0832的输入锁存器和DAC寄存器有一个处于直通方式,另一个处于受控的锁存方式。此方式只是用只有一路模拟量输出或几路模拟量非同步输出的情况。采用的方法是控制输入寄存器和DAC寄存器同时接受数据,或者只有用输入寄存器而把DAC寄存器接成直通方式。 ③直通方式 适用于连续反馈控制线路中。方法是数据不通过缓冲器,即WR1,WR2,XFER,CS均匀接地,ILE接高电平。此时,必须通过I/O接口与CPU连接,以匹配CUP与D/A的转换。 14. 某8位D/A转换器芯片,输出为0~5V,当CPU分别为80H,40H,10H时,其对应的输出电压各是多少? 答:80H时  128/256*5V=2.5V 40H时  64/256*5V=1.25V 10H时  16/256*5V=0.3123V 15. ADC把模拟量转换为数字量信号,转换步骤是什么?转换过程用到什么电路? 答:ADC把模拟量转换为数字量信号,分为四步来完成:采样、保持、量化、编码。转化过程可以用逐次逼近型电路、V/F转换型电路和双积分型电路。 16. ADC与微处理器的接口任务是什么? 答:ADC与微处理器接口的基本任务是:向ADC转发启动转换信号;向CPU提供转换结束信号,把转换好的数据送入微处理器。 17. ADC中的转换结束信号(EOC)起什么作用? 答:是转化结束信号,表示当前的A/D转换已经完成,可作为查询信息,也可接中断申请信号。 18. 如果ADC0809与微机接口采用中断方式,则EOC应如何让与微处理器连接? 答:可采用直接与CPU INTR脚连接,或通过8259A接CPU . 设ADC0809的端口号位PORTAD,则在指令OUT  PORTAD,AL执行后,A/D转换器开始转换转换EOC发一个高电平为转化结束,此信号产生中断请求,CPU响应中断后,去执行中断处理程序,取结果IN  AL,PORTAD,此时,M/IO,RD有效,CPU获得转换结果。
/
本文档为【微机原理与接口技术(第二版)课后习题答案完整版】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索