新编1632位微型计算机原理及应用第3章.习题解答.ppt

上传人:牧羊曲112 文档编号:5988112 上传时间:2023-09-11 格式:PPT 页数:19 大小:214.50KB
返回 下载 相关 举报
新编1632位微型计算机原理及应用第3章.习题解答.ppt_第1页
第1页 / 共19页
新编1632位微型计算机原理及应用第3章.习题解答.ppt_第2页
第2页 / 共19页
新编1632位微型计算机原理及应用第3章.习题解答.ppt_第3页
第3页 / 共19页
新编1632位微型计算机原理及应用第3章.习题解答.ppt_第4页
第4页 / 共19页
新编1632位微型计算机原理及应用第3章.习题解答.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《新编1632位微型计算机原理及应用第3章.习题解答.ppt》由会员分享,可在线阅读,更多相关《新编1632位微型计算机原理及应用第3章.习题解答.ppt(19页珍藏版)》请在三一办公上搜索。

1、,主讲人:陈朋 博士、讲师地 址:广C321室Phone:(600+)Email:,微机原理及应用,3.2 8086 CPU有多少根数据线和地址线?它能寻址多少内存地址单元和I/O端口?8088 CPU又有多少根数据线和地址线?为什么要设计8088 CPU?,答:(1)8086 CPU有16根数据线,20根地址线。(2)能寻址1MB内存和64KB的I/O端口。(3)8088 CPU有8根数据线,20根地址线。(4)设计8088 CPU主要是为了与Intel原有的8位外围接口芯片兼容。,第3章“微处理器及其系统”,3.4 8086 CPU内部的总线接口单元BIU由哪些功能部件组成?它们的基本操作

2、原理是什么?,答(1)BIU内有4个16位段地址寄存器CS(代码段寄存器,Code Segment)、DS(数据段寄存器,Data Segment)、SS(堆栈段寄存器,Stack Segment)和ES(附加段寄存器,Extra Segment),16位指令指针IP,6字节指令队列缓冲器,20位地址加法器和总线控制电路。(2)指令队列缓冲器是暂存计算机将要执行的指令的机器码;地址加法器用于执行“段加偏移”的寻址机制,即完成段基址加偏移地址的操作;段寄存器存放16位段地址,用于地址加法器中左移生成20位的段基址;IP中含有BIU要取的下1条指令(字节)的偏移地址。IP在程序运行中能自动加1修正

3、,使之指向要执行的下1条指令(字节);总线控制电路控制对存储器或外设数据的存取。,3.7 在微处理器中设置指令队列缓冲器有什么作用?8086与8088 CPU中的指令队列有何区别?,答(1)BIU的指令队列缓冲器用于存放预取的指令。(2)8086的指令队列为6个字节,而8088的指令队列为4个字节。指令队列缓冲器中只要空出2个(对8086)或空出1个(对8088)指令字节时,BIU自动执行取指操作,直到填满。,3.9 段地址和段起始地址相同吗,两者是什么关系?8086的段起始地址就是段基地址吗?它是怎样获得的?,答:(1)不同。在8086中,段地址是16位的,段起始地址(段基址)是20位的。(

4、2)是。20位的段起始地址是通过指令给段寄存器装入16位的段地址后再进行左移4位后形成的。,3.23 堆栈的深度由哪个寄存器确定?为什么说一个堆栈的深度最大为64KB?在执行一条入栈或出栈指令时,栈顶地址将如何变化?,答:(1)由SP确定,堆栈段的范围是SS16至SS16+SP。(2)因为SP是16位的寄存器,最大寻址空间为64KB。(3)每执行一次压栈指令,则SP-2,即栈顶地址减2,推入堆栈的数据放在栈顶;而每执行一次弹出指令时,则SP+2,即栈顶地址加2再指向新的栈顶。,3.26 ALE信号起什么作用,它在使用时能否被浮空?信号起什么作用,它在什么情况下被浮置为高阻状态?,答:(1)AL

5、E信号是8086/8088提供给地址锁存器8282/8283的控制信号,高电平有效,在使用时不能被浮空。(2)在使用8286/8287作为数据总线收发器时,信号用于控制8286/8287的数据传送方向。在DMA方式时,它被浮置为高阻状态。,3.27 8086/8088 CPU的哪些引脚采用了分时复用技术?哪些引脚具有两种功能?,答:(1)数据总线和地址总线的低16位AD15-AD0或者低8位AD7-AD0采用分时复用技术。(2)24-31引脚具有两种功能,这个由33引脚来选择最大最小功能模式来确定具体引脚功能。,3.32 指出8086/8088下列指令源操作数的寻址方式。,(1)MOV AX,

