文档详情

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

huo****ian
实名认证
店铺
DOC
296.51KB
约30页
文档ID:156772675
上大计算机专业接口技术课程习题答案_第1页
1/30

题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) = 2283.34375 D = 989350.375 D1.12解:八位机器数原码、反码、 补码、 移码 +37 00100101 00100101 00100101 10100101 -37 10100101 11011010 11011011 010110111.13解:补码机器数扩充为16位和32位形式 +37 0025 H 00000025 H -37 FFDB H FFFFFFDB H1.14 解:46H作为无符号数 = 70 D 46H作为补码 = +70 D 46H作为BCD码 = 46 D 46H作为ASCII码 = ‘F’1.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 根地址线在访问内存时使用地址 A0~A19 ,可直接寻址 1MB 容量的内存范围;在访问外设时使用地址线 A0~A15 ,共能寻址 64K 个输入输出端口 实际上PC/XT在寻址外设时,只使用地址线A9~A0;若A9=1,说明它要寻址的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之间插入TW4.6参见p.99,p.110 8088的某些输出线有三种状态:高电平、低电平、悬空(高阻态),称为三态能力在高阻状态,CPU放弃其了对该引脚的控制权,由连接它的设备接管 具有三态能力的引脚有:AD7~AD0,A15~A8,A19/S6~A16/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控制导通方向:DIR=1,A→B;DIR=0,A←B4.17 参见p.111-112归纳为:1、8086数据总线变为16位,数据地址线复用为AD15~AD0 2、8086指令队列程度变为6字节长,当有2个字节空才取下一指令 3、8088引脚IO/M* ,8086变为M/IO*;4、引脚SS0* 变为BHE*/S7,BHE* 的作用是使D15~D8有效5、8086存储器组织为奇偶分块,偶地址取字只要读1次,奇地址取字需要读两次6、I/O端口大都采用偶地址,目的是引导8位数据到低8位总线AD7~AD0上,以提高效率5.1 Cache、主存和辅存的作用——参见 p.120~121 虚拟存储器——参见p.121 在CPU看来,访问主存和访问辅存有什么不同? 访问主存:通过存储器访问机器指令,按字随机访问 访问辅存:通过操作系统,按块顺序访问5.2 在半导体存储器中,RAM指的是 随机存取存储器 ,它可读可写,但断电后信息一般会 丢失 ;而ROM指的是 只读存储器 ,正常工作时只能从中 读取 信息,但断电后信息 不会丢失 。

以EPROM芯片2764为例,其存储容量为8K×8位,共有 8 条数据线和 13 条地址线用它组成64KB的ROM存储区共需 8 片2764芯片5.4 一个容量为4K×4位的假想RAM存储芯片,他应该有多少根地址线引脚和多少根数据线引脚?如果让你来进行设计,那么它还需要哪些控制引脚?这些引脚分别起什么样的控制作用?解答:4K×4的芯片应该有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 41162114(1) A9~A0I/O4~I/O1片选1D3~D0D7~D4A9~A02114(2)A9~A0I/O4~I/O1CECE2114(1) A9~A0I/O4~I/O1片选32D3~D0D7~D4A9~A02114(2)A9~A0I/O4~I/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 ~ 85FFFHC0000~C1FFFHC2000~C3FFFHC4000 ~C4FFFHC5000 ~C5FFFH重复地址由于A19A18的不定性,每片各有4段范围。

5.11采用全译码方式和6264芯片( SRAM,容量8K×8位),在内存40000H~43FFFH区段扩充RAM,请画出这些芯片与最大组态的系统总线的连接示意图解: 方法为:容量=末地址-首地址+1=214=16KB,所以要2片6264芯片 A12~A0为片内地址,A15~A13作片选译码的输入CBA,A19~ A16A15~ A13A12~A0地址范围1201000100000001全0~全1全0~全140000H~41FFFH42000H~43FFFH5.13 采用3:8译码器74LS138和2764芯片(EPROM,8K×8位),通过全译码方式在8088系统的地址最高端组成32KB的ROM区,请画出各2764芯片与8088最大组态下形成的线条总线的连接示意图解答: 注意地址最高端组成32KB的ROM区,意味着地址范围是 F8000H~FFFFFH,这样最高五根地址线A19~A15上要全为12764芯片的片内地址是13根即A12~A0,它们是全0到全1变化;现在需要4片来构成32KB存储区,采用3:8译码器的话,A15~A13应该取后4种情况,即取100~111分别产生Y4~Y7。

