《2022年[VIP专享]微机原理与接口技术课后习题答案_清华大学出版社 .pdf》由会员分享,可在线阅读,更多相关《2022年[VIP专享]微机原理与接口技术课后习题答案_清华大学出版社 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理与接口技术课后部分习题参考答案第一章2. 第 3 项任务,状态标志位的状态决定转移方向。3. 程序存储是将要执行的程序的全部指令存储到存储器中,程序控制指程序开始执行后,通过指令流控制数据或计算机,完成设定的任务。4. 分 BIU 总线接口部件和EI 执行部件两大部件,其中总线接口部件BIU 负责取指令和数据,执行部件EI 负责执行指令及运算。在执行一条指令的同时可以取下一条指令,重叠运行,速度快。5. 有 6 个状态标志,分别为进位标志CF、溢出标志OF、零标志 ZF、奇偶标志PF、负标志SF、辅助进位标志 AF 。3 个控制标志分别为中断允许标志IF 、单步标志TF、方向标志DF。
2、标志位的内容可以通过标志位操作指令来操作,例如CLC 指令清除进位位,即使CF=0,STC 指令使CF=1 ,CLI 指令使 IF=0 ,禁止中断 ,STI 指令使 IF=1 ,允许中断。还可以通过LAHF指令取来标识寄存器的内容修改后用SAHF 指令送回去。也可以用PUSHF/POPF 指令来修改标志寄存器的内容。6. 实模式下分段靠4 个段寄存器实现。段寄存器中的值就是段地址,当偏移地址为0 时的段地址 +偏移地址就是该段的起始地址。物理地址是由段地址左移4 位后与偏移地址相加形成的20 位地址。7. 说法不一定正确。对顺序执行指令的计算机是对的。对重叠或流水线的计算机就不对了。例如对 8
3、086CPU ,由于采用了取指令与执行指令的一次重叠,尽管执行一条指令的总时间并没有变化,但连续执行 n 条指令时,总的时间会大大缩短,可以简单的比喻成总时间为原时间的二分之一,快了一倍。8. 引入流水线后,执行一条指令的总时间并没有变化。9. 高速缓存的目的是提高存储器的速度,进而提高了CPU 的速度。虚拟存储器的目的是为了给程序员或程序一个大的存储或运行空间。10。8086 采用总线接口部件BIU 与执行部件EU 分开提高了速度,286 将 8086 的 BIU 进一步分成3 个部件,提高了并行性。386 在 286 基础上进一步增加成6 个逻辑部件,实现多条指令重叠,进一步提高了速度,
4、486 采用硬组合逻辑控制器,同时采用内嵌高速缓存,提高速度。Pentium 采用多流水技术,指令cache 数据 cache 技术提高速度。都采用扩展地址线数量来扩大容量。第二章1. ( 1)1000:0-1000:FFFFH, 即 10000H-1FFFFH. (2)12340-2233FH (3)略( 4)略。2. ( 1) 逻辑 1000H:2000H, 物理 12000H. (2)略( 3)略( 4)略。3. DS 可以与 BX,SI,DI等组合 , ES 可以与 BX,SI,DI 等组合 ,串指令约定与DI 组合。CS 只与 IP 组合, SS一般只与 SP 组合,也可以与BP 组
5、合。4. 便于程序运行空间保护,便于兼容早期的微处理器。5. 尽管保护模式下的寻址系统有些复杂,但从用户的角度来说,没有什么不同。6. 描述符包括基地址、界限、访问权限等信息。7. 页表要映射到20 位的物理地址中。8. 段被访问时,置1,用于统计该段被访次数。这两个A 位服务的对象不一样,不多余。第三章129 页1. 无符号分离式BCD 码。 0011 表示 3, 后面的 4 位可以是 0-9,可以表示ASCII 码 0-9。2. 由程序或程序员来定义。数据在计算机中都是用代码来表示的,一个数据(例如00110101)的意义是程序员自己掌握的,程序员把它当做一个字符,就是数字5 的 ASCI
6、I 码。如果说他是一个无符号数,就是代表十进制数53,如果说是组合式BCD 码,就代表十进制数35。3. 段定义,包括数据段,堆栈段,代码段等。数据及变量定义,约定段寄存器与段名的映射,代码段开始,代码段编程,代码段结束,汇编程序结束等。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 4. 操作符由控制器译码器解释执行,伪操作符由汇编程序(翻译程序)解释执行。5. 转移指令后的标号是偏移地址。只有当应用该标号的转移指令位置确定后
7、,在该指令地址正负128 范围内的标号是短转移,类型是字节,在16 位二进制数之内是段内的字类型,超出16 位二进制数之外的是段间转移,是双字类型。6. ( 1) DB 20, 20 DUP (0)(2 ) DB “The course is easy ”, 0(3) DB “hello . !”, 0dh,0ah,” $ ”(4) DW 100 DUP (0)11. 数据定义语句表示,16 进制书写。寻址方式包括立即数、直接、间接寻址等多种。逻辑地址。12. 指令格式包括操作码、操作数(或地址)两部分,这里的操作数不一定就是要处理的那个数据,也可以是那个数据的地址或寄存器等,是找到那个数的寻
8、址方式。而参加操作的数据就是指具体的数据。13. 判断操作数的寻址方式是否正确?说明原因。?(1) AX ;例如 MOV BL, AX ;错, AX不是地址寄存器?(2)BP ;例如 MOV AX , BP; 正确,寄存器寻址?(3)SI+DI ;例如 MOV AL , SI+DI 错,不能有2 个变址寄存器?(4)SP ;例如 MOV AL , SP, 错,不能用堆栈指针,堆栈指针只能由堆栈指令操作?(5)CS ;例如 MOV AX ,CS; 正确,寄存器寻址?(6)BH ;例如 MOV AL ,BH; 正确,寄存器寻址?(7)BX+BP+32 ;例如 MOV AL , BX+BP+32;
9、错,不能有2 个基地址寄存器?(8)BL+44 ; 例如 MOV AL , BL+44; 错, BL不是完整的地址寄存器?(9)CX+90 ;例如 MOV AL , CX+90; 错, CX不是地址寄存器?(10)DX ;例如 MOV AL , DX; 错, DX不是地址寄存器?(11)BX+90H ; 例如 MOV AX , BX+90H; 错,不能加?(12)BX*4 ; 例如 MOV AL , BX*4 ;错,不能乘?(13)SI100H ; 例如 MOV AX ,SI100H; 正确,相对变址寻址,但写法不好,最好是MOV AX , SI+100H, MOV AX , 100SI?(1
10、4)DX+90H ;例如 MOV AX , DX+90H; 错, DX 不是地址寄存器14题?假定 DS=2000H? ES=2100H? SS=1500H? SI=00A0H? BX=0100H ? BP=0010H?数据变量 wVald 的偏移地址为0050H?指出下列指令源操作数的寻址方式??(1)MOV AX, 0ABH ;立即数寻址?(2)MOV AX, 100H ;直接寻址?(3)MOV AX, wVald ;直接寻址,等于MOV AX, 0050H?(4)MOV BX, SI ;寄存器间接寻址?(5)MOV AX, wValdBX; 相对寄存器寻址,等于MOV AX, BX+00
11、50H?(6)MOV CL,BXSI ; 基址加变址寻址?(7)MOV wVald SI,BX ;源是寄存器寻址,目是相对基址加变址寻址,等于 MOV SI+0050H,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - BX?(8)MOV BPSI,100 ;源是立即数,相对基址加变址寻址?错,应该是MOV WORDSI+BP,100 ; 说明是字或字节15. 已知: SS=0FF10H, SP=00A0H.?将 8057H 和
12、0F79H入栈,再弹出一个数,画出堆栈区的变化。?程序举例:?MOV AX, FF10H?MOV SS, AX?MOV AX, 00A0H?MOV SP,AX?MOV AX, 8057H?PUSH AX?MOV AX, 0F79H?PUSH AX?POP BX?答:已知 SS+SP=FF100+00A0=FF1A0H?结果 SP=009EH?入堆栈时,堆栈指针 SP先减 2,再压栈?出堆栈时,先弹出 2 个字节的,然后堆栈指针SP加 2栈的数据:?FF198?FF19A?FF19C 0F79?FF19E 0557 ?FF1A0 ;栈底?或用字节地址看?FF199?FF19A?FF19B 0F?
13、FF19C 79?FF19D 05?FF19E 57?FF19F?FF1A0 ;栈底23. 试编程序。将内存从40000H到 4AFFFH的每个单元中均写入20H ,再逐个单元读出比较,看写入的与读出的是否一致。若全对,则将AL置 0FFH ;只要有错,则将AL置 00H。?参考程序:(仅提供小汇编语句)?MOV AX,4000H ? MOV DS, AX? MOV BX,0? MOV CX, AFFFH名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - -
14、- - - - - - ? MOV AL, 20H?L1: MOV BX, AL ? CMP BX, AL? JNZ ERROR? INC BX? DEC CX? JNZ L1? MOV AL,FFH? JMP END1?ERROR: MOV AL,0?END1: RET 20.按下列要求编写指令序列?1)清除 DH中的最低三位而不改变其他位,结果存入DL中;? AND DH, F8H? MOV DL,DH?2)把 DI 中的最高 4 位置 1 而不改变其他位;? OR DI, F000H?3)把 AX中的 0-3 位置 1,7-9 位取反, 13-15 位置 0;? OR AX, 000FH
15、? XOR AX, 00000011 10000000B ;用二进制表示数? AND AX, 00011111 11111111B?4)测试 BX中的第 2、5 和 9 位中是否有一位为1;?TEST BX, 00000010 00100100B?JZ 全 0?否则,结果非 0 表示至少有一个1?5)测试 CX中的第 1、6 和 11 位是否同时为1;?MOV AX, CX?AND AX, 00001000 01000010B?CMP AX, 00001000 01000010B?JE 等于转,表示 3 位全为 1。?6)测试 AX中的第 0、2、9 和 13 位中是否有一位为0;?AND A
16、X,00100010 0000 0101 ; 只看这 4 位?XOR AX, 0010 0010 0000 0101 ?JZ ; 说明是全 1,没有 0?至少 1 个 0?7)测试 DX中的第 1、4、11 和 14 位是否同时为0;?MOV AX, DX?AND AX, 01001000 00010010B?JZ =0 23.试编程序。将内存从40000H 到 4AFFFH 的每个单元中均写入20H,再逐个单元读出比较,看写入的与读出的是否一致。若全对,则将AL 置 0FFH ;只要有错,则将AL 置 00H。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
17、- - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - ?参考程序:(仅提供小汇编语句)?MOV AX,4000H? MOV DS, AX? MOV BX,0? MOV CX, AFFFH? MOV AL,20H?L1: MOV BX, AL? CMP BX, AL? JNZ ERROR? INC BX? DEC CX? JNZ L1? MOV AL,FFH? JMP END1?ERROR: MOV AL,0?END1: RET 24.设变量单元A、B、C 存放有 3 个数,若 3 个数都不为零,则求3 个数的和,存
18、放在D 中;若有一个零,则将其余两个也清零,试编写程序。?答: 先用机器指令编程(用小汇编编程)?实现此功能的程序方法很多,这里只举一个简单直观的例子。?设:变量 A、B、C 变量存放在1000H 开始的单元中,即:?变量 A 存放在当前段的1000H 单元,?变量 B 在1001H 单元,?变量 C 在1002H 单元。?结果 D 的地址为1003H 单元。?MOV BX,1000H MOV AL, BX CMP AL,0 ;第一个数 A=0?? JNZ L1 ;非 0 转? MOV BX+1, AL ;其余 2 个清 0? MOV BX+2, AL? JMP END1?L1: MOV AL
19、,BX+1 ;;第 2 个数 B=0?? CMP AL,0? JNZ L2 ;非 0 转? MOV BX, AL? MOV BX+2, AL? JMP END1?L2 : MOV AL,BX+2 ;第 3 个数 C=0 ?? CMP AL,0? JNZ L3 ;非 0 转? MOV BX, AL名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - ? MOV BX+1, AL? JMP END1?L3: MOV AL, BX ; 3个
20、数都不为零,求3 个数的和? ADD AL, BX+1? ADD AL, BX+2? MOV BX+3, AL?END1: INT 3 ; 结束,断点,停在此26.试编写程序,统计由40000H 开始的 16K 个单元中所存放的字符A 的个数,并将结果存放在DX中。 (仅提供小汇编语句)?MOV AX, 4000H? MOV DS, AX? MOV BX, 0? MOV CX, 4000H ; 16K个数? MOV DX, 0 ; 用 DX记录 A 的个数?L1: MOV AL, BX ? CMP AL, 41H ; CMP AL , A ? JNZ L2? INC DX ; 累加器 +1?L
21、2: INC BX? DEC CX ; ( LOOP L1 )? JNZ L130题。键盘输入 10个数,变成密码后存到BUFF 缓冲区去设密码缓冲区首地址=120H,加密后的数字缓冲区BUFF 首地址 =130H (仅提供小汇编语句)? MOV SI , 120H ;密码缓冲区首地址=120H? MOV DI, 130H ;加密后的数字缓冲区首地址=130H? MOV CX, 0AH ;共 10 个数字? MOV BX, 0 ;偏移地址清0?10C MOV AH, 1 ? INT 21H ;等待输入一个数字? CMP AL, 0DH ;是回车?? JZ END1 ? AND AL, 0FH
22、;留下低 4 位? MOV BL, AL ? MOV AL, SI + BX ; 取 1 个数字的密码? MOV DI , AL ; 送加密缓冲区? INC DI ? DEC CX? JNZ 10C? END1: INT 3 ; 结束?120 DB 7 5 9 1 3 6 8 0 2 4 第五章 169 页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 1. 因为引脚不够,采用了复用技术,在外部必须用锁存器分开地址和数据线。主要
23、是地址信息。2.MEMR=1, MEMW=0,IOR=1,IOW=1. 。反之, MEMR=0, MEMW=1,IOR=1,IOW=1。3. 地址数据线分时用,还有S0-S6,主要解决引脚不够的问题。4. 总线周期包括4 个时钟周期,但存储器速度慢时,需要插入等待周期Tw。插入多少个由存储器的读写时间来决定。一般是1-2 个。5. 复位后,只有CS=ffffh,其余都是0,系统从 FFFF:0000=FFFF0H单元开始执行。第六章 191 页1. 尽管 E2PROM 速度已经很快,但还是跟不上CPU随机读写的速度,另外,E2PROM 是快写,不能当RAM 用。2. E2PROM 是电信号擦除
24、,擦写速度快,可以在线擦除与改写。EPROME 是紫外线擦除,需要从电路板上取下来,紫外光照射10 分钟,用专门的编程工具才能编程。E2PROM 的优点是可以在线编程,编程速度快,但容易被病毒利用。计算机BIOS必须放在 EPROME 中,才能避免病毒破坏。3. 正比关系。5. 译码电路。7. 如果少用最高位2 根地址线,重复空间有22=4 块,。少用 x 根地址线,重复空间有2x块。9. (1)需 128 片。10.11.12.13.MOV AX,2001H 不好,多用一个总线周期。慢。14.15. A1A0 不参加译码。16.2 ,4,8 字节。第八章23题 MOV AL,36H, OUT
25、 D3H,AL MOV AX,0064H, OUT D0H,AL, MOV AL,AH, OUT D0H,ALMOV AL,B0H, OUT D3H,AL MOV AX,0032H, OUT D2H,AL , MOV AL,AH, OUT D2H,AL24题可以用中断方式或程序控制方式实现。如果用程序控制方式,假设8255 的 A口接 8 个指示灯, B口 PB7位做 8254 定时时间到的 OUT输出线,设 8255 的口地址 =60H, 设 8254 的口地址 =40H, 设用 8254 的计数器 1,工作在方式3 方波发生器,已知CLK1=1000HZ, 即 Tclk= 1/1000=1
26、ms ,希望输出 T=1s,分频系数 =该是 1ms x1000=1s。主程序: MOV AL,82H ; 8255编程 , A 方式 0 出, B方式 0 入, C出; OUT 63H ,AL ; MOV AL,77H, OUT D3H,AL ; 8254计数器 1 方式 3;BCD 计数; MOV AX,1000H, OUT D1H,AL ; MOV AL,AH, OUT D1H,AL MOV BL,01H L1: IN AL,61H AND AL,80H ; JZ L1 ;= 0 等待L2: MOV AL,BL ;=1,输出 1 个灯亮名师资料总结 - - -精品资料欢迎下载 - - -
27、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - OUT 60H,AL ; 一个灯亮 ROL BL,1 ; 左循环移1 位L3: IN AL,61H ; AND AL,80H JNZ L3 ;= 1 等待 JMP L1 ; 27题,异步方式每个字节都需要加起始位、停止位等,传输效率就低了,单位时间传输的字符数就就低了。同步方式每个字节可以不要起始位、停止位及校验位,直接连续传数据,效率高。单位时间内传输的字节数就多了。28题,先运行接收方程序。29题,(仅供参考,基本意思到位就可以
28、了,是否先复位等不要紧) MOV CX,3 MOV AL,0ST1: OUT 52H,AL ;先送 3 个 0 ,复位 DEC CX JNZ ST1 MOV AL,40H OUT 52H,AL ;复位 8251 MOV AL, 11 11 10 10B ; 2停止位,偶校验,7 位数据,波特率因子16 OUT 52H,AL MOV AL, 00 01 01 11B ; 出错标志复位,允许接受,数据准备好,允许发送。 OUT 52H,AL 30 题、已知一秒钟传输1200bps/10 位格式 = 120Byte, 传 1024 字节需要 1024/120B=8.53秒。第九章1 题、显示 “5”
29、 的 7 段码是 1011011= 5BH 2 题,这道题不用改了,原题不好。打个半对就行了。3 题。(仅供参考方法不唯一,基本意思到位就可以了) L1: IN AL,20H CMP AL,0 ;有按键?没有就等待 JZ L1 IN AL,20H ;取来按键的键号 MOV CX,8 ;共 8 个键MOV BL,1 ; 初值 1 L2: SHR AL,1 ;右移一位,最低位到进位位。 JC L3 ; INC BL DEC CX JNZ L2L3: MOV AL,BL OUT 20H,AL ;显示结束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
30、- - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 7 题、 行频 = 262x60=15700HZ8 题、 原题是 32K色,即 15 位色,考虑15位不是整数,不好计算,题改成 24位色, 3 个 8 位表示一个点的颜色。满屏共 1024x768 个点。每个点用3 字节二进制表示它的颜色。故:1)显示缓存应该有1024x768x3=2359296 个单元,2)设( x,y )坐标为列、行坐标,即x 是列坐标。 y 是行坐标。从第0 行 0 列开始。(x,y )坐标的点在显示存储器中对应的单元为(1024y+ x ) x 3
31、。第十章2 题、已知端口地址为2F7H ,锯齿波: MOV DX,2F7H, MOV AL,0 L0: OUT DX,AL INC AL JMP L03 题、 ALE 和 START 信号是用户的OUT 指令经地址译码后产生的,宽度基本为转换周期128 微秒。5 题、 500-200=300 度,精度为0。1 度,应该有 300 x10=3000 个梯度,只有选用12 位的 A/D,D/A才能表达 3000 个梯度, 12 位的 A/D、D/A 的分辨率是4096。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -