资源预览内容
第1页 / 共57页
第2页 / 共57页
第3页 / 共57页
第4页 / 共57页
第5页 / 共57页
第6页 / 共57页
第7页 / 共57页
第8页 / 共57页
第9页 / 共57页
第10页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
微型计算机原理与接口技术(第微型计算机原理与接口技术(第 5 版)版)课后答案及问题墙课后答案及问题墙第一章第一章 绪论绪论崔文韬问:课后习题第一题,二进制数与十进制数转换。崔文韬答: 11001010B=202D,00111101B=61D,01001101B=77D,10100100B=164D。崔文韬问:课后习题第二题,16进制数与十进制数转换。崔文韬答:12CH=300D,0FFH=255,3A8DH=14989D,5BEH=1470D崔文韬问:课后习题第三题,十进制数转化为二进制数和 16进制数。杨艺答:25D=19H=00011001B,76D=4CH=01001100B,128D=100H=00000001 00000000B,134D=106H=00000001 00000110B 杨艺答:128D=80H=10000000B,134D=86H=10000110B崔文韬问:课后习题第四题,写出 10进制数的 BCD 码杨艺答:327D=(0011 0010 0111)BCD,1256D=(0001 0011 0101 0110)BCD杨艺答:1256D=(0001 0010 0101 0110)BCD崔文韬问:英文单词 About 的 ASCII 码沙猛答:3935H王金鑫改:41H,62H,6FH,75H,74H崔文韬问:数字 95的 ASCII码王金鑫答:39H,35H崔文韬问:课后习题第六题:10进制数的原码、补码、反码杨艺答:【+42】原=00101010B=【+42】反=【+42】补【-42】原=10101010B,【-42】反=11010101B,【-42】补=11010110B【+85】原=01010101B=【+85】反=【+85】补【-85】原=11010101B,【-85】反=10101010B,【-85】补=10101011B崔文韬问:机器语言或者机器码(Machine Code),汇编语言(Assemble Language),高级语言的定义沙猛答:机器码:计算机只认得二进制数码,计算机中的所有指令都必须用二进制表示,这种用二进制表示的指令称为机器码。汇编语言:用助记符来代替二进制的机器码的符号语言高级语言:相对于机器语言,接近人们使用习惯的程序设计语言。崔文韬问:课后习题第 10题崔文韬答:参考课本 16页图 1.4崔文韬问:课后习题第 11题崔文韬答:参考课本 11页图 1.2杨艺答:微处理器、存储器、I/O接口,I/O 设备和总线。6崔文韬问:课后习题第 12题崔文韬答:ALU:Arithmetic Logic Unit,CPU:Central Processing Unit,PC:Personal Computer,DOS:Disk Operation System崔文韬问:8086和 80386各有多少根地址线,可直接寻址的内存空间是多少,他们的数据线各有多少根?杨艺答:8086有 20根地址线 A19A0,可直接寻址的内存空间是 220个字节单元,有 16根数据线;80386有 32根地址线,可直接寻址的内存空间是 232个字节单元,有 32根数据线。崔文韬问:什么是二进制编码,常用的二进制编码有哪两种?杨艺答:采用若干特定的二进制码的组合来表示各种数字、英文字母、运算符号等的编码方式叫做二进制编码,常见的二进制编码有 BCD 码和 ASCII 码两种。崔文韬问:解释位,字节,字,字长的含义?沙猛答:位 bit:计算机中二进制数的每一位 0或 1是组成二进制信息的最小单位,称为位。字节 byte:8个二进制信息组成的一个单位称为一个字节,1 Byte=8 Bits。字 word:由 16位二进制数即两个字节组成。字长 word length:决定计算机内部一次可以处理的二进制代码位数。刘玉年问:存在计算机中的数都是以有符号数存储的,还是以无符号数存储的呢?崔文韬答:刘玉年同学,你能先自己尝试回答一下这个问题,或者说你自己的理解是什么?刘玉年答:应该是两者都不是吧,因为在运算的时候仅仅就是二进制数的运算,而判断结果的意义(是什么样的数)是通过标志为判断的。崔文韬答:两者都不是,存储器中数据的含义是完全由编程人员决定的。计算机只接收二进制数据,即01序列。至于原始数据是什么以及如何转化为二进制数据,都是由编程人员决定的。计算机对所存储数据按照二进制计算法则进行运算,为适应有符号数和无符号数运算两种情况,通过设置标志位来计算结果在两种情况下的意义。第二章第二章 8086CPU崔文韬问:8086/8088可直接寻址多少内存(字节)单元?多少 IO 端口?外部数据线各有多少?董国福答:8086/8088可直接寻址 1MB内存空间;可以访问 64K个 I/O 端口;但外部数据总线 8086有16根,8088有 8根。崔文韬问:8086CPU内部由那两部分组成?俞楠答:8086CPU 由总线接口单元(BIU)和指令执行单元(EU)两部分组成。崔文韬问:EU,BIU,AX,BX,CX,DX,DS,CS,ES,SS,SP,BP,DI,SI全称?董国福答:EU:Execution UnitBIU:Bus Interface UnitAX:AccumulatorBX:BaseCX:CountDX:DataDS:Data SegmentCS:Code SegmentES:Extra SegmentSS:Stack SegmentSP:Stack PointerBP:Base PointerDI:Destination IndexSI:Source Index崔文韬问:8086CPU内部包含哪些寄存器?各有什么用途?俞楠答:1.数据寄存器:用来存放 16位数据信息或地址信息。2.地址指针和变址寄存器:SP,BP,SI,DI这组地址指针个变址寄存器加上基址寄存器 BX,可与段寄存器配合使用,一起构成内存的物理地址。(数据寄存器和地址指针和变址寄存器则被称为通用寄存器。)(段基地址和段内偏移地址 Offset组合起来就可形成 20位物理地址)5.标志寄存器:6 个状态标志 CF,PF,AF,ZF,SF,OF用来表示指令执行后的结果或状态特征,根据这些特征,由转移指令控制程序的走向。3个控制标志,TF,IF,DF,可以根据需要用程序设置或清除。崔文韬问:带符号数 10110100B 和 11000111B相加,各标志位为多少?哪些标志位有意义?如果作为无符号数相加,各标志位为多少?哪些标志位有意义?崔文韬答:二进制数所有位都参与运算10110100+110001111 01111011OF SF ZFAFPF CF100011程序员将该数看做有符号数,因此 SF,OF,ZF,PF 有意义。如果将该数看做无符号数,计算过程一样,标志位结果相同,CF,ZF,PF有意义。利用 debug程序验证结果:运行 dosbox,输入 debug,r命令查看初始寄存器数值,a命令输入汇编指令,t 命令执行查看结果,过程如下图所示:debug中,flags 中的 NV,UP等表示什么含义,请查看百度网盘中共享的 debug教程,下图为该教程中的截图:崔文韬问:课后习题第七题,段地址:偏移地址与物理地址的关系(原理在书中 31-32 页)俞楠答:20位的物理地址=段基地址*16+16位的偏移量1200H*16+3500H=15500H(1200H*16等同于把 1200H左移一位地址变成 12000H,下面同理)FF00H*16+0458H=FF458H3A60H*16+0100H=3A700H崔文韬问:CS:IP=3456:0210,CPU要执行的下条指令的物理地址为多少?俞楠答:3456H*16+0210H=33770H曲洋答:34770H崔文韬问:课后习题十一题,SS:SP=2000,0300H,堆栈在内存当中的物理地址范围是多少?执行两条PUSH 指令后,SS:SP=?再执行一条 PUSH 指令后,SS:SP=?俞楠答:物理地址范围:(2000H*16+0) : (2000H*16+(0300H)=20000H : 20300H执行两条 PUSH 指令后:SS : SP=2000H : (0300H-4)=2000H : 02FCH再执行一条 PUSH指令后,SS : SP=2000H : (02FC-2)=2000H : 02FAH刘瑾改:堆栈在内存当中的物理地址范围为:2000:0000H2000:(0300H-1)崔文韬问:课后习题十二题,从存储单元 2000H开始存放的字节数据为:3AH,28H,56H,4FH,试画出示意图说明,从 2000H和 2001H单元开始取出一个字数据各要进行几次操作,取出的数据分别等于多少?俞楠答:从 2000H中取出一个字数据要进行 一次操作,取出字为 283A。从 2001H中取出一个字数据要进行 两次操作,取出字为 5628。罗小东补充:如下表,如果从 2000H取出一个字数据,则执行一次操作直接取出一个字 283AH如果从 2001H开始取出一个字数据,则需进行两次操作,分别是先从 2000H单元开始读取一个字283AH,取得低字节 28H,舍弃 3AH;再从 2002H单元读取一个字数据,4F56H,取得其高字节 56H,然后就可以得到 2001H单元开始取出的一个自数据5628H。原理就是:8086CPU对存储器进行存取操作时,都是从偶地址体开始的。2000 3A2001 282002 562003 4F罗小东问:一个含有 16个字节数据的变量,它的逻辑地址为 1000:0100H,那么该变量的最后一个字节数据的物理地址是_H?(可不可以答案再加点简单分析呀)崔文韬问:设定 SS:SP 后形成的堆栈占据一定的物理地址范围,是否可无限次执行 PUSH 或者 POP指令?为什么?苏子宇答:堆栈有一定的容量,无限次执行 push会超出范围,导致覆盖设定的堆栈空间外的数据,产生栈顶越界现象。堆栈空间是程序员向系统请,系统开辟的安全数据空间,空间外的数据可能具有其他用途,任意改动可能引发错误。8086CPU不提供检测栈顶是否越界的机制。编程时要注意栈顶越界问题,根据可能用到的最大栈空间来安排堆栈大小,防止入栈的数据导致栈顶越界。刘玉年问:8086有 20根地址总线,可寻址的内存空间是 1M,是不是就说 8086里面的内存空间就只有1M呢?如果不是这样的,那么多余的地址空间又该如何寻址呢?崔文韬答:8086的内存寻址空间真的只有 1M,这 1M空间分配给内存使用(包含显存,主内存,BIOS的 ROM)。8086针对外设的寻址,通过硬件电路另外生成 64k的 IO 地址,供寻址 IO 接口使用还有啊,如果真的是内存空间的大小 m 和地址总线的数目 n是:m=2n的关系的话,那么现在的片子运存是 4g的话,那要 32根地址总线的,相应的地址输入输出端口也要有 32个,这是不是又有些浪费?崔文韬答:内存空间大小和地址数目的关系就是如此。32根地址线对应 4g内存,这个是必须的,不存在浪费问题。第三章第三章 8086寻址方式和指令系统寻址方式和指令系统崔文韬问:习题 1中题目,分别说明源操作数和目的操作数各采用的寻址方式1. mov ax,2408h2. mov cl,0ffh3. mov bx,si4. mov 5bx,bl沙猛答:1.立即数,寄存器 2.立即数,寄存器 3.寄存器间接,寄存器 4.寄存器,寄存相对崔文韬问:习题 1中题目,分别说明源操作数和目的操作数各采用的寻址方式1. mov bp+100,ax2. mov bx+di,$3. mov dx,es:
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号