《第56章习题解答.ppt》由会员分享,可在线阅读,更多相关《第56章习题解答.ppt(23页珍藏版)》请在三一文库上搜索。
1、,第 五 、六 章 习 题 解 答,5.1 8086CPU对其I/O端口的寻址采用哪种方式?它的输入指令: IN AL,PORT;IN AL,DX; IN AX,PORT;IN AX,DX的作用有何区别?,5.1 答:8086CPU对I/O端口的寻址采用的是I/O端口单独寻址方式,它安排有专门的输入/输出指令即IN、OUT指令。4条输入指令的区别是: IN AL,PORT: 端口地址和输入的数据均为8位,即: (PORT)AL IN AL,DX: 端口地址为16位,输入的数据为8位,即:(DX)AL IN AX,PORT: 端口地址为8位,输入的数据为16位,即: (PORT)AL,(PORT
2、+1)AH IN AX,DX: 端口地址和输入的数据均为16位,即: (DX)AL,(DX+1)AH,5.4 在查询方式、中断方式以及DMA方式中,有一个共性的问题是: 系统如何知道接口部件已准备好,可以进行I/O数据传送? 试简述之。,答:在查询方式中,通过程序来检测接口电路中状态寄存器的“准备好”(Ready)位,以确定当前可否进行数据传输; 在中断方式下,当外设已准备好时,接口电路会向CPU发一个中断请求,CPU响应后,便通过运行中断服务程序来实现数据输入/输出; 在DMA方式中,外设要求传输数据时,接口电路会向DMA控制器发出DMA请求信号,导致DMA传输数据。,5.5 某输入设备的接
3、口电路中,其数据端口地址为3F8H,状态端口地址为3FEH,当其D7位为1时,表示输入数据已准备好。 试编写查询方式数据传送的程序段,要求从该设备读入100个字节,并存入到自2000H:2000H开始的内存单元之中。,解: MOV AX, 2000H MOV DS, AX ;设置数据段基址为2000H MOV BX, 2000H MOV CX, 64H ;计数器初值为100 NEXT: MOV DX, 3FEH ;状态端口地址 WAIT: IN AL, DX ;读入状态 TEST AL,80H ;设备准备好? JZ WAIT ;否,转回继续查询状态 MOV DX,3F8H ;数据端口 IN A
4、L,DX ;输入数据 MOV BX, AL ;存入缓冲区 INC BX ;指向下一单元 LOOP NEXT ;循环控制共输入100个字节 ,5.6 设计一个采用74LS138的I/O端口的地址译码器,要求能寻址的端口地址范围分别是: 340H347H;348H34FH; 350H357H;378H37FH。,答:由题目要求,该译码器使用CPU的十根地址总线A9A0,其中A9A3与一起用于对74LS138的输入,A2A0用于各接口芯片的片内I/O端口的寻址,设计的电路如图5.1所示。,M/,5.12 8259A只占用2个I/O端口地址(奇、偶地址),对其编程时将如何区别7个可编程的寄存器:ICW
5、1ICW4、OCW1OCW3?,答: 7个可编程的寄存器中占用偶地址的有ICW1、OCW2、OCW3,它们之间的互相区分则采用写入的控制字中不同的特征位的方式来进行。其中: ICW1的D4位必须为1; OCW2的D4D3位必须为00; OCW3的D4D3位必须为01。, 占用奇地址的有ICW2、ICW3、ICW4和OCW1,它们之间的互相区分则采用写入顺序来进行,其中: ICW2、ICW3、ICW4在8259A初始化编程过程中,必须严格按顺序依次写入; 而OCW1则是在初始化完成后,在8259A的工作过程中写入。,5.16 某8086系统中有三片8259A安排为非缓冲、级连使用,两从片A、B分
6、别接入主片的IR2、IR4;三片8259A的端口地址分别为20H、22H;30H、32H;40H、42H;主片及从片A、从片B的IR5上各接有一个外部中断源,其中断类型号分别为75H、7DH和85H;所有中断都采用电平触发方式、全嵌套、非自动EOI方式。试完成: 画出该系统中3片8259 A级连部分电路简要的电气原理图; 编写出全部初始化程序,答:该系统的电气原理图如下图所示。,各片的初始化程序如下:,主片的初始化程序:,MOV AL, 19H ; ICW1=0001,1001B, 电平触发,多片级连 使用, 要 ICW4 OUT 20H, AL ;写入偶地址 MOV AL, 70H ;ICW
7、2控制字: 中断类型号为70H77H OUT 22H,AL ;写入奇地址 MOV AL, 14H ; ICW3:IR4、IR2上接有从片 OUT 22H, AL MOV AL,11H ; ICW4=00010001B, 特殊全嵌套方式, ; 非自动中断结束方式,8086系统 OUT 22H, AL,从片A的初始化程序:,MOV AL,19H ;ICW1控制字:同主片 OUT 30H, AL MOV AL,78H ;ICW2控制字:中断类型号为 OUT 32H, AL 78H7FH MOV AL,02H ;ICW3控制字: 本从片的标识码 OUT 32H, AL (INT接主片的IR2) MOV
8、 AL,01H ; ICW4控制字:全嵌套、非缓冲、非自动 结束中断,8086系统 OUT 32H, AL,从片B的初始化程序:,MOV AL,19H ;ICW1控制字:同主片 OUT 40H,AL MOV AL, 80H ;ICW2控制字: 中断类型号为 80H87H OUT 42H,AL MOV AL,04H ;ICW3控制字:本从片的标识码 (INT接到主片的IR4) OUT 42H, AL MOV AL,01H ; ICW4控制字: 同从片A OUT 42H, AL,产生: 20H、22H、30H、32H、40H、42H片选信号的译码电路如右图所示。 (一),A B C 74LS138
9、,A4,A5,A6,A7,A2,20H、22H (主片),30H、32H (从片A),40H、42H (从片B),M/,1,1,A3,A0,产生: 20H、22H、30H、32H、40H、42H片选信号的译码电路如右图所示。 (二),A B C 74LS138,A4,A5,A6,A7,A0,20H2EH (主片),30H3EH (从片A),40H4EH (从片B),M/,6.4 设8253计数器02和控制字寄存器的端口地址依次为F8HFBH,说明如下程序的作用。,MOV AL,33H OUT 0FBH,AL MOV AL,80H OUT 0F8H,AL MOV AL,50H OUT 0F8H,
10、AL,程序的作用是: 对8253芯片的计数器0初始化为:工作方式1、BCD码计数、十六位计数器,计数器的初始值为5080 。,6.5 设8253的4个端口地址分别为300H、302H、304H和306H,由CLK0输入计数脉冲频率为2MHz。要求通道0输出1.5kHz的方波,通道1、通道2均用通道0的输出作计数脉冲,通道1输出频率为300Hz的序列负脉冲,通道2每秒钟向CPU发50次中断请求。试编写初始化程序,并画出8253相关引脚的连线图。 分析:按要求可知: (1)计数器0用作方波发生器(方式3),其分频系数为: N0=2106(1.5103) 1333 = 0535H (2)计数器1用作
11、分频器(方式2),其分频系数为: N1=1500300 = 5 (3)计数器2用作分频器(方式2),其分频系数为: N2=150050 =30=1EH,MOV DX,306H MOV AL,37H (或 36H) ;通道0,16位初值,方式3,BCD进制计数 OUT DX,AL ;写入通道0控制字 MOV DX,300H MOV AL,33H (或 35H) OUT DX,AL ;写入初值1333 (或0535H) 的低8位入通道0 MOV AL,13H (或 05H) OUT DX,AL ;写入初值1333 (或 0535H) 的高8位入通道0 MOV DX,306H MOV AL,54H (或 55H) ;通道2,8位初值,方式2,二进制计数 OUT DX,AL ;写入通道2控制字 MOV DX,302H MOV AL,05H OUT DX,AL ;写入通道2初值05H,MOV DX,306H MOV AL,95H(或 94H) ;通道2,8位初值,方式2, ;BCD(或 二)进制计数 OUT DX,AL ;写入通道1控制字 MOV DX,304H MOV AL,30H (或 1EH) OUT DX,AL;,
链接地址:https://www.31doc.com/p-2979820.html