其余地址线可以以多种方式组合产生控制信号A19~ A16A15~ A13A12~A0地址范围12341111111111111111100101110111全0~全1全0~全1全0~全1全0~全1F8000H~F9FFFHFA000H~FBFFFHFC000H~FDFFFHFE000H~FFFFFHA12~A0(1)2764(2)2764 CECEA15 A14A13A16CBAE3138 A17Y7E2E1A12~A0(3)2764(4)2764 CECEY6Y5Y4A19A18 D7~D0考虑:如果要求地址从低端开始的话,高5位全0,即00000H~07FFFH,如何连接?5.16访问的局部性原则 ——P122 第1行高速缓存和虚拟存储的目的 ——p121下部6.1 在80x86系统中,I/O端口的地址采用 独立 编码方式,访问端口时要使用专门的 I/O 指令,有 2 种寻址方式,其具体形式是: 直接寻址和DX间接寻址 6.2 一般的I/O接口电路安排有哪三类寄存器?他们各自的作用是什么?解答: (参见p.154) ⑴ 数据寄存器 保存外设给CPU和CPU发往外设的数据。

⑵ 状态寄存器 保存外设或接口电路的状态 ⑶ 控制寄存器 保存CPU给外设或接口电路的命令K7K1K0+5VD0~D7A0~A15CLKLS06反相驱动器LS2738D锁存器LS244三态缓冲器8000H译码+5VLED0LED7……GIOWIOR6.4解: K0单独按下:输入0FEH,控制L0 —〉L7 依次循环亮灯, K1单独按下:输入0FDH,控制L7 —〉L0 反向依次循环亮灯, 程序流程略 BEG: MOV DX,8000H LOP0: IN AL,DX MOV BL,AL MOV CX,8 ;循环次数 CMP AL,0FEH ;测试是否K0单独按下 JZ LOP1 CMP AL,0FDH ;测试是否K1单独按下 JZ LOP2 JMP LOP0 ; LOP1: ROL BL,1 ;利用AL初值作为开始位置 MOV AL,BL NOT AL ;因为有反相器LS06 OUT DX,AL CALL DELAY LOOP LOP1 JMP LOP0 ; LOP2: ROR BL,1 ;利用AL初值作为开始位置 MOV AL,BL NOT AL ;因为有反相器LS06 OUT DX,AL CALL DELAY LOOP LOP2 JMP LOP06.5 数据口地址为FFE0H,状态口地址为FFE2H,当状态标志D0=1时输入数据就绪,编写查询方式进行数据传送程序,读入100个字节,写到2000H:2000H开始的内存中。

解: (程序格式参见p.63~64 ) .CODE MOV AX, 2000H MOV DS,AX ;段地址 MOV BX,AX ;偏移地址 MOV CX,100 NEXT:MOV DX,0FFE2H STATUS:IN AL,DX ;读入状态 TEST AL,01H JZ STATUS DEC DX DEC DX ;数据口地址 IN AL,DX MOV [BX],AL INC BX LOOP NEXT MOV AX, 4C00H ;结束 INT 21H 6.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: …… 参考答案二: .DATA addr DB ‘xx……xx$’ .CODE MOV AX, @DATA MOV DS, AX LEA BX, addr Status: IN AL, 80H ;读入状态,if D7=1,为负数 CMP AL, 0 ;或 ROL AL,1 JS Status ; JC STATUS MOV AL, [BX] CMP AL, ‘$’ JZ endof OUT 80H, AL INC BX JMP Status Endof: MOV AX, 4C00H INT 21H 6.7 以可屏蔽中断为例,说明一次完整的中断过程主要包括那些环节?8088响应可屏蔽中断请求时需要先满足那些前提条件?答: 中断过程的主要环节:( 参见p.165 ) 中断请求、中断响应、关中断、断点保护、中断源识别、现场保护、中断服务、恢复现场、开中断、中断返回。