6、1200H,立即数寻址,(2)MOV AX,1200H,存储器直接寻址,(3)MOV BX,SI,存储器变址寻址,(4)MOV BX,SI+1200,存储器相对变址寻址,(5)MOV BX+SI,AL,寄存器寻址,(6)ADD AX,BX+DI+20,相对基址加变址寻址,(7)MUL BL,寄存器寻址,(8)JMP BX,基址寻址,(9)IN AL,DX,间接端口寻址(IO端口间接寻址),(10)INC WORD PTRBP+50H,相对基址寻址,3.33 指出8086/8088下列指令中存储器操作数物理地址的计算表达式。,(1)MOV AL,DI,PA=DS*16+DI,(2)MOV AX,

7、BX+SI,PA=DS*16+BX+DI,(3)MOV 8BX+DI,AL,PA=DS*16+8+BX+DI,(4)MOV AL,ES:BX,PA=ES*16+BX,(5)SUB AX,2400H,PA=DS*16+2400H,(6)ADC AX,BX+DI+1200H,PA=DS*16+BX+DI+1200H,(7)MOV CX,BP+SI,PA=SS*16+BP+SI,(8)INC BYTE PTRDI,PA=DS*16+DI,3.34 指出8086下列指令的错误。,(1)MOV SI,IP,指令指针IP不能传送,(2)MOV CS,AX,CS段寄存器不能做目的操作数,(3)MOV BL,

8、SI+2,传送类型不匹配,BL为8位,SI+2为16位,(4)MOV 60H,AL,目的操作数不能为立即数,(5)PUSH 2400H,源操作数不能为立即数,(6)INC BX,不知是字节加1还是字加1,应在指令前面加 BYTE PTR或WORD PTR,(7)MUL-60H,乘数不能为立即数,(8)ADD 2400H,2AH,2400H前要加类型说明,(9)MOV BX,DI,不能同为存储器操作数,(10)MOV SI,AL,类型不匹配,3.39 给定DS=1100H,BX=0200H,LIST=0250H和SI=0500H。试确定下面各条指令寻址存储器的地址。,(1)MOV LISTSI,

9、EDXPA=DS*16+LIST+SI=11750H,(2)MOV CL,LISTBX+SIPA=DS*16+BX+LIST+SI=11950H,(3)MOV CH,BX+SIPA=DS*16+BX+SI=11700H,(4)MOV DL,BX+100HPA=DS*16+BX+100H=11300H,3.40 假定PC存储器低地址区有关单元的内容如下:(20H)=3CH,(21H)=00H,(22H)=86H,(23H)=0EH,且CS=2000H,IP=0010H,SS=1000H,SP=0100H,FLAGS=0240H,这时若执行INT 8指令,试问:(1)程序转向何处执行(用物理地址回

10、答)?(2)栈顶6个存储单元的地址(用逻辑地址回答)及内容分别是什么?,答:(1)IP=003CH,CS=0E86H,PA=0E89CH,(4)1000H:00FAH 0012H 1000H:00FCH 2000H 1000H:00FEH 0240H,3.57 若AC=1001H,DX=20FFH,当执行ADD AX,DX指令以后,请列出和数及标志寄存器中每个位的内容(CF、AF、SF、ZF和OF)?,答:3100HCF=0,AF=1,SF=0,ZF=0,OF=0,3.69 设计一个程序段,将AX和BX中的8位BCD数加CX和DX中的8位BCD数(AX和CX是最高有效寄存器),加法以后的结果必

11、须存入CX和DX中。,PUSH AX PUSH CX MOV AX,DX ADD AL,BL DAA MOV CL,AL MOV AL,AH ADC AL,BH DAA MOV DH,AL MOV DL,CL,POP CX POP AX ADD AL,CL DAA MOV BL,AL MOV AL,AH ADC AL,CH DAA MOV CH,AL MOV CL,BL,3.71设计一个程序段,将DH中最左3位清0,而不改变DH中的其他位,结果存入BH中。,答:AND DH,1FH MOV BH,DH,3.74设计一个程序段,将AX中的最右4位置1,将AX中的最左3位清零,并且将AX中的7、8

12、、9位取反。,答:OR AL,0FH AND AH,1FH XOR AX,01C0H,3.81 带参数的返回指令用在什么场合?设栈顶地址为2000H,当执行RET 0008后,问SP的值是多少?,答:(1)带参数的返回指令RET用在调用程序需要通过堆栈向过程传送一些参数的场合,并在过程运行中要使用这些参数,一旦过程执行完毕,这些参数应弹出堆栈作废。RET指令放在被调用的过程尾处。(2)段间调用:200CH 段内调用:200AH,RET N等同下面两条指令 RET ADD SP,n,3.82 在执行中断返回指令IRET和过程(子程序)返回指令RET时,具体操作内容有什么区别?,答:执行中断返回指令IRET时,具体操作内容为:(1)先将由SP所指定的堆栈内容弹出至IP,恢复IP值。IP-(SP),SP-SP+2。(2)再将由SP所指定的堆栈内容弹出至CS,恢复CS值。CS-(SP),SP-SP+2(3)最后将由SP所指定的堆栈内容弹出至FLAGS,恢复FLAGS值。FLAGS-(SP),SP-SP+2执行过程返回指令RET时,具体操作内容为:同第(1)、(2)步内容,无第(3)步操作。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号