微机原理与接口技术课后习题与参考答案Word格式.docx
《微机原理与接口技术课后习题与参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术课后习题与参考答案Word格式.docx(84页珍藏版)》请在冰豆网上搜索。
4004:
4位机;
8080/8085:
8位机;
8086/8088/80286:
16位机;
80386/80486:
32位机;
Pentium系列机:
64位。
第二章课后习题
2.1、EU与BIU各自的功能是什么?
如何协同工作?
2.2、8086/8088微处理器内部有那些寄存器,它们的主要作用是什么?
2.3、8086对存储器的管理为什么采用分段的办法?
2.4、在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?
具体说明。
2.5、给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。
2.6、8086/8088为什么采用地址/数据引线复用技术?
2.7、8086与8088的主要区别是什么?
2.8、怎样确定8086的最大或最小工作模式?
最大、最小模式产生控制信号的方法有何不同
2.9、8086被复位以后,有关寄存器的状态是什么?
微处理器从何处开始执行程序?
2.10、8086基本总线周期是如何组成的?
各状态中完成什么基本操作?
2.11、在基于8086的微计算机系统中,存储器是如何组织的?
是如何与处理器总线连接的?
BHE#信号起什么作用?
2.12、80X86系列微处理器采取与先前的微处理器兼容的技术路线,有什么好处?
有什么不足?
2.13、80386内部结构由哪几部分组成?
简述各部分的作用。
2.14、80386有几种存储器管理模式?
都是什么?
2.15、在不同的存储器管理模式下,80386的段寄存器的作用是什么?
2.16、描述符的分类及各描述符的作用。
2.17、80386的分段部件是如何将逻辑地址变为线性地址的?
2.18、803866中如何把线性地址变为物理地址?
习题二参考答案
1、答:
EU是执行部件,主要的功能是执行指令。
BIU是总线接口部件,与片外存储器及I/O接口电路传输数据。
EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。
EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。
2、答:
执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。
AX、BX、CX、DX一般作为通用数据寄存器。
SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。
总线接口部件设有段寄存器CS、DS、SS、ES和指令指针寄存器IP。
段寄存器存放段地址,与偏移地址共同形成存储器的物理地址。
IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。
3、答:
8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围(1MB,20位地址)。
若不用分段方法,16位地址只能寻址64KB空间。
4、答:
逻辑地址是在程序中对存储器地址的一种表示方法,由段地址和段内偏移地址两部分组成,如1234H:
0088H。
偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码。
物理地址是8086芯片引线送出的20位地址码,用来指出一个特定的存储单元。
5、答:
物理地址:
320F8H。
6、答:
考虑到芯片成本,8086/8088采用40条引线的封装结构。
40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。
7、答:
8086有16条数据信号引线,8088只有8条;
8086片内指令预取缓冲器深度为6字节,8088只有4字节。
8、答:
引线MN/MX#的逻辑状态决定8086的工作模式,MN/MX#引线接高电平,8086被设定为最小模式,MN/MX#引线接低电平,8086被设定为最大模式。
最小模式下的控制信号由相关引线直接提供;
最大模式下控制信号由8288专用芯片译码后提供,8288的输入为8086的S2#~S0#三条状态信号引线提供。
9、答:
标志寄存器、IP、DS、SS、ES和指令队列置0,CS置全1。
处理器从FFFFOH存储单元取指令并开始执行。
10、答:
基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。
在T1期间8086发出访问目的地的地址信号和地址锁存选通信号ALE;
T2期间发出读写命令信号RD#、WR#及其它相关信号;
T3期间完成数据的访问;
T4结束该总线周期。
11、答:
8086为16位处理器,可访问1M字节的存储器空间;
1M字节的存储器分为两个512K字节的存储体,命名为偶字节体和奇字节体;
偶体的数据线连接D7~D0,“体选”信号接地址线A0;
奇体的数据线连接D15~D8,“体选”信号接BHE#信号;
BHE#信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问。
12、答:
好处是先前开发的软件可以在新处理器组成的系统中运行,保护了软件投资。
缺点是处理器的结构发展受到兼容的约束,为了保持兼容性增加了硅资源的开销,增加了结构的复杂性。
13、答:
80386内部结构由执行部件(EU)、存储器管理部件(MMU)和总线接口部件(BIU)三部分组成。
EU包括指令预取部件、指令译码部件、控制部件、运算部件及保护检测部件,主要功能是执行指令。
存储器管理部件包括分段部件、分页部件,实现对存储器的分段分页式的管理,将逻辑地址转换成物理地址。
总线接口部件作用是进行片外访问:
对存储器及I/O接口的访问、预取指令;
另外的作用是进行总线及中断请求的控制
14、答:
80386有三种存储器管理模式,分别是实地址方式、保护方式和虚拟8086方式
15、答:
在实地址方式下,段寄存器与8086相同,存放段基地址。
在保护方式下,每个段寄存器还有一个对应的64位段描述符寄存器,段寄存器作为选择器存放选择符。
在虚拟8086方式下,段寄存器的作用与8086相同。
16、答:
描述符分为三类:
存储器段描述符、系统段描述符、门描述符。
存储器段描述符由8字节组成,它用来说明一个段中保存信息的情况。
32位段基地址和20位段界限值定位了该段在存储空间中的位置,其它有关位决定访问权限及段的长度单位。
系统段描述符与存储器段描述符大多数字节段相同,有关访问权及属性字节段有些不同。
门描述符用来改变程序的特权级别、切换任务的执行以及指出中断服务程序的入口。
17、答:
分段部件根据段选择符从全局描述符表或局部描述符表中取出对应的段描述符。
把段描述符32位段基地址与逻辑地址中的32位偏移量相加就形成了线性地址。
18、答:
分段部件形成的32位线性地址中高10位作为寻址页目录表的偏移量,与控制寄存器CR3中页目录表基地址共同形成一个32位的地址指向页表中的一个页项,即为一个页面描述符。
该页面项中高20位作为页面基地址,线性地址的低12位为偏移量,相加后形成指向某一存储单元的32位物理地址。
若禁止分页功能,线性地址就是物理地址。
第三章课后习题
3.1、8086/8088微处理器有哪些寻址方式?
并写出各种寻址方式的传送指令2条(源操作数和目的操作数寻址)。
3.2、有关寄存器和内存单元的内容如下:
DS=2000H,SS=1000H,BX=0BBH,BP=02H,SI=0100H,DI=0200H,(200BBH)=1AH,(201BBH)=34H,(200CCH)=68H,(200CDH)=3FH,(10202H)=78H,(10203H)=67H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(201CCH)=56H,(201CDH)=5BH,(201BCH)=89H,(200BCH)=23H,试写出下表中源操作数的寻址方式和寄存器AX的内容。
表3-7习题1
指令
源操作数寻址方式
AX的内容
MOVAX,1200H
MOVAX,BX
MOVAX,[1200H]
MOVAX,[BX]
MOVAX,[BX+11H]
MOVAX,[BX+SI]
MOVAX,[BX+SI+11H]
MOVAX,[BP+DI]
3.3、指出下列语句的错误。
(1)MOV[SI],34H
(2)MOV45H,AX
(3)INC12
(4)MOV[BX],[SI+BP+BUF]
(5)MOVBL,AX
(6)MOVCS,AX
(7)OUT240H,AL
(8)MOVSS,2000H
(9)LEABX,AX
(10)XCHGAL,78H
3.4、已知DS=2000H,(21000H)=2234H,(21002H)=5566H,试区别以下3条指令。
MOVSI,[1000H]
LEASI,[1000H]
LDSSI,[1000H]
3.5、简述堆栈的性质。
如果SS=9B9FH,SP=200H,连续执行两条PUSH指令后,栈顶的物理地址是多少?
SS,SP的值是多少?
再执行一条POP指令后,栈顶的物理地址又是多少?
SS、SP的值又是多少?
3.6、写出将AX和BX寄存器内容进行交换的堆栈操作指令序列,并画出堆栈变化过程示意图。
3.7、用两条指令把FLAGS中的SF位置1。
3.8、用一条指令完成下列各题。
(1)AL内容加上12H,结果送入AL。
(2)用BX寄存器间接寻址方式把存储器中的一个内存单元加上AX的内容,并加上CF位,结果送入该内存单元。
(3)AX的内容减去BX的内容,结果送入AX。
(4)将用BX、SI构成的基址变址寻址方式所得到的内容送入AX。
(5)将变量BUF1中前两个字节的内容送入寄存器SI中。
3.9、下面的程序段执行后,DX、AX的内容是什么?
MOVDX,0EFADH
MOVAX,1234H
MOVCL,4
SHLDX,CL
MOVBL,AH
SHLAX,CL
SHRBL,CL
ORDL,BL
3.10、写出下面的指令序列中各条指令执行后的AX内容。
MOVAX,7865H
MOVCL,8
SARAX,CL
DECAX
MOVCX,8
MULCX
NOTAL
ANDAL,10H
3.11、如果要将AL中的高4位移至低4位,有几种方法?
请分别写出实现这些方法的程序段。
3.12、利用串操作指令,将AREA1起始的区域1中的200个字节数据传送到以AREA2为起始地址的区域2(两个区域有重叠)。
3.13、寄存器BX中有4位0~F的十六进制数,编写程序段,将其转换为对应字符(即ASCII码),按从高到低的顺序分别存入L1、L2、L3、L4这4个字节单元中。
3.14、试将BUF起始的100个字节的组合BCD码数字,转换成ASCII码,并存放在以ASC为起始地址的单元中。
已知高位BCD码位于较高地址中。
3.15、请给出以下各指令序列执行完后目的寄存器的内容。
(1)MOVBX,-78
MOVSXEBX,BX
(2)MOVCL,-5
MOVSXEDX,CL
(3)MOVAH,9
MOVZXECX,AH
(4)MOVAX,87H
MOVZXEBX,AX
3.16、请给出以下各指令序列执行完后EAX和EBX的内容。
MOVECX,12345678H
BSFEAX,ECX
BSREBX,ECX
3.17、给以TAB为首地址的100个ASCII码字符添加奇偶校验位(bit7),使每个字节中的“1”的个数为偶数,在顺序输出到10H号端口。
3.18、编写一段程序,要求在长度为100H字节的数组中,找出正数的个数并存入字节单元POSIT中,找出负数的个数并存入字节单元NEGAT中。
习题三参考答案
3.1答:
寻址方式是指计算机在执行指令时寻找操作数的方式。
8086/8088微处理器有以下几种寻址方式:
①立即寻址。
操作数(仅限源操作数)直接放在指令中。
例如:
movcx,100;
movah,20h。
②寄存器寻址。
操作数在CPU的内部寄存器中。
moves,ax;
movdl,bh。
③直接寻址。
指令中直接给出了操作数的偏移地址。
movax,[3000h];
movbuf,100。
④寄存器间接寻址。
操作数的偏移地址放在寄存器bp,bx,si,di四个寄存器中的一个里。
movax,[si];
mov[bx],cx。
⑤寄存器相对寻址。
操作数的有效地址为基址寄存器或变址寄存器的内容与指令中指定的位移量之和。
movax,cnt[si];
movstr[bx],ax。
⑥基址变址寻址。
操作数的有效地址是一个基址寄存器和一个变址寄存器的和。
movax,[si+bx];
mov[bx+di],dx。
⑦相对基址变址寻址。
操作数的有效地址为一个基址寄存器、一个变址寄存器的内容与指令中指定的位移量三者之和。
movax,cnt[bx][si];
movcnt[bx][si],ax。
3.2.答:
立即寻址
1200H
寄存器寻址
0BBH
直接寻址
4C2AH
寄存器间接寻址
231AH
寄存器相对寻址
3F68H
基址变址寻址
8934H
相对基址变址寻址
5B56H
6778H
3.3答:
(1)MOV[SI],34H;
目的操作数必须指出是字节操作还是字操作,比如可改成MOVBYTEPTR[SI],34H
(2)MOV45H,AX;
目的操作数不能是立即数
(3)INC12;
操作数不能是立即数
(4)MOV[BX],[SI+BP+BUF];
两个操作数不能同是存储单元
(5)MOVBL,AX;
操作数不匹配
(6)MOVCS,AX;
CS不能作为目的操作数
(7)OUT240H,AL;
对于IN和OUT指令,端口号大于FFH时,必须先将端口号放入DX寄存器中
(8)MOVSS,2000H;
段寄存器不能用立即数来赋值,可改成MOVSS,AX
(9)LEABX,AX;
源操作数必须是内存,如LEABX,BUFFER
(10)XCHGAL,78H;
交换指令不能对立即数操作
3.4答:
MOVSI,[1000H];
(SI)=2234H
LEASI,[1000H];
(SI)=1000H
LDSSI,[1000H];
(SI)=2234H,(DS)=5566H
3.5答:
先进后出。
9BBF0H-4=9BBECH
9BBECH+2=9BBEEH
3.6答:
PUSHAX
PUSHBX
POPAX
POPBX
3.7答:
MOVAX,7FH
ADDAX,1
3.8答:
⑴ADDAL,12H
⑵ADC[BX],AX
⑶SUBAX,BX
⑷MOVAX,[BX+SI]
⑸MOVSI,BUF1
3.9答:
DX=FAD1H,AX=2340H
3.10答:
AX=300H
3.11答:
①循环左移
movcl,4
rolal,cl
②循环右移
roral,cl
③右移
shral,cl
3.12答:
从末端开始传送即可解决重叠问题。
movcx,200
movsi,offsetaera1
addsi,200
movdi,offsetaere2
adddi,200
std;
DF=1,进行地址减量
repmovsb
3.13答:
MOVCL,4
MOVAL,BL;
处理最低位十六进制数
ANDAL,0FH
CMPAL,0AH
JCDIGT4
ADDAL,7
DIGT4:
ADD,AL,30H
MOVL4,AL
处理次低位十六进制数
SHRAL,CL
JCDIGT3
DIGT3:
MOVL3,AL
MOVAL,BH;
处理次高位十六进制数
JCDIGT2
DIGT2:
MOVL2,AL
处理最高位十六进制数
JCDIGT1
DIGT1:
MOVL1,AL
3.14答:
LEASI,BUF
LEABX,ASC
MOVCH,100
MOVCL,4
AGAIN:
MOVAL,[SI];
处理低位BCD码
ADDAL,30H
MOV[BX],AL
INCBX
处理高位BCD码
INCSI
DECCH
JNZAGAIN
3.15答:
(1)MOVBX,-78;
(BX)=FFB2H
MOVSXEBX,BX;
(EBX)=FFFFFFB2H
(2)MOVCL,-5;
(CL)=FBH
MOVSXEDX,CL;
(EDX)=FFFFFFFBH
(3)MOVAH,9;
(AH)=9H
MOVZXECX,AH(ECX)=00000009H
(4)MOVAX,87H;
(AX)=87H
MOVZXEBX,AX;
(EBX)=00000087H
3.16答:
MOVECX,12345678H;
(ECX)=12345678H
BSFEAX,ECX;
(EAX)=00000003H
BSREBX,ECX;
(EBX)=0000001CH
3.17答:
MOVCX,100
LEABX,TAB
AGN:
MOVAL,[BX]
ADDAL,0
JPNEXT
ORAL,80H
NEXT:
OUT10H,AL
INCBX
LOOPAGN
3.18答:
假设数组的起始地址是BUFFER
LEABX,BUFFER
MOVDX,0
ONCE:
TESTAL,80H;
是正数还是负数
JNZFUSHU;
是负数,跳转
CMPAL,0;
是0吗?
JZNEXT
INCDH;
是正数,则DH加1
JMPNEXT
FUSHU:
INCDL;
是负数,则DL加1
DECCX
JNZONCE
MOVPOSIT,DH
MOVNEGAT,DL
第四章课后习题
4.1、汇编语言有何特点?
编写汇编语言源程序时,一般的组成原则是什么?
4.2、.MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪几种存储模式,各用于创建什么性质的程序?
4.3、如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?
4.4、逻辑段具有哪些属性?
完整代码段定义时的默认属性是什么?
小型模式下的简化代码段定义具有的默认属性是什么?
4.5、DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?
4.6、给出下列语句中,指令立即数(数值表达式)的值:
(1)moval,23hAND45hOR67h
(2)movax,1234h/16+10h
(3)movax,254hSHL4
(4)moval,’a’AND(NOT(‘b’一‘B’))
(5)movax,(76543LT32768)XOR7654h
4.7、画图说明下列语句分配的存储空间及初始化的数据值:
(1)