8088响应可屏蔽中断请求时需要先满足: 中断允许——IF=1 当前指令执行完毕6.8什么是中断源?为什么要设立中断优先权?什么是中断嵌套?何种情况下程序可能发生中断嵌套?答: 中断源:计算机系统中引起中断的事件或原因 当多个中断源同时请求时,CPU需要利用中断优先权决定首先响应哪一个;当一个中断正在服务时,又发生了新的中断请求,CPU需要利用中断优先权确定后者是否优先权更高,以便实现中断嵌套 中断嵌套:当一个中断服务时CPU又响应新的中断请求就形成中断嵌套 CPU允许中断(开中断)、新的中断请求比正在服务的中断优先权更高,通常发生中断嵌套6.9参见P.167流程 MOV DX,8001H STATUS:IN AL,DX TEST AL,01H JZ NEXT1 ; D0未置1则转测下一位 CALL PROC0 JMP STATUSNEXT1: TEST AL,02H JZ NEXT2 CALL PROC1 JMP STATUSNEXT2: TEST AL,04H JZ NEXT3 CALL PROC2 JMP STATUSNEXT3: TEST AL,08H JZ STATUS CALL PROC3 JMP 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.192~1938.2 8088中断向量表的作用是什么?(参见p.194)答: 它是中断向量号到对应的中断服务程序入口地址的链接表。

通过中断向量号n,可以读取中断向量表的物理地址为 n*4 开始的单元,获取中断服务程序的入口地址(即中断向量),长度4个字节8.3 说明程序段的功能: (程序略,见p.212 上)答: 此段程序将中断服务程序intproc的入口地址写入中断向量表的80h*4开始的单元中 (stows 是数据串传送指令,参见p.78 (实际上可以使用指令序列: mov ax,seg intproc mov ds,ax mov dx,offset intproc mov ax,2580h int 21h 来完成相同功能)8.4 8259A中IRR、IMR和ISR三个寄存器的作用是什么?答: ( 参见p.196~197 )• 中断请求寄存器IRR– 保存8条外界中断请求信号IR0~IR7的请求状态– 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 0011 out 20h,al ;ICW1 mov al,08h ;00001000 out 21h,al ;ICW2 mov al,09h ;00001001 out 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 解:在A0=1时读出的是IMR寄存器的内容8.8 题略p.212解:根据题意:SFNM=0,AEOI=0,LTIM=0,ICW1=00010011,ICW2=90H,ICW4=0000x101,初始化8086 所接的8259A中断控制器: MOV DX, 0FFDCH ;对应20H端口 MOV AL, 13H OUT DX, AL MOV DX, 0FFDEH ;对应21H端口 MOV AL, 90H OUT DX, AL MOV AL, 05H OUT DX, 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在进入中断服务程序前的中断响应期内会自动关中断(令IF=0),所以对于不十分重要的中断源,其中断服务程序的人口处要开中断,以便可以实现中断嵌套题9.3 8253每个通道有 6 种工作方式可供选择若设定某通道为方式0后,其输出引脚为 低 电平;当 写入计数初值(并进入减1计数器) 后通道开始计数, CLK 信号端每来一个脉冲 减1计数器 就减1;当 计数器减为0 ,则输出引脚输出 高 电平,表示计数结束8253的CLK0接1.5MHz的时钟,欲使OUT0产生频率为300KHz的方波信号,则8253的计数值应为 5(=1.5MHz÷300KHz) ,应选用的工作方式是 3 9.4 按要求编写8253初始化程序,对应计数器0~2和控制字的I/O端口地址为204H~207H。

1)使计数器1工作在方式0,仅用8位二进制计数,初值为1282)使计数器0工作在方式1,按BCD码计数,计数值为30003)使计数器2工作在方式2,计数值为02F0H解:(1) MOV AL,01010000B ;即50H MOV DX,207H OUT DX,AL MOV AL,128 ;或80H MOV DX,205H OUT DX,AL (2) MOV AL,00100011B ;即23H,或用33H初值3000H MOV DX,207H OUT DX,AL MOV AL,30H ;仅送高8位 MOV DX,204H OUT DX,AL (3) MOV AL,10110100B ;即0B4H MOV DX,207H OUT DX,AL MOV DX,206H MOV AX,02F0H OUT DX,AL MOV AL,AH OUT DX,AL 9.5 设8253计数器0~2和控制字的I/O地址依次为F8H~FBH,说明如下程序的作用 mov al, 33 ;0011 0011 out 0fbh, al mov al, 80h out 0f8h, al mov al, 50h out 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方式1 MOV DX,203H OUT DX,AL MOV DX,200H MOV AL,100 OUT 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 ;ICW1 OUT 20H,AL MOV AL,08H ;ICW2 OUT 21H,AL MOV AL,07H ;ICW4 OUT 21H,AL 对应中断屏蔽字为11101111,中断屏蔽位设置程序: IN AL,21H ;读出IMR AND AL,0EFH ;设置允许IRQ4 ,其它位不影响 OUT 21H,AL ;再写入IMR 即OCW19.9 扬声器控制发音程序:子程序speaker、speakon、speakoff参见p.223解:参考答案一、 .DATA P1 DW 1193180/524 P2 DW 1193180/588 P3 DW 1193180/660 P4 DW 1193180/698 P5 DW 1193180/784 P6 DW 1193180/880 P7 DW 1193180/998 P8 DW 1193180/1048 .CODE MOV AX, @DATA MOV DS, AX keyin: MOV AH,1 INT 21H ;等待按键 CMP AL,1BH ;是否ESC JZ EXIT CMP AL,31H JZ PP1 CMP AL,32H JZ PP2 CMP AL,33H JZ PP3 CMP AL,34H JZ PP4 CMP AL,35H JZ PP5 CMP AL,36H JZ PP6 CMP AL,37H JZ PP7 CMP AL,38H JZ PP8 CALL speakoff JMP keyin EXIT: MOV AX,4C00H INT 21H PP1: MOV AX,P1 CALL speaker CALL speakon JMP keyin ;……程序段PP2~PP7 略 PP8: MOV AX,P8 CALL speaker CALL speakon JMP keyin 参考答案二、 .DATA addr DW 2277,2029,1808,1709 DW 1522,1356,1196,1139 .CODE MOV AX, @DATA MOV DS, AX keyin: MOV AH,1 INT 21H ;等待按键 CMP AL,1BH ;是否ESC JZ exit CMP AL,31H JL stop ;< ’1’ CMP AL,38H JG stop ;> ’8’ AND AL,0FH ;截取数1~8 DEC AL ;成为0~7 SHL AL ;因为DW,*2 LEA BX,addr ;数据表起始地址 MOV AH,0 ADD BX,AX MOV AX,[BX] CALL speaker CALL speakon JMP keyin stop: CALL speakoff JMP keyin exit: MOV AX,4C00H INT 21H9.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-1 OUT 05H,AL MOV AL,AH OUT 05H,AL10.8 PC机8237A通道2传送的内存起始地址为C8020H,请给出地址寄存器编程解: MOV AL,20H OUT 04H,AL MOV AL,80H OUT 04H,AL MOV AL,0CH OUT 81H,AL ;参见p.239表10.9 XT机执行了下面两条指令后,会产生什么作用? mov al, 47h ;01 0 0 01 11 out 0bh, al解: 从端口地址0BH可知,这是方式寄存器;这两条指令执行后对通道3进行了方式设置,具体为:以单字节模式、地址递增、禁止自动初始化、在通道3上进行DMA写。

