上大计算机专业接口技术课程习题答案.doc

上传人:s****u 文档编号:12812324 上传时间:2020-05-26 格式:DOC 页数:32 大小:451.60KB
返回 下载 相关 举报
上大计算机专业接口技术课程习题答案.doc_第1页
第1页 / 共32页
上大计算机专业接口技术课程习题答案.doc_第2页
第2页 / 共32页
上大计算机专业接口技术课程习题答案.doc_第3页
第3页 / 共32页
点击查看更多>>
资源描述
题1.2参考p.2和p.51.9参考p.13-141.11(1)174.66 D = 10101110.10101000 B = 0AE.A8 H (0AE.A9H / 0AE.A8F5C2H)(2)100011101011.01011 B = 8EB.58 H = 2283.34375 D(3)F18A6.6 H = 11110001100010100110.0110 B= 989350.375 D1.12解:八位机器数原码、反码、补码、移码+3700100101001001010010010110100101 -37101001011101101011011011010110111.13解:补码机器数扩充为16位和32位形式+370025 H00000025 H-37FFDB HFFFFFFDB H1.14 解:46H作为无符号数 = 70 D46H作为补码 = +70 D46H作为BCD码 = 46 D46H作为ASCII码 = F1.19解:英文字母 D和d的ASCII码为44H和64H;回车CR为0D H、换行LF为0A H; 数码0、空格SP、空操作NUL的ASCII码分别为30H、20H、00H。题2.5 参考p.32逻辑地址形式为段地址:偏移地址物理地址 = 段地址*16+段内偏移地址1MB空间最多可以分成64K个逻辑段,因为段地址的起始必须是16的倍数,220/24=216=64K个。物理地址为:(1) 0FFFF0H(2)00417H(3)24500H(4)0BC777H2.9 略2.13解:运算公式为 v-(x*y+z-540)/x结果商存放在ax中,余数在dx中。2.16解:求有效地址(1)EA = 1256H(2)EA = 32F7H2.19解:求首地址为array的20个字的数组的元素之和,结果存放于地址为total的字单元中。-题4.1 参见p.14-15 8088具有 20 根地址线。在访问内存时使用地址 A0A19 ,可直接寻址 1MB 容量的内存范围;在访问外设时使用地址线 A0A15 ,共能寻址 64K 个输入输出端口。 实际上PC/XT在寻址外设时,只使用地址线A9A0;若A91,说明它要寻址的IO端口位于IO插卡上。4.2参见p.106-107总线操作指的是发生在总线上的某些特定操作,总线周期指的是完成一次特定总线操作所需的时间。对8088而言其典型的总线周期由 4个T状态组成。PC/XT所采用的时钟频率为4.77MHz,每个T状态的持续时间为210ns。如果CLK引脚接5MHz的时钟信号,那么每个T状态的持续时间为200ns。 4.4解答: 当8088进行读写存储器或I/O接口时,如果存储器或I/O接口无法满足CPU的读写时序(来不及提供或读取数据时),需要CPU插入等待状态TW。(在T3前沿检测Ready信号,若无效则插入TW 。) 具体在读写总线周期的T3和T4之间插入TW。4.6参见p.99,p.1108088的某些输出线有三种状态:高电平、低电平、悬空(高阻态),称为三态能力。在高阻状态,CPU放弃其了对该引脚的控制权,由连接它的设备接管。具有三态能力的引脚有:AD7AD0,A15A8,A19/S6A16/S3,ALE,IO/M*,WR*,RD*,DEN*,DT/R*。4.11总线周期IO/M*WR*RD*存储器读低 高低存储器写低低高I/O读高高低I/O写高低高IO/M*WR*RD* WR*RD* MEMR*IOW*4.12 答:取该指令时引发存储器读总线操作。执行该指令时引发I/O读总线操作。(时序图略)4.13 8088系统最小组态下,对指令ADD 2000H,AX (长度3B)。答:取该指令时需要3个总线周期,均为存储器读周期。执行该指令时需要4个总线周期,2个为存储器读总线周期(读出字操作数参与运算),2个为存储器写总线周期(保存16位运算结果)。4.15 参见p.106图74LS373 的G为电平锁存引脚,控制选通且转为无效时锁存数据。OE* 输出允许引脚,信号来自ALE。4.16 参见p.106图数据收发器74LS245 是8位双向缓冲器,G*控制端为低电平有效,可传输数据;DIR控制导通方向:DIR1,AB;DIR0,AB。4.17 参见p.111-112归纳为:1、8086数据总线变为16位,数据地址线复用为AD15AD0。2、8086指令队列程度变为6字节长,当有2个字节空才取下一指令。3、8088引脚IO/M* ,8086变为M/IO*;4、引脚SS0* 变为BHE*/S7,BHE* 的作用是使D15D8有效。5、8086存储器组织为奇偶分块,偶地址取字只要读1次,奇地址取字需要读两次。6、I/O端口大都采用偶地址,目的是引导8位数据到低8位总线AD7AD0上,以提高效率。=5.1 Cache、主存和辅存的作用参见 p.120121 虚拟存储器参见p.121 在CPU看来,访问主存和访问辅存有什么不同? 访问主存:通过存储器访问机器指令,按字随机访问。 访问辅存:通过操作系统,按块顺序访问。5.2 在半导体存储器中,RAM指的是 随机存取存储器 ,它可读可写,但断电后信息一般会 丢失 ;而ROM指的是 只读存储器 ,正常工作时只能从中 读取 信息,但断电后信息 不会丢失 。以EPROM芯片2764为例,其存储容量为8K8位,共有 8 条数据线和 13 条地址线。用它组成64KB的ROM存储区共需 8 片2764芯片。5.4 一个容量为4K4位的假想RAM存储芯片,他应该有多少根地址线引脚和多少根数据线引脚?如果让你来进行设计,那么它还需要哪些控制引脚?这些引脚分别起什么样的控制作用?解答:4K4的芯片应该有12根地址线引脚和4根数据线引脚。控制引脚应该有:读取信号OE*:有效时,表示读取存储单元的数据写入信号WE*:有效时,表示将数据写入存储单元片选信号CS*:有效时,表示选中该芯片,可以进行读写操作。5.7 什么是存储芯片的位扩充和地址扩充?采用静态RAM的芯片2114(1K*4位)或动态RAM的芯片4116(16K*1位)来组成32KB的RAM存储区,请问各需要多少芯片?在位方向和地址方向各需要进行什么样的扩充?解答:(参见p.140) 使用多个芯片来扩充存储数据位的宽度,称为位扩充。采用多个芯片在地址方向上进行扩充,称为地址扩充或字扩充。用SRAM 2114组成32KBRAM存储区:2片为一组,得1KB,所以组成32KB就要32组,共需要64片SRAM 2114。用DRAM 4116组成32KBRAM存储区:8片为一组,得16KB,所以组成32KB只要2组,共需要16片DRAM 4116。2114(1) A9A0I/O4I/O1片选1D3D0D7D4A9A02114(2)A9A0I/O4I/O1CECE2114(1) A9A0I/O4I/O1片选32D3D0D7D4A9A02114(2)A9A0I/O4I/O1CECE5.8 存储芯片为什么要设置片选信号?它与系统地址总线有哪些连接方式?采用何种连接方式可避免地址重复?采用哪些连接方式可节省用于译码的硬件?解答:片选信号说明该存储器芯片是否被选中正常工作,设置它可以比较方便地实现多个存储器芯片组成大容量的存储空间。存储器片选信号通常与CPU地址总线的高位地址线相关联,可以采用“全译码”、“部分译码”、“线选译码”方式。采用全译码方式可以避免地址重复。采用部分或线选译码可以节省译码硬件。5.9 在一个针对存储器的译码系统中,如果有4个地址线未参与译码,那么每个存储单元会同时拥有几个地址?解答: 理论上每个存储单元会同时拥有16个地址。5.10 解答:p.144图5.33中4个存储芯片的可用地址范围:6264(1)6264(2)2732(1)2732(2)00000 01FFFH02000 03FFFH04000 04FFFH05000 05FFFH40000 41FFFH42000 43FFFH44000 44FFFH45000 45FFFH80000 81FFFH82000 83FFFH84000 84FFFH85000 85FFFHC0000C1FFFHC2000C3FFFHC4000 C4FFFHC5000 C5FFFH重复地址由于A19A18的不定性,每片各有4段范围。5.11采用全译码方式和6264芯片( SRAM,容量8K8位),在内存40000H43FFFH区段扩充RAM,请画出这些芯片与最大组态的系统总线的连接示意图。解: 方法为:容量=末地址首地址+1=214=16KB,所以要2片6264芯片。A12A0为片内地址,A15A13作片选译码的输入CBA,A19 A16A15 A13A12A0地址范围1201000100000001全0全1全0全140000H41FFFH42000H43FFFHA12A0138A18 A15 A14A13CBAE3E2E1Y0A19A17A16D7D0(1)6264CS1WEOEMEMWMEMR(2)6264CS1WEOEY3Y2Y15VCS2CS25.13 采用3:8译码器74LS138和2764芯片(EPROM,8K8位),通过全译码方式在8088系统的地址最高端组成32KB的ROM区,请画出各2764芯片与8088最大组态下形成的线条总线的连接示意图。解答: 注意地址最高端组成32KB的ROM区,意味着地址范围是 F8000HFFFFFH,这样最高五根地址线A19A15上要全为1。2764芯片的片内地址是13根即A12A0,它们是全0到全1变化;现在需要4片来构成32KB存储区,采用3:8译码器的话,A15A13应该取后4种情况,即取100111分别产生Y4Y7。其余地址线可以以多种方式组合产生控制信号。A19 A16A15 A13A12A0地址范围12341111111111111111100101110111全0全1全0全1全0全1全0全1F8000HF9FFFHFA000HFBFFFHFC000HFDFFFHFE000HFFFFFHA12A0(1)2764(2)2764 CECEA15 A14A13A16CBAE3138 A17Y7E2E1A12A0(3)2764(4)2764 CECEY6Y5Y4A19A18 D7D0考虑:如果要求地址从低端开始的话,高5位全0,即00000H07FFFH,如何连接?5.16访问的局部性原则P122 第1行。高速缓存和虚拟存储的目的p121下部。=6.1 在80x86系统中,I/O端口的地址采用 独立 编码方式,访问端口时要使用专门的 I/O 指令,有 2 种寻址方式,其具体形式是: 直接寻址和DX间接寻址 。6.2 一般的I/O接口电路安排有哪三类寄存器?他们各自的作用是什么?解答: (参见p.154) 数据寄存器保存外设给CPU和CPU发往外设的数据。 状态寄存器保存外设或接口电路的状态。 控制寄存器保存CPU给外设或接口电路的命令。K7K1K0+5VD0D7A0A15CLKLS06反相驱动器LS2738D锁存器LS244三态缓冲器8000H译码+5VLED0LED7GIOWIOR6.4解:K0单独按下:输入0FEH,控制L0 L7 依次循环亮灯,K1单独按下:输入0FDH,控制L7 L0 反向依次循环亮灯,程序流程略。BEG:MOV DX,8000HLOP0:IN AL,DXMOV BL,ALMOV CX,8;循环次数CMP AL,0FEH;测试是否K0单独按下JZ LOP1CMP AL,0FDH;测试是否K1单独按下JZ LOP2JMP LOP0;LOP1:ROL BL,1;利用AL初值作为开始位置MOV AL,BL NOT AL;因为有反相器LS06OUT DX,ALCALL DELAYLOOP LOP1JMP LOP0;LOP2:ROR BL,1;利用AL初值作为开始位置MOV AL,BL NOT AL;因为有反相器LS06OUT DX,ALCALL DELAYLOOP LOP2JMP LOP06.5 数据口地址为FFE0H,状态口地址为FFE2H,当状态标志D0=1时输入数据就绪,编写查询方式进行数据传送程序,读入100个字节,写到2000H:2000H开始的内存中。解:(程序格式参见p.6364 ).CODEMOVAX, 2000HMOV DS,AX;段地址MOV BX,AX;偏移地址MOV CX,100NEXT:MOV DX,0FFE2HSTATUS:IN AL,DX;读入状态TEST AL,01HJZ STATUSDEC DXDEC DX;数据口地址IN AL,DXMOV BX,ALINC BXLOOP NEXTMOV AX, 4C00H;结束INT 21H6.6 某字符输出设备,其数据端口和状态端口的地址均为80H。在读取状态时,当标志位D7为0时表明该设备闲,可以接收一个字符。请编写采用查询方式进行数据传送的程序段,要求将存放于符号地址ADDR处的一串字符(以$为结束标志)输出给该设备,注意在程序中加上注释。解:参考答案一: mov bx, offset addragain:mov ah, bx;取一个字节的字符码 cmp ah, $ jz donestatus: in al, 80h;查询一次 test al, 80h jnz status mov al, ah out 80h, al;输出一个字节 inc bx jmp again;循环done: 参考答案二:.DATAaddrDB xxxx$.CODEMOVAX, DATAMOV DS, AXLEABX, addrStatus:INAL, 80H;读入状态,if D7=1,为负数CMPAL, 0;或ROL AL,1JSStatus;JC STATUSMOV AL, BXCMPAL, $JZendofOUT80H, ALINCBXJMP StatusEndof:MOV AX, 4C00HINT 21H6.7 以可屏蔽中断为例,说明一次完整的中断过程主要包括那些环节?8088响应可屏蔽中断请求时需要先满足那些前提条件?答: 中断过程的主要环节:( 参见p.165 )中断请求、中断响应、关中断、断点保护、中断源识别、现场保护、中断服务、恢复现场、开中断、中断返回。8088响应可屏蔽中断请求时需要先满足:中断允许IF1。当前指令执行完毕。6.8什么是中断源?为什么要设立中断优先权?什么是中断嵌套?何种情况下程序可能发生中断嵌套?答:中断源:计算机系统中引起中断的事件或原因。当多个中断源同时请求时,CPU需要利用中断优先权决定首先响应哪一个;当一个中断正在服务时,又发生了新的中断请求,CPU需要利用中断优先权确定后者是否优先权更高,以便实现中断嵌套。中断嵌套:当一个中断服务时CPU又响应新的中断请求就形成中断嵌套。CPU允许中断(开中断)、新的中断请求比正在服务的中断优先权更高,通常发生中断嵌套。A0A15锁存器INTR三态缓冲器译码 8001HD0D7中断0中断1中断2IOR6.9参见P.167流程MOV DX,8001H STATUS:IN AL,DXTEST AL,01HJZ NEXT1;D0未置1则转测下一位CALL PROC0JMP STATUSNEXT1:TEST AL,02HJZ NEXT2CALL PROC1JMP STATUSNEXT2:TEST AL,04HJZ NEXT3CALL PROC2JMP STATUSNEXT3:TEST AL,08HJZ STATUSCALL PROC3JMP STATUS6.10 DMA的意思是 直接存储器存取 ,主要用于高速外设和内存间的数据传送。进行DMA传送的一般过程是:外设先向DMA控制器提出 DMA传送请求 ,DMA控制器通过 HOLD 信号有效向CPU提出总线请求,CPU回以 HLDA 信号有效表示响应。此时CPU的三态信号线将输出 高阻 状态,即将它们交由 DMAC(DMA控制器) 进行控制,完成外设和内存间的直接数据传送。=7.7 假如某并行总线的数据宽度为32位,工作频率为100MHz,若2个时钟周期传送一次数据,其传输速率是多少?如果在时钟的前后沿各传送一次数据,其传输速率是多少?如果采用2-1-1-1的突发传送模式,其平均传输速率是多少?解答:f =100MHz ,则时钟周期T=1/f =10 ns1) 2T一次的传输速率,即频率减半:fd = (32/8) * 100/2 M = 200 MB/s或fd = (32/8) / (2*10 ns) = 200 MB/s2) 前后沿各传送一次,即频率加倍:fd = (32/8) * 200 M = 800 MB/s或即1T2次:fd = (32/8) / (10/2 ns) = 800 MB/s3) 采用2-1-1-1的突发传送模式,平均为5T4次:fd = (32/8) /(5*10 ns /4) = 320 MB/s8.1 8088CPU具有哪些中断类型?各种中断如何产生,如何得到中断向量号?参见p.191、p.1921938.2 8088中断向量表的作用是什么?(参见p.194)答:它是中断向量号到对应的中断服务程序入口地址的链接表。 通过中断向量号n,可以读取中断向量表的物理地址为 n*4 开始的单元,获取中断服务程序的入口地址(即中断向量),长度4个字节。8.3 说明程序段的功能: (程序略,见p.212 上)答:此段程序将中断服务程序intproc的入口地址写入中断向量表的80h*4开始的单元中。 (stows 是数据串传送指令,参见p.78。)(实际上可以使用指令序列: mov ax,seg intprocmov ds,axmov dx,offset intprocmov ax,2580hint 21h 来完成相同功能)8.4 8259A中IRR、IMR和ISR三个寄存器的作用是什么?答: ( 参见p.196197 ) 中断请求寄存器IRR 保存8条外界中断请求信号IR0IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求 中断服务寄存器ISR 保存正在被8259A服务着的中断状态 Di位为1表示IRi中断正在服务中;为0表示没有被服务 中断屏蔽寄存器IMR 保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止);为0表示允许8.5 PC/XT对8259A的初始化程序如下:mov al,13h;0001 0011out 20h,al;ICW1mov al,08h;00001000out 21h,al;ICW2mov al,09h;00001001out 21h,al;ICW4请说明其设定的工作方式?解答: 从第一个写指令ICW1,看出是边沿触发、单片方式,有ICW4;第二个写指令ICW2为中断向量08h;第三个写指令ICW4中断方式字,表示普通全嵌套、数据线缓冲方式,从片、非自动中断结束、16位微处理器。8.6 某时刻8259A的IRR内容是08h,说明只有引脚IR3上有中断请求。 某时刻8259A的ISR内容为08h,说明只有IR3上的请求正在被CPU服务。 在两片8259A级联的中断电路中,主片的第5级IR5接从片的中断请求输入,则初始化主、从片时ICW3的控制字分别是20H和05H。(分别是0010 0000 和0000 0101 )8.7 解:在A01时读出的是IMR寄存器的内容。8.8 题略p.212。解:根据题意:SFNM=0,AEOI=0,LTIM=0,ICW1=00010011,ICW2=90H,ICW4=0000x101,初始化8086 所接的8259A中断控制器:MOVDX, 0FFDCH;对应20H端口MOVAL, 13HOUTDX, ALMOVDX, 0FFDEH;对应21H端口MOVAL, 90HOUTDX, ALMOVAL, 05HOUTDX, AL8.10 8259A的中断请求有哪两种触发方式,它们分别对请求信号有什么要求?PC系列机中采用哪种方式?答:上跳沿触发,要求克服噪音尖峰。 高电平触发,请求及时撤销请求信号。 PC系列机采用上升沿方式。 8.11 解答:0bh = 00001011 b,写OCW3,接下来要读的是ISR,中断服务寄存器。8.12解答:0bch = 10111100 b,21H写OCW1即IMR,结果是只允许IR0、IR1、IR6中断,其他中断被屏蔽。8.14 中断服务程序的人口处为什么通常要使用开中断指令?答: 因为8088在进入中断服务程序前的中断响应期内会自动关中断(令IF0),所以对于不十分重要的中断源,其中断服务程序的人口处要开中断,以便可以实现中断嵌套。-题9.3 8253每个通道有 6 种工作方式可供选择。若设定某通道为方式0后,其输出引脚为 低 电平;当 写入计数初值(并进入减1计数器) 后通道开始计数, CLK 信号端每来一个脉冲 减1计数器 就减1;当 计数器减为0 ,则输出引脚输出 高 电平,表示计数结束。8253的CLK0接1.5MHz的时钟,欲使OUT0产生频率为300KHz的方波信号,则8253的计数值应为 5(1.5MHz300KHz) ,应选用的工作方式是 3 。9.4 按要求编写8253初始化程序,对应计数器02和控制字的I/O端口地址为204H207H。(1)使计数器1工作在方式0,仅用8位二进制计数,初值为128。(2)使计数器0工作在方式1,按BCD码计数,计数值为3000。(3)使计数器2工作在方式2,计数值为02F0H。解:(1) MOV AL,01010000B ;即50HMOV DX,207HOUT DX,ALMOV AL,128 ;或80HMOV DX,205HOUT DX,AL (2) MOV AL,00100011B ;即23H,或用33H初值3000HMOV DX,207HOUT DX,ALMOV AL,30H;仅送高8位MOV DX,204HOUT DX,AL (3)MOV AL,10110100B ;即0B4HMOV DX,207HOUT DX,ALMOV DX,206HMOV AX,02F0HOUT DX,AL MOV AL,AHOUT DX,AL 9.5 设8253计数器02和控制字的I/O地址依次为F8HFBH,说明如下程序的作用。 mov al, 33 ;0011 0011out 0fbh, almov al, 80hout 0f8h, almov al, 50hout 0f8h, al解:计数器0工作在方式1,BCD码计数,计数值5080D。9.7 解: 例题9.2中CLK0实际输入101个下降沿后产生中断,还能用工作方式1、4、5。如果利用外部信号启动计数,则GATE0应从 +5v 0v +5v。若采用计数器0方式1的控制字为:00 01 001 0 B= 12H 。(初始化程序类似p.226 例9.2。)MOV AL,12H ;计数器0方式1MOV DX,203HOUT DX,ALMOV DX,200HMOV AL,100OUT DX,AL 题9.8解:先计算计数器0的初值,N=输入f /输出f =5MHz /1KHz=5000计数器0的方式控制字:00 10 010 1 N= 5000 用BCD计数计数器1的方式控制字:01 11 100 0 N=1000=3E8H 计数器0初始化程序:OUT1OUT0CLK0CLK182535MHzIRQ4MOV DX,0FFF3HMOV AL,25HOUT DX,ALMOV AL,50HMOV DX,0FFF0HOUT DX,AL(或方式控制字0011 0100,初值5000) mov dx,0fff3hmov al,34hout dx,almov dx,0fff0hmov ax,5000out dx,almov al,ah;先低后高out dx,al计数器1初始化程序:MOV DX,0FFF3HMOV AL,78H OUT DX,ALMOV AX,3E8H MOV DX,0FFF1HOUT DX,ALMOV AL,AH;先低后高OUT DX,AL(或方式控制字01 10 100 1,初值1000D,只送高字节)mov al, 69hmov dx, 0fff3hout dx, almov dx, 0fff1hmov al, 10hout dx, al补充: (此处题目不需要进行8259A的初始化)IRQ4的中断向量为0CH,若需要设置8259A的初始化如下:MOV AL,13H;ICW1OUT 20H,ALMOV AL,08H;ICW2OUT 21H,ALMOV AL,07H;ICW4OUT 21H,AL 对应中断屏蔽字为11101111,中断屏蔽位设置程序:IN AL,21H;读出IMRAND AL,0EFH;设置允许IRQ4 ,其它位不影响OUT 21H,AL;再写入IMR 即OCW19.9 扬声器控制发音程序:子程序speaker、speakon、speakoff参见p.223解:参考答案一、.DATAP1DW 1193180/524P2DW 1193180/588P3DW 1193180/660P4DW 1193180/698P5DW 1193180/784P6DW 1193180/880P7DW 1193180/998P8DW 1193180/1048.CODEMOVAX, DATAMOV DS, AXkeyin:MOVAH,1INT21H;等待按键CMP AL,1BH;是否ESCJZEXITCMPAL,31HJZPP1CMPAL,32HJZPP2CMPAL,33HJZPP3CMPAL,34HJZPP4CMPAL,35HJZPP5CMPAL,36HJZPP6CMPAL,37HJZPP7CMPAL,38HJZPP8CALLspeakoffJMPkeyinEXIT:MOVAX,4C00HINT21HPP1:MOVAX,P1CALLspeakerCALLspeakonJMPkeyin;程序段PP2PP7 略PP8:MOVAX,P8CALLspeakerCALLspeakonJMPkeyin参考答案二、 .DATAaddr DW 2277,2029,1808,1709 DW 1522,1356,1196,1139 .CODEMOVAX, DATAMOV DS, AXkeyin:MOVAH,1INT21H;等待按键CMP AL,1BH;是否ESCJZexitCMPAL,31HJLstop; 8ANDAL,0FH;截取数18DECAL;成为07SHLAL;因为DW,*2LEABX,addr;数据表起始地址MOVAH,0ADDBX,AXMOVAX,BXCALLspeakerCALLspeakonJMPkeyinstop:CALLspeakoffJMPkeyinexit:MOVAX,4C00HINT21H9.10计数器的定时长度和精度受脉冲输入信号频率和计数值影响。对于频率为f的脉冲输入,计数器输出的最小定时时间为 2/f ;此时计数初值应为 1 。16位计数器输出的最大定时时间是 65537/f ;当需要加大定时时间时,或者利用硬件方法进行多个计数器的级联;或者用软件辅助方法,使计数单元扩大计数值。=10.2 什么是8237的单字节传送方式和数据块传送方式,两者的根本区别是什么?数据块传送方式和请求传送方式对DREQ信号有效有什么要求?答:单字节传送方式:以DMA方式每传送完一个字节,8237使HRQ(总线请求)信号无效,将系统总线交还CPU,若所有数据未传完,则DREQ(外设的DMA传送请求)保持有效,所以,8237立刻向CPU申请总线,使HRQ再次有效,若CPU应答了这次请求(HLDA有效),8237就传送下一个字节,这个过程重复到所有数据传送完毕。 块传送:一旦传送开始,8237就不放弃总线,直到所有数据传送完毕。二者的区别:前者在每传送一个字节后,CPU都有一次获得总线的机会,以感知其他事件。后者不行,但速度较快。数据块传送对DREQ信号有效的要求是:传送期间始终保持。请求传送对DREQ信号有效的要求是:可以随时失效来暂停传送。10.4 8237有几种对其DMA通道屏蔽位操作的方法?答:p238。三个:单通道屏蔽字、主屏蔽字、清屏蔽寄存器命令。10.5 PC机为什么设置DMA传送的页面寄存器?答:因为PC机的内存空间大于8237的地址控制范围(64K),要在高于64K的空间进行DMA传送就必须用辅助器件产生高位(A16以上)地址,这个辅助器件就是页面寄存器。10.6 设置PC机8237通道2传送1KB数据,请给出其字节数寄存器编程。解:MOV AX,1023 ;N-1OUT 05H,ALMOV AL,AHOUT 05H,AL10.8 PC机8237A通道2传送的内存起始地址为C8020H,请给出地址寄存器编程。解:MOV AL,20HOUT 04H,ALMOV AL,80HOUT 04H,ALMOV AL,0CHOUT 81H,AL;参见p.239表10.9 XT机执行了下面两条指令后,会产生什么作用?mov al, 47h ;01 0 0 01 11out 0bh, al解:从端口地址0BH可知,这是方式寄存器;这两条指令执行后对通道3进行了方式设置,具体为:以单字节模式、地址递增、禁止自动初始化、在通道3上进行DMA写。10.10 题略,参见p.242;寄存器地址参见p.234表10-2解: MOVDX, 0CH;指向 高/地触发器MOVAL, 0OUTDX, AL;清除高/地触发器MOVDX, 09H;指向 请求寄存器OUTDX, AL;MOVAX, 01ORAX, SIMOVDX, 0BH;指向 方式寄存器 OUTDX, AL;设置工作方式MOVAX, ES;取段地址MOVCL, 04 ROLAX, CL;左移4位MOVCH, AL;暂存高位地址ANDAL, 0F0H;屏蔽掉高位,取有效的低位ADDAX, BX;加上偏移地址JNCNET1;有进位则INCCH;高位加1NET1:MOVDX, 02;指向通道1的地址寄存器OUTDX, ALMOV AL, AHOUT DX, ALMOV AL, CHANDAL, 0FHMOV DX, 83H;指向 通道1的页面寄存器OUT DX, ALMOVAX, DI;NDEC AX;N-1MOVDX, 03;指向 通道1的字节数寄存器OUTDX, AL;写入计数值低8位MOV AL, AHOUT DX, AL;写入计数值高8位 MOVDX, 0AH;指向 单通道屏蔽字MOVAL,1OUTDX, ALMOV DX,8;指向 命令寄存器MOVAL,60H;01100000OUT DX, ALMOVDX,08H;指向 状态寄存器NET2:INAL,DX;读入状态字ANDAL,02H;判通道1传送结束否,D1=1?JZNET2;没有结束继续读入状态答:若主机通过通道1发送数据,相当于进行DMA读,若采用请求模式,此时SI可以为09h;若采用单字节模式,SI为49h。若主机通过它接收数据,相当于进行DMA写,若采用请求模式,此时SI可以为05h;若采用单字节模式,SI为45h。=题11.2 8255两组都定义为方式1输入,则方式控制字是什么?方式控制字中的另外两位确定什么功能?解:方式控制字为1 01 1 X 1 1 Y,其中X、Y可取0或1,因为这两位分别确定C端口的上部和下部的工作方式;本题中X位决定PC6和PC7的输入输出功能,Y位已无意义。11.3 总结8255A端口C的使用特点。答:1、8位并行输入输出。 2、高4位、低4位可分别输入输出。 3、按规定与端口A和端口B配合,完成相应的握手信号。11.4 设定8255A的端口A为方式1输入,端口B为方式1输出,则读取口C的数据的各位是什么含义?解答:读取口C的数据各位的含义是:PC76为输入信息或输出锁存信息(根据端口C上部的输入/出定义);PC53为端口A的输入缓冲器满否、内部触发器状态、有否中断请求信息。PC20为端口B的内部触发器状态、输出缓冲器满否、有否中断请求信息。(参见下图)INTRBIOBFBINTEBINTRAINTEAIIBFAINTEAOOBFAD0D1D2D3D4D5D6D7INTRBOBFBINTEBINTRAINTEAIIBFAI/OI/O输入缓冲器满外设送入数据时的锁存信号STBa(PC4脚的输入)使其有效,CPU读走数据时(RD的上升沿)使其失效。口A中断请求输出(PC4)允许口A中断请求输出脚(PC3)状态口B中断请求输出(PC2)允许口B中断请求输出脚(PC0)状态输出缓冲器满CPU写入数据时(WR0)使其有效,外设取走数据时应答信号ACKb(PC2脚的输入)使其失效11.5 对8255A的控制寄存器写入B0H,则其端口C的PC5引脚是什么作用的信号线?解: B0H = 10110000 B,可知8255A端口A工作于方式1输入,所以PC5引脚的作用是IBFA,为1表示输入缓冲器满。11.6 11.2.2节用8255A端口A方式0与打印机连接,如果采用端口B,其他不变,请说明应该如何修改接口电路和程序。(参见p.253)解:连接图中只要把端口A改成端口B即可。程序中控制方式字可作必要的修改,“mov al,10000001B”可以修改为“mov al,10001B”,只要保持C端口上部输出、下部输入即可,因为PC7、PC2的连接没有变;端口A任意、端口B为方式0输出,程序涉及端口A的地方改为端口B的地址:“mov dx,0fff8h”必须修改数据口地址“mov dx,0fffAh”。11.7 11.2.3节用8255A端口A方式1与打印机连接,如果采用端口B,其他不变,请说明应该如何修改接口电路和程序。(参见p.254)解提示:连接图中除了把端口A改成端口B,还要用PC0、PC1、PC2分别取代PC3、PC7、PC6。程序中也要作相应的替换。控制方式字要改为端口B选通输出,即“mov al,0a0h”可以为mov al,84H,端口A任意、端口B为方式1输出;设置PC6的地方改为设置PC2:“mov al,0ch”改为04h;测试PC7的地方改为测试PC1:“test al, 80H”改为02h;程序涉及端口A的地方改为端口B的地址:“mov dx,0fff8h”必须修改数据口地址“mov dx,0fffAh”。11.8 题略,参见p.275图11-22。解:端口C低端输入、高端输出,由于反相器的存在,输出1时灯亮。假设端口C和控制端口地址为 0FFFCH和0FFFEH,;8255A初始化程序MOVAL,81HMOVDX,0FFFEHOUTDX,AL;MOVDX,0FFFCHINAL,DX;开关闭合时,输入0MOVCL,4ROLAL,CL;低4位移至高4位NOTAL;取反,变0为1OUTDX,AL11.16 题略,参见p.275mov dx, 0fffbh;初始化8255Amov al, 89h ;1000 1001bout dx, al;dispprocpush axpush bxpush dxmov bx, offset LEDtbDJ: mov cl, ffhmov dx, 0fffah;PC为输入开关口in al, dxDJ1:inc clshr al;al高位补0jc DJ1cmp cl, 08jz XS mov al, clxlat cs:LEDtb;得到显示代码 mov dx, 0fff8h ;PA为段控制端口out dx, al;送出段码XS:mov ah,0feh;指向最左边数码管mov dx, 0fff9h ; Pb为位控制端口 LED1: mov al, ah ;取出位显示代码 out dx, al;送出位码call delay;实现数码管延时显示rol ah,1;指向下一个数码管cmp ah,0feh;最右边的数码管? jnz LED1;显示下一个数字 jmp DJ pop dxpop bxpop axretLEDtb db 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h, 7fhdisp endp12.1 题省略,p.292 解: 串行异步通信发送01010101,起止式,奇校验,两个停止位启动 1 0 1 0 1 0 1 0 校验停止N=1200bps/12 =100 字符ps12.3 题省略,见p.292 。解提示: 参见P283第一段,1. 16倍频接收。2. 连续8个有效接收才认可。参见P283下部,采用多及缓冲器是为了防止(减少)溢出错误。12.5 欲使通信字符为8个数据位、偶校验、2个停止位,则应向8250 通信线路控制 寄存器写入控制字00 011 1 11 ,其在PC机上的I/O地址(COM2)是 2F82FFH 。12.7 题略,参见p.293解:程序头部读入COM1的IIR内容,判断是否FIFO,是则条件转移;不是则将COM1的地址保存至RS232-BASE字单元中;程序后半读入COM2的IIR内容,判断是否FIFO,是则条件转移;不是则将COM2的地址保存至相应字单元中。若没有发生条件转移,RS232-BASE字单元中存放的是3F8H。12.8 设定某次串行异步通信的数据为8位、无校验、1个停止位,传输速率为4800bps,采用中断工作方式。按此要求写出PC系列机中对第2个串行通信口的初始化程序。解:初始化程序包括4个部分,先计算分频值N=1.8432M/(4800*16)=24, 写入除数寄存器,设置传输率 写入通信线路控制寄存器,设置字符格式 写入调制解调器控制寄存器,设置工作方式 写入中断允许寄存器,设置中断允许或屏蔽位;MOV AL, 80HMOV DX, 2FBHOUT DX, AL ;写入通信线路控制寄存器,使DLAB1MOV AX, 24;
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!