北京大学信息科学技术学院考试试卷 考试科目:微机原理B_姓名: 学号: 考试时间:2008年1月9日任课教师:王志军 装订线内 题号 一 四五六七八总分 分数 阅卷人 考场纪律 1.请持学生证入场考试,并按指定座位就座;除必要的文具和教师指定的用 具用书外,其他所有物品包括手机、呼机、MP3、电子词典、书籍、笔记、 纸张等严禁带入座位,必须放在指定位置。凡有试题印制问题请向监考教 不要答题 师提出,不得向其他考生询问。 2.认真、诚实、独立并在规定时间内完成答卷,严禁任何形式的违纪作弊行 为:否则,本答卷成绩以0分记,并根据《北京大学本科考试工作与学术 规范条例》给予纪律处分 3.提前交卷的考生不要在考场逗留,不要在门口、窗外大声喧哗。考试结束 时间到,请停止答卷,在座位等候监考教师收卷并清点完毕,方可离开考 场;考题和试卷不得带出考场。 以下为试题和答题纸,共10页
装订线内不要答题 北京大学信息科学技术学院考试试卷 考试科目: 微机原理B 姓名: 学号: 考试时间: 2008年 1 月 9 日 任课教师: 王志军 题号 一 二 三 四 五 六 七 八 总分 分数 阅卷人 以下以下为答题纸,共 页 考 场 纪 律 1. 请持学生证入场考试,并按指定座位就座;除必要的文具和教师指定的用 具用书外,其他所有物品包括手机、呼机、MP3、电子词典、书籍、笔记、 纸张等严禁带入座位,必须放在指定位置。凡有试题印制问题请向监考教 师提出,不得向其他考生询问。 2. 认真、诚实、独立并在规定时间内完成答卷,严禁任何形式的违纪作弊行 为;否则,本答卷成绩以 0 分记,并根据《北京大学本科考试工作与学术 规范条例》给予纪律处分。 3. 提前交卷的考生不要在考场逗留,不要在门口、窗外大声喧哗。考试结束 时间到,请停止答卷,在座位等候监考教师收卷并清点完毕,方可离开考 场;考题和试卷不得带出考场。 以下为试题和答题纸,共 10 页。 1
填空题(每空1分,共20分) 1.在冯诺依曼计算机中,指令和数据以_二进制的形式表示,计算机按照弃 储程序、程序控制执行的方式进行工作。 2.微机系统的硬件部分包括五个基本组成部分:运算器、控制器、主存储器、输 入设备和输出设备 3.8086CPU最小模式基本总线读操作包括4个时钟周期,当存储器或IO速度较慢 时,则需要插入。等待周期 4.对于8086CPU,物理地址是由段基址和偏移地址两部分构成,若某存储单元的 段基址为1000H,偏移地址为2345H,则该存储单元的物理地址为_12345H。 5.对于8086系统,若SS=1000H,SP=1000H,执行 PUSH BX指令之后,SS=100Q H, SP= OFFE H 6.已知AL=10001010B,BL=11000110B,执行指令 ADD AL,BL之后,ZF=0, OF 7.当前微机的存储系统分为三级,即 Cache、主存和外存。这种层次结构设计 的依据是_程序和数据访问的局部性原理。 8DMA方式是在DMAC的控制下,实现主机与外设之间数据传送的一种方 式。它除了可以直接在IO接口与存储器之间交换数据外,还可以实现内存与内存 之间、外设与外设之间的数据交换。8237进行内存与内存之间数据交换时,需 占用0和1通道。 9.异步串行接口芯片8251,引脚 TXRDY作为发送中断请求信号 10.总线可分类为:片总线、内总线和外总线。USB总线属于外总线,USB10 规范规定:一台PC机最多可连接127个USB外设。PCI属于内总线,其有 三种地址空间,即存储器空间、O空间和配置地址空间。 二、单选题(本大题共10小题,每小题1分,共10分) 1.关于8086CPU指令构成,以下说法错误的是(B)。 指令中可以只包含操作码 B.指令中可以只包含操作数 C.指令长度是可变的 D.操作数在操作码之后 2.下列8086指令中,指令执行后,AX的结果与其他三条指令不同的是(D) A. MOVAX, 0 AX C. SUBAX, AX D. OR AX, 0 2
一、填空题(每空 1 分,共 20 分) 1. 在冯.诺依曼计算机中,指令和数据以 二进制 的形式表示,计算机按照存 储程序 、程序控制执行的方式进行工作。 2. 微机系统的硬件部分包括五个基本组成部分:运算器、控制器、主存储器 、输 入设备和输出设备。 3. 8086CPU最小模式基本总线读操作包括 4 个时钟周期,当存储器或I/O速度较慢 时,则需要插入 等待周期 。 4. 对于 8086CPU,物理地址是由段基址和偏移地址两部分构成,若某存储单元的 段基址为 1000H,偏移地址为 2345H,则该存储单元的物理地址为 12345 H。 5. 对于 8086 系统,若SS=1000H,SP=1000H,执行PUSH BX指令之后,SS= 1000 H,SP=_0FFE H。 6. 已知AL= 10001010B,BL= 11000110B,执行指令ADD AL,BL之后,ZF= 0, OF= 1 。 7. 当前微机的存储系统分为三级,即 Cache 、主存和外存。这种层次结构设计 的依据是 程序和数据访问的局部性原理 。 8. DMA方式是在 DMAC 的控制下,实现主机与外设之间数据传送的一种方 式。它除了可以直接在I/O接口与存储器之间交换数据外,还可以实现内存与内存 之间、 外设与外设 之间的数据交换。8237 进行内存与内存之间数据交换时,需 占用 0 和 1 通道。 9. 异步串行接口芯片 8251,引脚 TxRDY 作为发送中断请求信号。 10. 总线可分类为:片总线、内总线和外总线。USB总线属于 外总线 ,USB1.0 规范规定:一台PC机最多可连接 127 个USB外设。PCI属于 内总线 ,其有 三种地址空间,即存储器空间、I/O空间和 配置地址 空间。 二、单选题(本大题共 10 小题,每小题 1 分,共 10 分) 1.关于 8086CPU 指令构成,以下说法错误的是 ( B )。 A.指令中可以只包含操作码 B. 指令中可以只包含操作数 C.指令长度是可变的 D.操作数在操作码之后 2.下列 8086 指令中,指令执行后,AX 的结果与其他三条指令不同的是( D ) 。 A.MOV AX,0 B.XOR AX,AX C.SUB AX,AX D.OR AX,0 2
3.执行ⅣNAL,70H时,8086CPU外部管脚状态是(D)。 A.RD=0、WR=1、M/IO= B.RD=1、WR=0、M/IO=1 C.RD=1、WR=0、M/IO=0 D.RD=0、WR=1、M/IO=0 4.8086指令 MOVAX,BX]中源操作数的寻址方式为(B) A.寄存器寻址B.寄存器间接寻址C.直接寻址D.立即寻址 5.在下列伪指令中定义字节变量的是(A)。 A. DB C. DD D. DI 6.8086CPU,若NMI、除法中断和INTR同时产生,则CPU执行完当前指令后对 中断请求的检测顺序为(D)。 A.NM、除法中断、INTR B.NMI、INTR、除法中断 装订线内 C.INTR、除法中断、NMI D.除法中断、NMI、INTR 7.8086CPU执行算术运算指令不会影响的标志位是(D)。 A.溢出标志B.符号标志 C.零标志 D.方向标志 8.采用虚拟存储器技术的目的是(D)。 A.提高CPU访问主存速度 B.扩大外存的存储空间 C.提高CPU访问外存速度 D.扩大存储器的寻址空间 9.6片8259A级联最多可以管理(D)个中断。 B.40 10.8251在数据传输过程中,不能检测到的错误是(A)。 A.同步字符错B.数据溢出错 C.奇偶校验错D.帧格式错 不要答 三、改错题(下列每题均有错,请改正。每题1分,共8分) 1.异步通信格式中,起始位和停止位均为逻辑0。 停止位为逻辑1 2.半导体静态随机存储器是靠电荷存储器件(电容)存储信息。 半导体动态存储器 3.8086CPU从功能上分为EU和BU两部分EU和BU按照串行的方式进行工作 按照并行方式 4.程序直接控制、中断和DMA三种数据传送方式中,中断方式的传输速率最高。 DMA方式
装订线内不要答题 3.执行 IN AL,70H 时,8086CPU 外部管脚状态是( D )。 A.RD =0、WR =1、 IO/M =1 B.RD =1、WR =0、 IO/M =1 C.RD =1、WR =0、 IO/M =0 D.RD =0、WR =1、 IO/M =0 4.8086 指令 MOV AX,[BX] 中源操作数的寻址方式为( B )。 A.寄存器寻址 B.寄存器间接寻址 C.直接寻址 D.立即寻址 5.在下列伪指令中定义字节变量的是 ( A )。 A.DB B.DW C.DD D.DT 6.8086CPU,若 NMI、除法中断和 INTR 同时产生,则 CPU 执行完当前指令后对 中断请求的检测顺序为( D )。 A.NMI、除法中断、INTR B.NMI、INTR、除法中断 C.INTR、除法中断、NMI D.除法中断、NMI、INTR 7. 8086CPU 执行算术运算指令不会影响的标志位是( D )。 A.溢出标志 B.符号标志 C.零标志 D.方向标志 8.采用虚拟存储器技术的目的是( D )。 A.提高 CPU 访问主存速度 B.扩大外存的存储空间 C.提高 CPU 访问外存速度 D.扩大存储器的寻址空间 9.6 片 8259A 级联最多可以管理( D )个中断。 A.48 B.40 C.44 D.43 10. 8251 在数据传输过程中,不能检测到的错误是( A )。 A.同步字符错 B.数据溢出错 C.奇偶校验错 D.帧格式错 三、改错题(下列每题均有错,请改正。每题 1 分,共 8 分) 1. 异步通信格式中,起始位和停止位均为逻辑 0。 停止位为逻辑 1 2. 半导体静态随机存储器是靠电荷存储器件(电容)存储信息。 半导体动态存储器 3. 8086 CPU 从功能上分为 EU 和 BIU 两部分,EU 和 BIU 按照串行的方式进行工作。 按照并行方式 4. 程序直接控制、中断和 DMA 三种数据传送方式中,中断方式的传输速率最高。 DMA 方式 3
5.8086是16位CPU,80286是32位CPU。 80286是16位CPU 6.8086CPU从奇地址读出1个字时,需要1个总线周期。 2个 7.8251异步通信格式中,停止位只能选择1位或2位。 还可选1.5位 8.8086CPU通过控制总线读取IO端口的状态信息。 通过数据总线 四、简答题(每小题4分,共12分) 比较8086CPU子程序调用和执行中断服务操作的异同。 相同:两者均发生断点保护、程序转移和程序返回 差异:子程序调用是确定的,中断多数是随机的;子程序调用时保护 断服务保护IP、CS、FLAG。 2.简述IO端口两种编址方式的优缺点。 单独编址:译码电路简单、内存空间大;需专用I/0指令和引脚信号 与存储器统一编址:指令、引脚信号统一;译码电路复杂、内存减少 3.比较异步串行通信和同步串行通信的异同。 相同:均为串行通信,即信道上一位一位地传送数据。 差异: 异步通信:以字符为单位传送,每个字符需加起始位和停止位,收发时钟可独立; 同步通信:以数据块为单位传送,字符块前需加同步字符,收发时钟也需同步;
5. 8086 是 16 位 CPU,80286 是 32 位 CPU。 80286 是 16 位 CPU 6. 8086CPU 从奇地址读出 1 个字时,需要 1 个总线周期。 2 个 7. 8251 异步通信格式中,停止位只能选择 1 位或 2 位。 还可选 1.5 位 8. 8086CPU 通过控制总线读取 I/O 端口的状态信息。 通过数据总线 四、简答题(每小题 4 分,共 12 分) 1. 比较 8086CPU 子程序调用和执行中断服务操作的异同。 相同:两者均发生断点保护、程序转移和程序返回 差异:子程序调用是确定的,中断多数是随机的;子程序调用时保护 IP、CS,中 断服务保护 IP、CS、FLAG。 2. 简述 I/O 端口两种编址方式的优缺点。 单独编址:译码电路简单、内存空间大;需专用 I/O 指令和引脚信号 与存储器统一编址:指令、引脚信号统一;译码电路复杂、内存减少。 3. 比较异步串行通信和同步串行通信的异同。 相同:均为串行通信,即信道上一位一位地传送数据。 差异: 异步通信:以字符为单位传送,每个字符需加起始位和停止位,收发时钟可独立; 同步通信:以数据块为单位传送,字符块前需加同步字符,收发时钟也需同步; 4
五、汇编语言编程(每小题5分,共20分) 1.分析填空。 MOV AX OIH MOV BX 02H PUSH BX PUSH AX POPBⅩ 执行后BX=0H POP AX 执行后AX=02H MOV AX, 3F5FH 执行后AL=5FH MOV CX, 4 ROR AL, CL 执行后AL=0F5H 装订线内 AND AL, OFH 执行后AL=05H 2.若STR是字符串的首地址,指出下列程序的功能,并在所给程序段的划线处将 语句加上注解。 LEA BX,STR:;取STR的偏移量放到BX中 MOV CX, 20 LP CMP[BX],“* UNZ NEXT:BX所指单元内容不为‘*’,则转移至NEXT MoOⅤBⅪ],$’;将B所指单元用‘8”替代 NEXT: INC BX LOOP LP HLT 不要答 程序的功能:将STR开始的前20个字符中的‘*用“$”替代 3.在BUF开始有一个字节型数组,共有100个元素,以下程序段用于计算这个数 组中非零元素的个数,并将结果存入内存 COUNT单元,在所给程序段的划线处 填入适当指令或指令的一部分,使其完成指定功能。 BUF DB 100 DUP(?) COUNT DB O START MOv AX, DATA MOV DS, AX LEA SI, BUF MOVCⅩ,100 CON MOV AL, SI CMP AL, 0 (转下页)
装订线内不要答题 五、汇编语言编程(每小题 5 分,共 20 分) 1. 分析填空。 MOV AX, 01H MOV BX, 02H PUSH BX PUSH AX POP BX ;执行后 BX=__01H ____ POP AX ;执行后 AX=__02H ____ MOV AX,3F5FH ;执行后 AL=___5FH____ MOV CX,4 ROR AL,CL ;执行后 AL=___0F5H___ AND AL,0FH ;执行后 AL=___05H___ 2. 若 STR 是字符串的首地址,指出下列程序的功能,并在所给程序段的划线处将 语句加上注解。 LEA BX,STR ;取STR 的偏移量放到BX中 MOV CX,20 LP : CMP [BX],‘*’ JNZ NEXT ;BX所指单元内容不为‘*’,则转移至NEXT MOV [BX],‘$’ ;将BX所指单元用‘$’替代 NEXT: INC BX LOOP LP HLT 程序的功能:将STR开始的前 20 个字符中的‘*’用‘$’替代 3. 在 BUF 开始有一个字节型数组,共有 100 个元素,以下程序段用于计算这个数 组中非零元素的个数,并将结果存入内存 COUNT 单元,在所给程序段的划线处 填入适当指令或指令的一部分,使其完成指定功能。 BUF DB 100 DUP (?) COUNT DB 0 ………….. START: MOV AX,DATA MOV DS,AX LEA SI, BUF MOV CX,100 CON: MOV AL,[SI] CMP AL,0 (转下页) 5
NEXT INC COUNT NeXT LOOP CON HLT 4.以下程序实现的功能是冒泡排序算法,对起始地址为VAR的字型数组进行排 序,请根据要求在所给程序段的划线处填空 DSEG SEGMENT VAR 100 DUP(?) N EQU(S-VAR)TYPE VAR 计算N的值:N=100 ENDS CSEG SEGMENT ASSUME CS CSEG, DS DSEG START X. DSEG 补齐此处程序代码 MOV DS AX MOVCⅩ LOOPI MOV DI. CX LEA VAR LOOP2 MOV X,[BX+2] JGE CONTINUE XCHG AX, BX+21 MOV BX AX CONTINUE: ADD BX TYPE VAR ;补齐此处程序代码 LOOPLOOP MovCⅩ LOOP LOOPI MOV AH 4CH 补齐此处程序代码 21H CSEG ENDS END START 程序执行结束后,起始地址为VAR字型数组中数据元素大小的排列顺序为:由大 至小
JZ NEXT INC COUNT NEXT: INC SI LOOP CON HLT 4. 以下程序实现的功能是冒泡排序算法,对起始地址为 VAR 的字型数组进行排 序,请根据要求在所给程序段的划线处填空。 DSEG SEGMENT VAR DW 100 DUP(?) N EQU ($-VAR)/TYPE VAR ;计算N的值:N=_ 100__ DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX, DSEG ;补齐此处程序代码 MOV DS, AX MOV CX, N-1 LOOP1: MOV DI, CX LEA BX, VAR LOOP2: MOV AX, [BX] CMP AX, [BX+2] JGE CONTINUE XCHG AX, [BX+2] MOV [BX], AX CONTINUE: ADD BX, TYPE VAR ;补齐此处程序代码 LOOP LOOP2 MOV CX, DI LOOP LOOP1 MOV AH , 4CH ;补齐此处程序代码 INT 21H CSEG ENDS END START 程序执行结束后,起始地址为VAR字型数组中数据元素大小的排列顺序为:由大 至小 。 6
六、(本题8分) 8086系统使用8255A扩展键盘接口电路如下图所示。8255A的端口A工作于 方式0、输入;端口C输出。设8255A端口地址范围为:80H-83H。 co d n o 系统总线 装订线内 8255A PA7 (1)编写8255A的初始化程序(控制字无关位置0),并加简要注释 M0VAL,100100008;端口A方式0,输入;端口C输出 ouT 83H. AL (2)编写CPU扫描键盘程序段(无键按下时,循环扫描;确认有键按下时,退出), 并加简要注释。 SCAN: MOV AL OBH 不要答 out 83H. AL 扫描笫一行 JNZ DSCAN 判断是否有键按下 MOV AL, 07H OuT 83H. AL ;扫描笫二行 IN AL. 80H CMP AL, FFH JZ SCAN 判断是否有键按下 DSCAN: MOV BL. AL CALL DELAY-2 OMS 延时20ms CMP AL, BL 7
装订线内不要答题 六、(本题 8 分) 8086 系统使用 8255A 扩展键盘接口电路如下图所示。8255A 的端口 A 工作于 方式 0、输入;端口 C 输出。设 8255A 端口地址范围为:80H~83H。 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PC0 PC1 PC2 PC3 8255A 系 统 总 线 Vcc (1)编写 8255A 的初始化程序(控制字无关位置 0),并加简要注释; MOV AL, 10010000B ;端口 A 方式 0,输入;端口 C 输出 OUT 83H, AL (2)编写 CPU 扫描键盘程序段(无键按下时,循环扫描;确认有键按下时,退出), 并加简要注释。 SCAN: MOV AL,0BH OUT 83H, AL ;扫描第一行 IN AL, 80H CMP AL, FFH JNZ DSCAN ;判断是否有键按下 MOV AL,07H OUT 83H, AL ;扫描第二行 IN AL, 80H CMP AL, FFH JZ SCAN ;判断是否有键按下 DSCAN: MOV BL, AL CALL DELAY-20MS ;延时 20ms IN AL, 80H CMP AL, BL 7
JNZ SCAN ;判断是否同一键 HLT ;确认有键按下 七(第一小题4分,第二小题6分,共10分) 1、利用4K×4位的RAM芯片构建8086系统存储器,给定存储地址空间为: A4000H~C7FFFH,则需要这样的RAM芯片 片,系统需译码出片选 2、8086系统存储器部分电路如下图所示 D15~D8 A13~A1 A12~A0 A12-A0 A17 -G2A A19-72B SRAM2 A16-C A15 A14 BHE (1)该存储系统总容量为8KW/16KB (2)存储器译码方式为部分译码方式 (3)SRAM1的地址空间为04000H-07FFEH(偶); 与其重叠地址空间为44000H-4FFEH(偶) (4)SRAM2的地址空间为04001H-07FFH(奇) 与其重叠地址空间为44001H-47HFFH(奇)
JNZ SCAN ;判断是否同一键 HLT ;确认有键按下 七、(第一小题 4 分,第二小题 6 分,共 10 分) 1、利用 4K×4 位的RAM芯片构建 8086 系统存储器,给定存储地址空间为: A4000H~C7FFFH,则需要这样的RAM芯片 72 片,系统需译码出片选 线 36 条。 2、8086 系统存储器部分电路如下图所示 G1 G2A G2B A B C Y1 74LS138 CS D7~D0 A12~A0 SRAM1 D7 ~ D0 D15~D8 A13~A1 CS D7~D0 A12~A0 SRAM2 A19 A17 M/IO A16 A15 A14 ≥1 ≥1 BHE A0 (1)该存储系统总容量为 8KW / 16KB ; (2)存储器译码方式为 部分译码 方式; (3)SRAM1 的地址空间为 04000H~07FFEH(偶) ; 与其重叠地址空间为 44000H~47FFEH(偶) ; (4)SRAM2 的地址空间为 04001H~07FFFH(奇) ; 与其重叠地址空间为 44001H~47FFFH(奇) 。 8
八、(本题12分) 利用计数器定时器8253设计数字频率计。其基本思想为:使用8253对被测 数字信号进行为期1秒的计数,其计数值即为被测信号的频率。 测量启动脉冲信号 GATE o Vcc OUTO GATE ↓[时钟 被测方波信号 装订线内 CLK2 82530UT2 o厂给CPU中断信号 (1)简要说明设计方案、8253各通道工作方式和计数初值,并连线上图;(必要 时可添加1个门电路) 利用CNT0、CNT1产生秒脉冲(由启动脉冲启动),秒脉冲作为CNT2计数器门控信 号;秒脉冲结束后中断CPU,C門U读取CNT2计数值,计算信号频率, CNT0:方式3,计数初值100;100分频1MHz,产生10KHz时钟; CNT1:方式1,计数初值10000,产生秒脉冲; CNT2:方式1,计数初值0;对被测信号计数 不要答题 (2)说明该频率计可测量信号频率的上限值为多少 被测信号最多在1秒钟内计数65536次,上限频率为:65535Hz (3)画出8086CPU完成一次测量的软件流程图
装订线内不要答题 八、(本题 12 分) 利用计数器/定时器 8253 设计数字频率计。其基本思想为:使用 8253 对被测 数字信号进行为期 1 秒的计数,其计数值即为被测信号的频率。 GATE0 GATE1 CLK0 CLK1 OUT0 OUT1 系 统 总 线 被测方波信号 测量启动脉冲信号 1MHz 时钟 Vcc GATE2 CLK2 OUT2 给CPU中断信号 8253 (1)简要说明设计方案、8253 各通道工作方式和计数初值,并连线上图;(必要 时可添加 1 个门电路) 利用 CNT0、CNT1 产生秒脉冲(由启动脉冲启动),秒脉冲作为 CNT2 计数器门控信 号;秒脉冲结束后中断 CPU,CPU 读取 CNT2 计数值,计算信号频率。 CNT0: 方式 3,计数初值 100 ;100 分频 1MHz,产生 10KHz 时钟; CNT1: 方式 1,计数初值 10000;产生秒脉冲; CNT2: 方式 1,计数初值 0 ;对被测信号计数 (2)说明该频率计可测量信号频率的上限值为多少; 被测信号最多在 1 秒钟内计数 65536 次,上限频率为:65535Hz (3)画出 8086CPU 完成一次测量的软件流程图。 9
附件:8255A有关控制字和状态字 (1)8255A方式选择控制字 方式选择控 制字标识位 组方式选择 h)0输出 0输 1X方式2 1输入 纽组方式选择 0输出 0方式0 C-PC (方式0时)0输出 (2)8255A端口C置1/置0控制字 0 Ds D5 DD,ID2I D, D 1:置1 端口C按位置1置0 X 控制字标识位 位选择
附件:8255A 有关控制字和状态字 (1)8255A 方式选择控制字: (2)8255A 端口 C 置 1/置 0 控制字: 10