10.10 题略,参见p.242;寄存器地址参见p.234表10-2解: MOV DX, 0CH ;指向 高/地触发器 MOV AL, 0 OUT DX, AL ;清除高/地触发器 MOV DX, 09H ;指向 请求寄存器 OUT DX, AL ; MOV AX, 01 OR AX, SI MOV DX, 0BH ;指向 方式寄存器 OUT DX, AL ;设置工作方式 MOV AX, ES ;取段地址 MOV CL, 04 ROL AX, CL ;左移4位 MOV CH, AL ;暂存高位地址 AND AL, 0F0H ;屏蔽掉高位,取有效的低位 ADD AX, BX ;加上偏移地址 JNC NET1 ;有进位则 INC CH ;高位加1NET1: MOV DX, 02 ;指向通道1的地址寄存器 OUT DX, AL MOV AL, AH OUT DX, AL MOV AL, CH AND AL, 0FH MOV DX, 83H ;指向 通道1的页面寄存器 OUT DX, AL MOV AX, DI ;N DEC AX ;N-1 MOV DX, 03 ;指向 通道1的字节数寄存器 OUT DX, AL ;写入计数值低8位 MOV AL, AH OUT DX, AL ;写入计数值高8位 MOV DX, 0AH ;指向 单通道屏蔽字 MOV AL,1 OUT DX, AL MOV DX,8 ;指向 命令寄存器 MOV AL,60H ;01100000 OUT DX, AL MOV DX,08H ;指向 状态寄存器NET2:IN AL,DX ;读入状态字 AND AL,02H ;判通道1传送结束否,D1=1? JZ NET2 ;没有结束继续读入状态答: 若主机通过通道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的数据各位的含义是:PC7~6为输入信息或输出锁存信息(根据端口C上部的输入/出定义);PC5~3为端口A的输入缓冲器满否、内部触发器状态、有否中断请求信息PC2~0为端口B的内部触发器状态、输出缓冲器满否、有否中断请求信息参见下图)INTRBIOBFBINTEBINTRAINTEAIIBFAINTEAOOBFAD0D1D2D3D4D5D6D7INTRBOBFBINTEBINTRAINTEAIIBFAI/OI/O输入缓冲器满外设送入数据时的锁存信号STBa(PC4脚的输入)使其有效,CPU读走数据时(RD的上升沿)使其失效。

