微机原理课后习题答案Word文档下载推荐.docx
《微机原理课后习题答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理课后习题答案Word文档下载推荐.docx(38页珍藏版)》请在冰豆网上搜索。
5、FFH代表无符号数时等价的十进制值为255,代表补码有符号数时等价的十进制值为一1,代表反码有符号数时等价的十进制值为一0,代表原码有符号数时等价的十进制值为一l27。
6、—20的8位二进制补码为ECH,原码为94H,反码为EBH。
158的16位二进制补码为009EH,原码为009EH,反码为009EH。
7、英文字符一般在计算机内占用
(1)个字节,每个字节的最高位一定为0,全角英文字符在计算机内占用2个字节,一个汉字在计算机内占用2个字节,每个字节最高位为1。
8、设阶码用8位补码表示,尾数部分用16位补码表示,则—(1/32+1/128+1/512)的尾数部分及阶码分别为多少?
第2章微机硬件基础
1、请画出计算机系统硬件图。
2、8086/88CPU为什么要分为BIU和EU两大模块?
答:
为了使取指和分析、执行指令可并行处理,提高CPU的执行效率。
8086/88CPU有两大模块总线接口单元BIU和执行单元EU组成。
3、简述8086/88CPU的两大模块BIU和EU的主要功能及组成。
如下图所示:
4、简述8086/88CPU的14个寄存器的英文名、中文名及主要作用。
AX(Accumulator)(AH、AL)累加器,它是汇编编程中最常用的一个寄存器,主要用于乘除运算、BCD运算、换码、I/O操作、串操作、中断调用等。
BX(Base)(BH、BL)基址寄存器,主要用于存放地址、基址(默认相对于DS段)等。
CX(Counter)(CH、CL)计数器,主要用于循环计数、串操作计数、移位计数(CL)等。
DX(Data)(DH、DL)数据寄存器,主要用于l6位乘除、问接I/O、中断调用等。
BP(BasePointer)基址指针,主要用于存放地址、基址(默认相对于SS段)等。
SP(StackPointer)堆栈指针(栈顶指针),主要用于存放栈顶地址。
ZF(ZeroFlag)零标志,指令执行结果是不是为0,若为0则ZF=1,否则ZF=0。
OF(OverflowFlag)有符号数的溢出标志,指令执行结果是否超出有符号数的表示范围,若超过则0F=1,否则OF=0。
我们可以通过判断是否出现以下四种情况之一:
正加正得负,正减负得负,负加负得正,负减正得正。
若出现则0F=1.否则OF=0.
CF(CarryFlag)进位/借位标志无符号数的溢出标志),指令执行结果的最高位是否有向更高位进位或借位,若有则CF=1,同时也代表无符号数溢出;
若无则CF=0,也代表无符号数未溢出。
AF(AuxiliaryCarryFlag)辅助进位/借位标志,低4位二进制是不是有向高位进位或借位,若有则AF=1,否则AF=0,其主要用于BCD修正运算。
7、内存分段组织的优缺点是什么?
优点如下:
(1)8086/8088CPU中的寄存器只有16位,如果采用它们直接寻址,则寻址能力势必限制在64KB范围内,而采用分段组织可以较好地实现扩展CPU的寻址能力。
每段的大小可达64KB,不同段的组合则可寻址更大的范围。
(2)使程序与数据相对独立,不同存取方式的数据也相对独立。
程序:
存放于代码段CS中
堆栈方式:
存放于堆栈段SS中
数据:
随机方式:
存放于数据段DS及附加段ES中
(3)便于程序和数据的动态装配,从一个地方挪到另外一个地方只要更改一下段寄存器的值即可,段内偏移可以不用改变。
缺点:
内存地址采用分段组织增加地址计算的复杂度,降低了CPU的执行效率。
8、1MB内存最多可以有(64K)个不同的段地址,若不允许重叠的话最多可有(16)个不同的段地址。
不同的段间(可以)重叠。
9、设DS=26FCH,BX=108H,SI=9A8H,试求出使DS:
BX与ES:
Sl指向同一物理地址的ES值。
即DS:
BX=ES:
SI
DS:
BX=DS×
l6+BX=26FCH×
16+108H=270C8H
ES:
SI=ES×
16+SI=ES×
16+9A8H
ES=(270C8H一9A8H)÷
l6=2672H
10、接口、端口以及端口地址之间的对应关系如何?
一个计算机系统内有很多接口,一个接口内一般有多个端口,一个端口可以有多个端口地址与其对应(这叫重叠地址),一个端口地址可以对应多个端口(但需要继续区分才能访问,如读写顺序、读写信号、数据位、索引区分)。
所以通过端口传输信息首先需要区分端口,区分端口可通过端口地址不同来区分。
11、访问端口有哪些方法?
(1)用I/O指令实现信息传输;
(2)通过BIOS中断调用实现信息传输;
(3)通过DOS中断调用实现信息传输。
12、请根据图2.3说明ADDAX,BX指令的取指及执行过程。
自己看书
13、8086/88的20位物理地址是怎样形成的?
当CS=2000H,IP=0100H,下一条待执行指令的物理地址等于多少?
20位物理地址由段地址左移4位加偏移地址形成,下一条待执行指令等于CS*10H+IP得到20100H。
14、已知当前数据段位于存储器的B1000H到BF0FFH范围内,请指出DS段寄存器的取值范围。
DS段寄存器的取值范围:
AF10H~B100H
第3章寻址方式及指令系统
1、指令是CPU可以理解并执行的操作命令,指令由操作码和操作数两部分组成,指令有两个级别,即机器级和汇编级。
2、请画出程序执行流程示意图。
3、指令主要有哪些分类方式及其主要类别是什么?
指令分类有不同的方式。
按操作数的个数将指令分为零地址指令(无操作数)、一地址指令(只有一个操作数)、二地址指令(有两个操作数)、多地址指令(多于两个操作数);
按指令级别分为机器指令和汇编指令:
按是否转移分为转移指令和顺序指令;
按功能分为七大类:
传送类、算术运算类、位操作类、I/O类、串操作类、CPU控制类、转移类;
按指令长度(即指令占用的字节数)分为l字节指令、2字节指令等,8086/8088指令长度是不同的,叫变字长,不同的指令有不同的指令长度,从1~6字节均有;
按指令执行期间取操作数是否需要与总线打交道分为内部指令(不需)和外部指令(需要),类似功能的指令内部指令比外部指令执行速度快,所以在编程时尽量采用内部指令即多用寄存器优化程序。
4、操作数的寻址方式有哪些?
并举例说明其主要特点。
操作数寻址方式主要有立即寻址方式、寄存器寻地址、存储器寻址方式、端口寻址方式4类。
(1)立即寻址方式:
操作对象是这个操作数本身,MOVAL,5
(2)寄存器寻地址:
操作对象是寄存器中的内容MOVAX,BX
(3)存储器寻址方式:
操作对象是内存地址所对应的存储单元中的内容,MOVAX[2000H]
(4)端口寻址方式:
操作数是指明端口的地址、端口地址所对应的端口中的内容是操作对象INAX,46直接寻址。
5、内存寻址中段寄存器与段内偏移地址对应关系如何?
6、设CS=1000H,DS=2000H,ES=3000H,SS=4000H,IP=100H,SP=200H,BX=300H,BP=400H,SI=500H,则①下一条待执行指令的物理地址为多少?
②当前栈顶的物理地址为多少?
③[BX]代表的存储单元的物理地址为多少?
④[BP]代表的存储单元的物理地址为多少?
⑤ES:
[BX+SI]代表的存储单元的物理地址为多少?
①下一条待执行指令的物理地址=CS×
16+IP=1000H×
16+IOOH=10100H。
②当前栈顶的物理地址=SS×
16+SP=4000H×
16+200H=40200H。
③[BX]代表的存储单元物理地址=DS×
16+BX=2000HXl6+300H=20300H。
④[BP]代表的存储单元物理地址=SSXl6+BP=4000H×
16+400H-----40400H。
[BX+SI]代表的存储单元物理地址=ES×
16+BX+SI=3000H×
16+300H+500H=30800H
7、试根据以下要求,分别写出相应的汇编语言指令。
(1)以寄存器BX和DI作为基址变址寻址方式把存储器中的一个字送到DX寄存器。
答:
MOVDX,[BX+DI]
(2)以寄存器BX和偏移量VALUE作为寄存器相对寻址方式把存储器中的一个字和AX相加,把结果送回到那个字单元。
ADDVALUE[BX],AX
(3)将1字节的立即数0B6H与以SI作为寄存器间接寻址方式的字节单元相比较。
CMPBYTEPTR[SI],0B6H
(4)将BH的高4位与低4位互换。
MOVCL,4
RORBH,CL;
或者ROLBH,CL
(5)测试BX的第3、7、9、12、13位是否同时为0。
TESTBX,3288H;
0011001010001000B
(6)将存放了0~9数值的DL寄存器中的内容转化为相应的‘0’~‘9’的字符。
ADDDL,30H;
或者ORDL,30H
(7)将存放了‘A’~‘F’字符的AL寄存器中的内容转化为相应的数值。
SUBAL,37H
8、写出清除AX寄存器的多种方法并比较(要求单指令实现)。
(1)ANDAX,0;
可以对AX清零,还可以清除进位位和影响到SF、ZF、PF标志位。
(2)MOVAX,0;
此条指令占用3个字节。
(3)SUBAX,AX;
减法指令,该条指令只占用2个字节。
(4)XORAX,AX
9、分别用存储器的5种寻址方式实现将以A为首址的第5个字(注意:
从第0个算起)送AX的指令序列。
10、指出下列指令错误的原因。
(1)MOVCL,300;
300超过字节数据表示范围
(2)MOVCS,AX;
CS不能作为目的操作数
(3)MOVBX,DL;
数据类型不匹配
(4)MOVES,1000H:
立即数不能送给段寄存器
(5)INC[BX];
数据类型不明确’
(6)ADDAX,DS:
段寄存器不能参加运算
(7)TESTBX,[CX];
存储器间接寻址只能使用BX、Sl、Dl、BP四个之一
(8)SUB[BX],[BP+SI];
加减两个操作数不能同时为存储操作数
(9)JC[SI];
条件转移只有短转移寻址方式
(10)SHLBX;
少给一个表明移位次数的操作数,l或CL
11、
(1)CS=(1000)