微机原理与接口技术课后习题答案清华大学出版社.docx
- 文档编号:9018913
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:30
- 大小:35.74KB
微机原理与接口技术课后习题答案清华大学出版社.docx
《微机原理与接口技术课后习题答案清华大学出版社.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术课后习题答案清华大学出版社.docx(30页珍藏版)》请在冰点文库上搜索。
微机原理与接口技术课后习题答案清华大学出版社
微机原理与接口技术课后部分习题参考答案
第一章
2.第3项任务,根据状态标志位的状态决定转移方向。
3.程序存储是将要执行的程序的全部指令存储到存储器中,程序控制指程序开始执行后,通过指令流控制数据或计算机,完成设定的任务。
4.分BIU总线接口部件和EI执行部件两大部件,其中总线接口部件BIU负责取指令和数据,执行部件EI负责执行指令及运算。
在执行一条指令的同时可以取下一条指令,重叠运行,速度快。
5.有6个状态标志,分别为进位标志CF、溢出标志OF、零标志ZF、奇偶标志PF、负标志SF、辅助进位标志AF。
3个控制标志分别为中断允许标志IF、单步标志TF、方向标志DF。
标志位的内容可以通过标志位操作指令来操作,例如CLC指令清除进位位,即使CF=0,STC指令使CF=1,CLI指令使IF=0,禁止中断,STI指令使IF=1,允许中断。
还可以通过LAHF指令取来标识寄存器的内容修改后用SAHF指令送回去。
也可以用PUSHF/POPF指令来修改标志寄存器的内容。
6.实模式下分段靠4个段寄存器实现。
段寄存器中的值就是段地址,当偏移地址为0时的段地址+偏移地址就是该段的起始地址。
物理地址是由段地址左移4位后与偏移地址相加形成的20位地址。
7.说法不一定正确。
对顺序执行指令的计算机是对的。
对重叠或流水线的计算机就不对了。
例如对8086CPU,由于采用了取指令与执行指令的一次重叠,尽管执行一条指令的总时间并没有变化,但连续执行n条指令时,总的时间会大大缩短,可以简单的比喻成总时间为原时间的二分之一,快了一倍。
8.引入流水线后,执行一条指令的总时间并没有变化。
9.高速缓存的目的是提高存储器的速度,进而提高了CPU的速度。
虚拟存储器的目的是为了给程序员或程序一个大的存储或运行空间。
10。
8086采用总线接口部件BIU与执行部件EU分开提高了速度,286将8086的BIU进一步分成3个部件,提高了并行性。
386在286基础上进一步增加成6个逻辑部件,实现多条指令重叠,进一步提高了速度,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组合。
4.便于程序运行空间保护,便于兼容早期的微处理器。
5.尽管保护模式下的寻址系统有些复杂,但从用户的角度来说,没有什么不同。
6.描述符包括基地址、界限、访问权限等信息。
7.页表要映射到20位的物理地址中。
8.段被访问时,置1,用于统计该段被访次数。
这两个A位服务的对象不一样,不多余。
第三章129页
1.无符号分离式BCD码。
0011表示3,后面的4位可以是0-9,可以表示ASCII码0-9。
2.由程序或程序员来定义。
数据在计算机中都是用代码来表示的,一个数据(例如00110101)的意义是程序员自己掌握的,程序员把它当做一个字符,就是数字5的ASCII码。
如果说他是一个无符号数,就是代表十进制数53,如果说是组合式BCD码,就代表十进制数35。
3.段定义,包括数据段,堆栈段,代码段等。
数据及变量定义,约定段寄存器与段名的映射,代码段开始,代码段编程,代码段结束,汇编程序结束等。
4.操作符由控制器译码器解释执行,伪操作符由汇编程序(翻译程序)解释执行。
5.转移指令后的标号是偏移地址。
只有当应用该标号的转移指令位置确定后,在该指令地址正负128范围内的标号是短转移,类型是字节,在16位二进制数之内是段内的字类型,超出16位二进制数之外的是段间转移,是双字类型。
6.
(1)DB20,20DUP(0)
(2)DB“Thecourseiseasy”,0
(3)DB“hello….!
!
!
!
!
”,0dh,0ah,”$”
(4)DW100DUP(0)
11.数据定义语句表示,16进制书写。
寻址方式包括立即数、直接、间接寻址等多种。
逻辑地址。
12.指令格式包括操作码、操作数(或地址)两部分,这里的操作数不一定就是要处理的那个数据,也可以是那个数据的地址或寄存器等,是找到那个数的寻址方式。
而参加操作的数据就是指具体的数据。
13.判断操作数的寻址方式是否正确?
说明原因。
•
(1)[AX];例如MOVBL,[AX];错,AX不是地址寄存器
•
(2)BP;例如MOVAX,BP;正确,寄存器寻址
•(3)[SI+DI];例如MOVAL,[SI+DI]错,不能有2个变址寄存器
•(4)[SP];例如MOVAL,[SP],错,不能用堆栈指针,堆栈指针只能由堆栈指令操作
•(5)CS;例如MOVAX,CS;正确,寄存器寻址
•(6)BH;例如MOVAL,BH;正确,寄存器寻址
•(7)[BX+BP+32];例如MOVAL,[BX+BP+32];错,不能有2个基地址寄存器
•(8)[BL+44];例如MOVAL,[BL+44];错,BL不是完整的地址寄存器
•(9)[CX+90];例如MOVAL,[CX+90];错,CX不是地址寄存器
•(10)[DX];例如MOVAL,[DX];错,DX不是地址寄存器
•(11)BX+90H;例如MOVAX,BX+90H;错,不能加
•(12)[BX*4];例如MOVAL,[BX*4];错,不能乘
•(13)SI[100H];例如MOVAX,SI[100H];正确,相对变址寻址,但写法不好,最好是MOVAX,[SI+100H],MOVAX,100[SI]
•(14)[DX+90H];例如MOVAX,[DX+90H];错,DX不是地址寄存器
14题
•假定DS=2000H
•ES=2100H
•SS=1500H
•SI=00A0H
•BX=0100H
•BP=0010H
•数据变量wVald的偏移地址为0050H
•指出下列指令源操作数的寻址方式?
•
(1)MOVAX,0ABH;立即数寻址
•
(2)MOVAX,[100H];直接寻址
•(3)MOVAX,wVald;直接寻址,等于MOVAX,[0050H]
•(4)MOVBX,[SI];寄存器间接寻址
•(5)MOVAX,wVald[BX];相对寄存器寻址,等于MOVAX,[BX+0050H]
•(6)MOVCL,[BX][SI];基址加变址寻址
•(7)MOVwVald[SI],BX;源是寄存器寻址,目是相对基址加变址寻址,等于MOV[SI+0050H],BX
•(8)MOV[BP][SI],100;源是立即数,相对基址加变址寻址
•错,应该是MOVWORD[SI+BP],100;说明是字或字节
15.已知:
SS=0FF10H,SP=00A0H.
•将8057H和0F79H入栈,再弹出一个数,画出堆栈区的变化。
•程序举例:
•MOVAX,FF10H
•MOVSS,AX
•MOVAX,00A0H
•MOVSP,AX
•MOVAX,8057H
•PUSHAX
•MOVAX,0F79H
•PUSHAX
•POPBX
•答:
已知SS+SP=FF100+00A0=FF1A0H
•结果SP=009EH
•入堆栈时,堆栈指针SP先减2,再压栈
•出堆栈时,先弹出2个字节的,然后堆栈指针SP加2
栈的数据:
•FF198
•FF19A
•FF19C0F79
•FF19E0557
•FF1A0;栈底
•或用字节地址看
•FF199
•FF19A
•FF19B0F
•FF19C79
•FF19D05
•FF19E57
•FF19F
•FF1A0;栈底
23.试编程序。
将内存从40000H到4AFFFH的每个单元中均写入20H,再逐个单元读出比较,看写入的与读出的是否一致。
若全对,则将AL置0FFH;只要有错,则将AL置00H。
•参考程序:
(仅提供小汇编语句)
•MOVAX,4000H
•MOVDS,AX
•MOVBX,0
•MOVCX,AFFFH
•MOVAL,20H
•L1:
MOV[BX],AL
•CMP[BX],AL
•JNZERROR
•INCBX
•DECCX
•JNZL1
•MOVAL,FFH
•JMPEND1
•ERROR:
MOVAL,0
•END1:
RET
20.按下列要求编写指令序列
•1)清除DH中的最低三位而不改变其他位,结果存入DL中;
•ANDDH,F8H
•MOVDL,DH
•2)把DI中的最高4位置1而不改变其他位;
•ORDI,F000H
•3)把AX中的0-3位置1,7-9位取反,13-15位置0;
•ORAX,000FH
•XORAX,0000001110000000B;用二进制表示数
•ANDAX,0001111111111111B
•4)测试BX中的第2、5和9位中是否有一位为1;
•TESTBX,0000001000100100B
•JZ全0
•否则,结果非0表示至少有一个1
•5)测试CX中的第1、6和11位是否同时为1;
•MOVAX,CX
•ANDAX,0000100001000010B
•CMPAX,0000100001000010B
•JE等于转,表示3位全为1。
•6)测试AX中的第0、2、9和13位中是否有一位为0;
•ANDAX,0010001000000101;只看这4位
•XORAX,0010001000000101
•JZ;说明是全1,没有0
•至少1个0
•7)测试DX中的第1、4、11和14位是否同时为0;
•MOVAX,DX
•ANDAX,0100100000010010B
•JZ=0
23.试编程序。
将内存从40000H到4AFFFH的每个单元中均写入20H,再逐个单元读出比较,看写入的与读出的是否一致。
若全对,则将AL置0FFH;只要有错,则将AL置00H。
•参考程序:
(仅提供小汇编语句)
•MOVAX,4000H
•MOVDS,AX
•MOVBX,0
•MOVCX,AFFFH
•MOVAL,20H
•L1:
MOV[BX],AL
•CMP[BX],AL
•JNZERROR
•INCBX
•DECCX
•JNZL1
•MOVAL,FFH
•JMPEND1
•ERROR:
MOVAL,0
•END1:
RET
24.设变量单元A、B、C存放有3个数,若3个数都不为零,则求3个数的和,存放在D中;若有一个零,则将其余两个也清零,试编写程序。
•答:
先用机器指令编程(用小汇编编程)
•实现此功能的程序方法很多,这里只举一个简单直观的例子。
•设:
变量A、B、C变量存放在1000H开始的单元中,即:
•变量A存放在当前段的1000H单元,
•变量B在1001H单元,
•变量C在1002H单元。
•结果D的地址为1003H单元。
•MOVBX,1000H
MOVAL,[BX]
CMPAL,0;第一个数A=0?
•JNZL1;非0转
•MOV[BX+1],AL;其余2个清0
•MOV[BX+2],AL
•JMPEND1
•L1:
MOVAL,[BX+1];;第2个数B=0?
•CMPAL,0
•JNZL2;非0转
•MOV[BX],AL
•MOV[BX+2],AL
•JMPEND1
•L2:
MOVAL,[BX+2];第3个数C=0?
•CMPAL,0
•JNZL3;非0转
•MOV[BX],AL
•MOV[BX+1],AL
•JMPEND1
•L3:
MOVAL,[BX];3个数都不为零,求3个数的和
•ADDAL,[BX+1]
•ADDAL,[BX+2]
•MOV[BX+3],AL
•END1:
INT3;结束,断点,停在此
26.试编写程序,统计由40000H开始的16K个单元中所存放的字符A的个数,并将结果存放在DX中。
(仅提供小汇编语句)
•MOVAX,4000H
•MOVDS,AX
•MOVBX,0
•MOVCX,4000H;16K个数
•MOVDX,0;用DX记录A的个数
•L1:
MOVAL,[BX]
•CMPAL,41H;CMPAL,’A’
•JNZL2
•INCDX;累加器+1
•L2:
INCBX
•DECCX;(LOOPL1)
•JNZL1
30题。
键盘输入10个数,变成密码后存到BUFF缓冲区去
设密码缓冲区首地址=120H,加密后的数字缓冲区BUFF首地址=130H(仅提供小汇编语句)
•MOVSI,120H;密码缓冲区首地址=120H
•MOVDI,130H;加密后的数字缓冲区首地址=130H
•MOVCX,0AH;共10个数字
•MOVBX,0;偏移地址清0
•10CMOVAH,1
•INT21H;等待输入一个数字
•CMPAL,0DH;是回车?
•JZEND1
•ANDAL,0FH;留下低4位
•MOVBL,AL
•MOVAL,[SI+BX];取1个数字的密码
•MOV[DI],AL;送加密缓冲区
•INCDI
•DECCX
•JNZ10C
•END1:
INT3;结束
•120DB7591368024
第五章169页
1.因为引脚不够,采用了复用技术,在外部必须用锁存器分开地址和数据线。
主要是地址信息。
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是电信号擦除,擦写速度快,可以在线擦除与改写。
EPROME是紫外线擦除,需要从电路板上取下来,紫外光照射10分钟,用专门的编程工具才能编程。
E2PROM的优点是可以在线编程,编程速度快,但容易被病毒利用。
计算机BIOS必须放在EPROME中,才能避免病毒破坏。
3.正比关系。
5.译码电路。
7.如果少用最高位2根地址线,重复空间有22=4块,。
少用x根地址线,重复空间有2x块。
。
9.
(1)需128片。
10.
11.
12.
13.MOVAX,[2001H]不好,多用一个总线周期。
慢。
14.
15.A1A0不参加译码。
16.2,4,8字节。
第八章
23题MOVAL,36H,OUTD3H,AL
MOVAX,0064H,OUTD0H,AL,MOVAL,AH,OUTD0H,AL
MOVAL,B0H,OUTD3H,AL
MOVAX,0032H,OUTD2H,AL,MOVAL,AH,OUTD2H,AL
24题可以用中断方式或程序控制方式实现。
如果用程序控制方式,假设8255的A口接8个指示灯,B口PB7位做8254定时时间到的OUT输出线,设8255的口地址=60H,设8254的口地址=40H,
设用8254的计数器1,工作在方式3方波发生器,已知CLK1=1000HZ,即Tclk=1/1000=1ms,希望输出T=1s,分频系数=该是1msx1000=1s。
主程序:
MOVAL,82H;8255编程,A方式0出,B方式0入,C出;
OUT63H,AL;
MOVAL,77H,OUTD3H,AL;8254计数器1方式3;BCD计数;
MOVAX,1000H,OUTD1H,AL;
MOVAL,AH,OUTD1H,AL
MOVBL,01H
L1:
INAL,61H
ANDAL,80H;
JZL1;=0等待
L2:
MOVAL,BL;=1,输出1个灯亮
OUT60H,AL;一个灯亮
ROLBL,1;左循环移1位
L3:
INAL,61H;
ANDAL,80H
JNZL3;=1等待
JMPL1;
27题,异步方式每个字节都需要加起始位、停止位等,传输效率就低了,单位时间传输的字符数就就低了。
同步方式每个字节可以不要起始位、停止位及校验位,直接连续传数据,效率高。
单位时间内传输的字节数就多了。
28题,先运行接收方程序。
29题,(仅供参考,基本意思到位就可以了,是否先复位等不要紧)
MOVCX,3
MOVAL,0
ST1:
OUT52H,AL;先送3个0,复位
DECCX
JNZST1
MOVAL,40H
OUT52H,AL;复位8251
MOVAL,11111010B;2停止位,偶校验,7位数据,波特率因子16
OUT52H,AL
MOVAL,00010111B;出错标志复位,允许接受,数据准备好,允许发送。
OUT52H,AL
30题、已知一秒钟传输1200bps/10位格式=120Byte,传1024字节需要1024/120B=8.53秒。
第九章
1题、显示“5”的7段码是1011011=5BH
2题,这道题不用改了,原题不好。
打个半对就行了。
3题。
(仅供参考方法不唯一,基本意思到位就可以了)
L1:
INAL,20H
CMPAL,0;有按键?
没有就等待
JZL1
INAL,20H;取来按键的键号
MOVCX,8;共8个键
MOVBL,1;初值1
L2:
SHRAL,1;右移一位,最低位到进位位。
JCL3;
INCBL
DECCX
JNZL2
L3:
MOVAL,BL
OUT20H,AL;显示
结束
7题、行频=262x60=15700HZ
8题、原题是32K色,即15位色,考虑15位不是整数,不好计算,题改成24位色,3个8位表示一个点的颜色。
满屏共1024x768个点。
每个点用3字节二进制表示它的颜色。
故:
1)显示缓存应该有1024x768x3=2359296个单元,
2)设(x,y)坐标为列、行坐标,即x是列坐标。
y是行坐标。
从第0行0列开始。
(x,y)坐标的点在显示存储器中对应的单元为(1024y+x)x3。
第十章
2题、已知端口地址为2F7H,
锯齿波:
MOVDX,2F7H,
MOVAL,0
L0:
OUTDX,AL
INCAL
JMPL0
3题、ALE和START信号是用户的OUT指令经地址译码后产生的,宽度基本为转换周期128微秒。
5题、500-200=300度,精度为0。
1度,应该有300x10=3000个梯度,只有选用12位的A/D,D/A才能表达3000个梯度,12位的A/D、D/A的分辨率是4096。
微机原理与接口课 作业、复习
一、2010年3月-7月本课程作业由各班主讲教师自由布置,考虑到大纲要求,统一布置几道各班都必须做的作业如下:
第14页4,5,9.
第26页3,4
第129页13,14,15,23,24,26
第169页1,2,3,4,5
第191页1,2,3,5,6,7,8,9,10,11
第208页1,2,3,4,5,7,8,9
第287页1,3,4,8,11,15(第5小问不做),20,22,23,24,25,27,30
第314页2,7,8
第336页2,4,5
二、部分习题解题思路及参考解答
1、设计一个波形发生器,要求能产生锯齿波、矩形波、方波、三角波、梯形波等。
输出0-5V电压,分辨率大于100。
设计电路,画出逻辑图,写出产生三角波的程序。
.
参考方法:
可以考虑利用D/A转换器0832,直接连接到总线上或通过8255连接到总线上。
约定口地址(例=80H),画出连接示意图,画出译码逻辑图,写出产生三角波的程序。
参考书上320页图及程序。
2、设计一个奥运会倒计时显示牌,要求显示4位数字。
提出设计方案,画出详细的连接图,写出显示“2008”4个字的程序。
参考方法:
可以参考图9.10,可以不考虑驱动问题。
可以利用一片8255,4个共阴极的七段LED。
约定8255口地址为90H,8255A口用7根线接4个LED的数据线,B口用4根线接4个LED的阴极线。
编程序,实现4个LED轮流显示。
3、某打印机有D7-D0数据线,STB选通线,BUSY忙状态线共10根线(举例用)。
设计一套接口电路实现与该打印机连接。
提出设计方案,画出连接图,写出将当前数据段1000H单元的100个打印数据送打印机的程序。
参考方法:
设计方案可以考虑利用一片8255,用A口做数据输出,可以采用方式0或方式1,为简单,建议用方式0,自己编程产生选通信号。
用C7输出做STB选通线,用C0输入做打印机BUSY忙状态线输入,口地址约定为90H(可以不画出详细的译码逻辑图,用一个框表示译码逻辑即可)。
程序流程:
初始化8255,判打印机忙?
,不忙,取一个数据,送打印机,产生STB选通信号,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 课后 习题 答案 清华大学出版社
文档标签
- 财务管理清华大学出版社习题
- 清华大学微机原理课程设计
- 微机原理学习与实践指导微机原理学习
- 微机原理与接口技术课后答案黄玉清版微机原理
- 中北大学微机原理课后题答案北大微机原理
- 编译原理清华大学出版社习题
- 华中科技大学微机原理接口
- 微机原理与接口技术课后答案黄玉清版DOC微机原理
- 李华贵微机原理与接口技术课后习题参考答案华贵微机
- 清华大学出版社微机原理汇编与接口技术答案微机原理
- 单片机原理应用技术清华大学出版社
- 财务管理学《财务管理学》张丹老师第五版学习题答案财务
- 财务管理课后答案清华大学
- 财务管理出版社第二惠民
- 财务管理试题精华版
- 财务管理清华大学出版社课后
- 清华大学出版社财务管理课后练习
- Get清风财务管理习题
- 清华大学出版CAD复习