口A中断请求输出(PC4)允许口A中断请求输出脚(PC3)状态口B中断请求输出(PC2)允许口B中断请求输出脚(PC0)状态输出缓冲器满CPU写入数据时(WR=0)使其有效,外设取走数据时应答信号ACKb(PC2脚的输入)使其失效11.5 对8255A的控制寄存器写入B0H,则其端口C的PC5引脚是什么作用的信号线?解: B0H = 10110000 B,可知8255A端口A工作于方式1输入,所以PC5引脚的作用是IBFA,为1表示输入缓冲器满11.6 节用8255A端口A方式0与打印机连接,如果采用端口B,其他不变,请说明应该如何修改接口电路和程序参见p.253)解: 连接图中只要把端口A改成端口B即可程序中控制方式字可作必要的修改,“mov al,10000001B”可以修改为“mov al,1×××0001B”,只要保持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初始化程序 MOV AL,81H MOV DX,0FFFEH OUT DX,AL ; MOV DX,0FFFCH IN AL,DX ;开关闭合时,输入0 MOV CL,4 ROL AL,CL ;低4位移至高4位 NOT AL ;取反,变0为1 OUT DX,AL11.16 题略,参见p.275 mov dx, 0fffbh ;初始化8255A mov al, 89h ;1000 1001b out dx, al ;disp proc push ax push bx push dx mov bx, offset LEDtbDJ: mov cl, ffh mov dx, 0fffah ;PC为输入开关口 in al, dxDJ1: inc cl shr al ;al高位补0 jc DJ1 cmp cl, 08 jz XS mov al, cl xlat 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 dx pop bx pop ax ret LEDtb 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)是 2F8~2FFH 12.7 题略,参见p.293解: 程序头部读入COM1的IIR内容,判断是否FIFO,是则条件转移;不是则将COM1的地址保存至RS232-BASE字单元中;程序后半读入COM2的IIR内容,判断是否FIFO,是则条件转移;不是则将COM2的地址保存至相应字单元中 若没有发生条件转移,RS232-BASE字单元中存放的是3F8H12.8 设定某次串行异步通信的数据为8位、无校验、1个停止位,传输速率为4800bps,采用中断工作方式按此要求写出PC系列机中对第2个串行通信口的初始化程序解:初始化程序包括4个部分,先计算分频值N=1.8432M/(4800*16)=24, ⑴ 写入除数寄存器,设置传输率 ⑵ 写入通信线路控制寄存器,设置字符格式 ⑶ 写入调制解调器控制寄存器,设置工作方式 ⑷ 写入中断允许寄存器,设置中断允许或屏蔽位 ; MOV AL, 80H MOV DX, 2FBH OUT DX, AL ;写入通信线路控制寄存器,使DLAB=1 MOV AX, 24 ;分频系数 MOV DX, 2F8H OUT DX, AL ;写入除数寄存器低8位 MOV AL, AH INC DX OUT DX, AL ;写入除数寄存器高8位 ; MOV AL, 03H ;00 000 0 11B MOV DX, 2FBH OUT DX, AL ;写入通信线路控制寄存器 ; MOV AL,0BH ;控制为OUT2*低,允许INTRPT产生请求 MOV DX, 2FCH OUT DX,AL ; MOV AL, 0FH ;开放中断 MOV DX, 2F9H OUT DX, AL ;写入中断允许寄存器 13.3题省略p.308,参见p.301 图1。

下载提示
相关文档
正为您匹配相似的精品文档