微机课后答案整理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章1.2把下列十进制数转换成二进制、八进制、十六进制数。6.25D=110.01B=6.2Q=6.4H1.3把下列二进制数转换成十进制数。1101.01B=13.251.4把下列八进制数转换成十进制数。776.07Q=7*8*8+7*8+6+7/64=510.1093751.5把下列十六进制数转换成十进制数。A6.DCH=166+13/16+12/256=166.8593751.8求下列带符号十进制数的8位二进制补码。127补码:07FH-1补码:0FFH1.9求下列带符号十进制数的16位二进制补码。655补码:028FH-1补码:0FFFFH第二章2.3简述8086CPU的寄存器组织。AX累加器BX基址寄存器CX计数器DX数据寄存器SI源变址寄存器DI目的变址寄存器SP堆栈指针寄存器BP基址指针寄存器DS数据段寄存器SS堆栈段寄存器CS代码段寄存器ES附加段寄存器IP指令指针寄存器FLAGS标志寄存器2.4试述8086CPU标志寄存器各位的含义与作用。CF进位位AF辅助进位位OF溢出SF符号位PF奇偶位ZF零标志位IF中断允许TF单步DF方向2.7在8086中,CPU实际利用哪几条地址线来访问I/O端口?最多能访问多少个端口?利用最低16根地址线。最多访问65536个端口。第三章3.1机器指令分为哪几部分?每部分的作用是什么?操作码和操作数。操作码:用来说明该指令所要完成的操作。操作数:用来描述该指令的操作对象。3.2指出下列MOV指令的源操作数的寻址方式:MOVAX,1234HMOVAX,BXMOVAX,[BX]MOVAX,TABLE;TABLE;TABLE是一个变量名MOVAX,[1234H]MOVAX,[BX+1234H]MOVAX,[BP][SI]MOVAX,[BX+SI-1234H]【解】:MOVAX,1234H立即寻址MOVAX,BX寄存器寻址MOVAX,[BX]寄存器间接寻址MOVAX,TABLE;TABLE是一个变量名直接寻址方式MOVAX,[1234H]直接寻址方式MOVAX,[BX+1234H]寄存器相对寻址MOVAX,[BP][SI]基址变址寻址MOVAX,[BX+SI-1234H]相对地址变址寻址3.3设:(DS)=2000H,(BX)=0100H,(SS)=1000H,(BP)=0010H,TABLE的物理地址为2000AH,(SI)=0002H。求下列每条指令源操作数的存储单元地址:MOVAX,[1234H]MOVAX,[BX]MOVAX,TABLE[BX]MOVAX,[BP]MOVAX,[BP][SI]【解】:存储单元地址:(DS)×10H+EA=2000H×10H+1234H=21234H存储单元地址:(DS)×10H+(BX)=2000H×10H+0100H=20100H存储单元地址:(DS)×10H+EA=2000H×10H+0100H+000AH=2010AH存储单元地址:(SS)×10H+EA=1000H×10H+0010H=10010H储单元地址:(SS)×10H+EA=1000H×10H+0010H+0002H=10012H3.4设ARRAY是字数组的首地址,写出将第5个字元素取出送AX寄存器的指令,要求使用以下几种寻址方式:⑴直接寻址⑵寄存器间接寻址⑶寄存器相对寻址⑷基址变址寻址【解】:(1)直接寻址(2)寄存器间接寻址(3)寄存器相对寻址(4)基址变址寻址MOVAX,ARRAY+8MOVBX,ARRAY+8MOVBX,8LEABX,ARRAYMOVAX,[BX]MOVAX,ARRAY[BX]MOVSI,8MOVAX,[BX+SI]3.7下列每组指令有何区别?(1)MOVAX,1234H立即寻址MOVAX,[1234H]直接寻址(2)MOVAX,TABLE直接寻址MOVAX,[TABLE]直接寻址(3)MOVAX,TABLE将TABLE的内容送AXLEAAX,TALBE将TABLE的偏移量送AX(4)MOVAX,BX寄存器寻址MOVAX,[BX]寄存器间接寻址3.8MOVCS,AX指令正确吗?错误。不能用CS作目的操作数。3.9写一指令序列将3456H装入DS寄存器。MOVAX,3456HMOVDS,AX不能将立即数直接送段寄存器,所以得间接。3.10若正在访问堆栈的03600H单元,则SS和SP的值各是多少?03600H=SS*10H+SP所以有多个答案。例如:SS=350HSP=0HSS=300HSP=600H3.11若(SS)=2000H,(SP)=000AH,先执行将字数据1234H和5678H压入堆栈的操作,再执行弹出一个字数据的操作,试画出堆栈区及SP的内容变化过程示意图(标出存储单元物理地址)SS:2000HSP:0006H20006H78H20006H78H20007H56H20007H56H20008H34HSS:2000HSP:0008H20008H34H20009H12H20009H12HSS:2000HSP:000AH2000AH栈顶2000AH栈顶2000AH栈顶………2FFFFH栈底2FFFFH栈底2FFFFH栈底3.13能用ADD指令将BX内容加到ES中去吗?不能。算术运算中段寄存器不得作为目的操作数。3.14INC[BX]指令正确吗?错误。需指明存储器操作数的类型是字节还是字。3.15若(AX)=0001H,(BX)=0FFFFH,执行ADDAX,BX之后,标志位ZF、SF、CF、OF各是什么?ZF=1SF=0CF=1OF=03.16写一指令序列完成将BL中的数据除以CL中的数据,再将其结果乘以2,并将最后为16位数的结果存入DX寄存器中。MOVAL,BLCBWDIVCLMOVCL,2MULCLMOVDX,AX3.17写一指令序列,完成将AX寄存器的最低4位置1,最高3位清0,第7、8、9位取反,其余位不变的操作。ORAX,000FHANDAX,1FFFHXORAX,0380H第四章4.1假设下列指令中所有标识符均是类型属性为字变量,请指出下列指令中哪些是非法的?它们的错误是什么?(1)MOVBP,AL错类型不一致(2)MOVWORD_OP[BX+4*3][DI],SP对(3)MOVWORD_OP1,WORD_OP2错两存直接传(4)MOVAX,WORD_OP1[DX]错只能用BX.BPSI.DI间接寻址(5)MOVSAVEWORD,DS对(6)MOVSP,SS:DATA_WORD[BX][SI]对(7)MOV[BX][SI],2错需明确类型是字还是字节(8)MOVAX,WORD_OP1+WORD_OP2错必须一常数(9)MOVAX,WORD_OP1_WORD_OP2+100对10)MOVWORD_OP1,WORD_OP1_WORD_OP2错俩标识符直连4.2假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处:⑴ADDVAR1,VAR2⑵SUBAL,VAR1⑶JMPLAB[SI]⑷JNZVAR1⑸JMPNEARLAB【解】:⑴ADDVAR1,VAR2ADD两个操作数不能同时为存储单元,MOVAX,VAR1ADDAX,VAR2⑵SUBAL,VAR1两个操作数不匹配SUBAX,VAR1⑶JMPLAB[SI]LAB与[SI]不能相加JMPWORDPTR[SI]⑷JNZVAR1JNZ后面应是标号,不应是变量JNZLAB⑸JMPNEARLAB缺少PTR运算符JMPNEARPTRLAB4.5假设程序中的数据定义如下:PARTNODW?PNAMEDB16DUP(?)COUNTDD?PLENTHEQU$-PARTNO问PLENTH的值为多少?它表示什么意义?PLENTH的值为22,表示从PARTNO开始到PLENTH之前所含字节数4.6有符号定义语句如下:BUFFDB1,2,3,‘123’EBUFFDB0LEQUEBUFF-BUFF问L的值是多少?L值为6。BUFFDB1,2,3,‘123’LEQU$-BUFFEBUFFDB04.9给出等值语句如下:ALPHAEQU100BETAEQU25GAMMAEQU2下列表达式的值是多少?⑴ALPHA*100+BETA⑵ALPHAMODGAMMA+BETA⑶(ALPHA+2)*BETA-2⑷(BETA/3)MOD5⑸(ALPHA+3)*(BETAMODGAMMA)⑹ALPHAGEGAMMA⑺BETAAND7⑻GAMMAOR3【解】:⑴ALPHA*100+BETA100×10025=10025⑵ALPHAMODGAMMA+BETA100/(25+2)=19⑶(ALPHA+2)*BETA-2(100+2)*25=2548⑷(BETA/3)MOD5(25/3)MOD5=3⑸(ALPHA+3)*(BETAMODGAMMA)(100+3)*(25MOD2)=103⑹ALPHAGEGAMMA100GZGAMMA=0FFFFH⑺BETAAND725AND7=1⑻GAMMAOR32OR3=34.10对于下面的数据定义,三条MOV指令分别汇编成什么?(可用立即数方式表示)TABLEADW10DUP(?)TABLEBDB10DUP(?)TABLECDB’1234’┇MOVAX,LENGTHTABLEAMOVBL,LENGTHTABLEBMOVCL,LENGTHTABLEC【解】:MOVAX,LENGTHTABLEAMOVAX,OOOAHMOVBL,LENGTHTABLEBMOVBL,0AHMOVCL,LENGTHTABLECMOVCL,O1H4.11对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?FLDBDB?TABLEADW20DUP(?)TABLEBDB‘ABCD’⑴MOVAX,TYPEFLDB⑵MOVAX,TYPETABLEA⑶MOVCX,LENGTHTABLEA⑷MOVDX,SIZETABLEA⑸MOVCX,LENGTHTABLEB【解】:(1)MOVAX,TYPEFLDB(AX)=1(2)MOVAX,TYPETABLEA(AX)=2(3)MOVCX,LENGTHTABLEA(CX)=20(4)MOVDX,SIZETABLEA(DX)=40(5)MOVCX,LENGTHTABLEB(CX)=1第五章5.1简述8086引脚信号M/IO*、DT/R*、RD*、WR*、ALE、DEN*、BHE*/S7的作用。M/IO*若为1访问存储器,否则IODT/R*若为1控制缓冲器方向为发送,否则接收RD*读引脚WR*写引脚ALE地址锁存引脚DEN*控制缓冲器能否工作BHE*/S7T1总线高允许/状态5.2什么是指令周期?什么是总线周期?什么是时钟周期?指令周期:执行一条指令所需要的时间。总线周期:CPU的每一个这种信息输入、输出过程需要的时间。时钟周期:时钟脉冲的重复周期。1指令周期=N总线周期1总线周期=至少4个时钟周期5.38086一个总线周期包括哪几个时钟周期?若主时钟频率为4.77MHz,一个总线周期是多少时间?怎样延长总线周期?8086一个总线周期包括时钟周期:T1、T2、T3、T4若主时钟频率为4.77MHz,一个总线周期是4/4.77微妙用ready可延长总线周期。当被选中进行数据读/写的存储器或外设无法在三个T周期内完成数据读/写时,就由其发出一个请求延长总线周期的信号到8086CPU的READY引脚,8086CPU收到该请求后,就在T3与T4之间插入一个等待周期Tw,加入Tw的个数与外部请求信号的持续时间长短有关,延长的时间Tw也以时钟周期T为单位,在Tw期间,总线上的状态一直保持不变。第十章10.6没找到!

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功