您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 药学 > 微机接口期中自测题答案(较完整)
1微机原理与接口技术期中自测题一、选择题:(每题1分,共20分)1.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是(A)。A.2025∶0F2AB.2108∶00EAC.2000∶017AD.2100∶117A分析:物理地址(physicaladdress)PA=(DS)×16+EA=20250H+0F2AH=2117AH2.能够将’以寄存器DI间接寻址的存储器字节单元’内容加1的指令是(C)。A.INC[DI]B.INCDIC.INCBYTEPTR[DI]D.ADD[DI],1以寄存器DI间接寻址的推出有[DI]这一项字节单元说明有BYTEPTR加1可以用INC,所以得到INCBYTEPTR[DI]当然也可以用ADDBYTEPTR[DI],13.有语句:COUNTEQU256,下列四种叙述中,正确的是(C)。A.COUNT是变量B.COUNT占用一个字节存储单元C.COUNT是符号常数D.COUNT占用二个字节存储单元参考课件和书中相关章节4.下面指令中,源操作数的寻址方式为立即寻址的是(B)。A.MOVAX,OFFSETAB.MOVAX,AC.MOVAX,A+1D.MOVAX,A[BX]这道题目有问题,应该在前面加上一句AEQU1234H,则答案选B也就是说,完整的题目应该为已知有如下定义:AEQU1234H,下面指令中,源操作数的寻址方式为立即寻址的是()5.已知SP=2110H,执行POPAX后,SP寄存器的值是(B)。A.2111HB.2112HC.210FHD.210EH因为在汇编语言中,在堆栈非空的情况下,栈顶的地址值比栈底的地址值大,所以执行POPAX以后把(SP)+2送到SP,所以(SP)=2110H+2=2112H6.将AX中有符号数除以2的正确指令是(B)。A.SHRAX,1B.SARAX,1C.RORAX,1D.RCRAX,1因为是有符号数字除以2,所以只能选算术右移移位,即B。7.比较BX和SI中的两个存储器地址,若BX≥SI转向HIGH的正确指令是(A)。A.JAEHIGHB.JBEHIGHC.JEGHIGHD.JLEHIGH地址是无符号数,所以大于或等于用JAE8.指令SCASB操作数的段地址一定在(C)寄存器中。A.CSB.DSC.ESD.SS参考课件中关于SCASB的描述。9.有数据定义语句BUFDW0ABH,1,10DUP(3DUP(1,0),2)汇编后,为变量BUF分配的存储单元字节数是(B)。A.48HB.90HC.120D.60由DW可知,一个1占两个字节,所以1,0占4个字节3DUP(1,0)占12个字节,(3DUP(1,0),2)占14字节,10DUP(3DUP(1,0),2)占140字节,0ABH,1,10DUP(3DUP(1,0),2)占144个字节,即90H10.下列指令执行后,不改变AL寄存器内容的指令是(B)。2A.ANDAL,1B.CMPAL,DLC.XORAL,ALD.SUBAL,DLCMP指令只是比较两个操作数的大小,不改变操作数的内容11.执行01H号DOS系统功能调用,从键盘输入的字符值存放在(A)寄存器中。A.ALB.BLC.CLD.DL12.执行下面指令语句,则AX=(C)。MOVAL,95HCBWA.0095HB.0F95HC.0FF95HD.9095HCBW将字节扩展为字若al的最高位为0,则(ah)=00000000;若al的最高位为1,则(ah)=11111111.13.将DX,AX中32位数左移一位的指令序列是(A)。A.SHLAX,1B.RCLAX,1RCLDX,1SHLDX,1C.SHLAX,1D.RCLAX,1SHLDX,1RCLDX,1注意:这里把DX,AX合起来看作1个32位的数,期中DX代表高16位,AX代表低16位.对于AX来说,无论算术左移还是逻辑左移,效果都是一样的,所以可以采用SHLAX,1对于DX来说,原来AX的最高位要移到DX的最低位。若采用SHLDX,1则DX的最低位恒为0,肯定错了。执行SHLAX,1以后AX的最高位移到了CF,当执行指令RCLDX,1以后,就把原来AX的最高位通过CF移到了DX的最低位。14.将CX寄存器低4位清零的正确指令是(B)。A.ANDCX,0F0HB.ANDCX,0FFF0HC.ANDCX,1110HD.MOVCX,015、下面四条指令中,源操作数不采用立即寻址的是(C)。A、MOVAX,DATAB、MOVAX,1234HC、MOVEAX,[EBX]D、MOVAX,OFFSETARY这道题目有问题,应该在前面加上两句话DATAEQU1234HARYdb12,34,56h,否则题目不是很合适16、在数据段有如下定义:A_BUFDB‘1234567’,则A-BUF字节单元的内容是(A)。A、31HB、01HC、12HD、12分析:A_BUFDB‘1234567’定义了一个字符串,’1’是一个字符,其ASCII码为31H17、已知(DS)=2000H,(ES)=3000H,(CS)=4000H,(SS)=5000H,(BP)=2080H,COUNT=80H则指令MOVAX,COUNT[BP]中,源操作数的物理地址为(B)。A、22100HB、52100HC、52000HD、22000H[BP]说明默认的段寄存器为堆栈段SS.所以物理地址为(SS)*16D+80H+2080H=52100H18、要求从一个字符串中查找一个指定的字符,可以使用的指令是(A)A、REPNZSCASBB、REPESCASBC、REPNECMPSBD、REPZCMPSB这里应该选A.很抱歉,参考答案错了,我自己以前也没认真做答案.得分阅卷人319、如果当前AL寄存器的内容为-1,则以下指令中,不能转向符号地址NEXT处执行的是(A)A、ANDAL,0FFHB、CMPAL,7FHJZNEXTJANEXTC、CMPAL,0FFHD、TESTAL,0FFHJENEXTJNZNEXT-1的原码为10000001,反码为11111110,补码为11111111,即0FFH.也就是说(AL)=0FFH,至于把它看成有符号数,还是无符号数,是我们用户的选择(A)AND把(AL)和0FFH相与,结果放到AL,不对两者进行比较,所以不影响标志位。(B)用JA说明把(AL)的内容看作无符号数,看作无符号数时(AL)=0FFH7FH,所以JA的条件满足,会跳转到NEXT.(C)用JE把这两个数看作无符号数,(AL)就是0FFH,所以循环的条件满足。(D)TESTAL,0FFH,将(AL)和0FFH按位相与,他们与的结果为1,不为0,所以,JNZ的条件满足。关于TEST指令的内容,请参考书本80页的例子。20、Intel8086CPU读取代码段中的指令,使用的一对寄存器是(A)A、CS:IPB、DS:BXC、SS:SPD、ES:SI二、填空题:(每空1分,共20分)1.在8086/8088系统中,存储器物理地址是分段组织的。堆栈段的段地址存放在_SS(堆栈段)____寄存器中,栈顶数据的偏移地址放在__SP(堆栈指针)___寄存器中。代码段的段地址存放在___CS(代码段)__寄存器中,偏移地址在__IP(指令指针)___寄存器中。2.已知DS=29A0H,某数据的物理地址是2A400H,则当DS=6700H时,该数据的物理地址是__67A00H___。3.已知DS=4000H,BX=0100H,SI=0004,(40100H)=28H,(40101H)=69H,(40104H)=10H,(40105H)=9AH,先执行MOVAX,[0100H],AX=__6928H___再执行ADDAX,[BX+SI],AX=__0338H___,CF=__1___。4.有下列数据定义:AADW1,2,3,4,5,6,7COUNTEQU($-AA)/2则COUNT=__7___。5.用于控制字符操作地址增量方向的状态标志位是__DF______,表示加法结果溢出的状态标志位是___0F_______,允许产生中断时,IF=____1_______。6.在移位指令中,用于指定移位位数的操作数只能是___CL____及___立即数_____。47.用于表示无符号数大于或等于的条件转移指令是____JAE________;用于表示带符号数大于或等于的条件转移指令是__JGE_________。8.子程序传送参数的方法通常有__寄存器_____、_变量______和堆栈三种方法。9.乘法指令MUL的指令格式只有一个源操作数,若源操作数的类型属性为字节,则目的操作数在__AX_____中,若源操作数的类型属性为字,则目的操作数在___DX:AX____中。三解答题(30分)1.假定初始情况(DX)=0B9H,(CL)=3,(CF)=1,下列各条指令单独执行以后,DX的值分别是多少?(6分)SHRDX,1(DX)=005CHSARDX,CL(DX)=0017HSHLDX,CL(DX)=05C8HSHLDX,1(DX)=0072HRORDX,CL(DX)=2017HROLDX,CL(DX)=00CDH编个小程序,单步调试程序,就可以看到答案了提示:在SHRDX,1之前添加如下代码MOVDX,0B9HMOVCL,3STC;将CF置为12.设DS=1000H,BX=200H,SI=2H,(10200H)~(10205H)的内容为10H、2AH、3CH、46H、59H、6BH。试问,下列每条指令单独执行完成后,AX寄存器的内容是什么?(6分)MOVAX,0200H(AX)=0200HMOVAX,[200H](AX)=2A10HMOVAX,BX(AX)=200HMOVAX,3[BX](AX)=5946HMOVAX,[BX+SI](AX)=463CHMOVAX,2[BX+SI](AX)=6B59H3读下列程序段,对程序加以注释,并说出程序的功能;当AL=5BH,写出执行程序后AL的值。(6分)MOVBL,AL;把AL的内容送到BLMOVCX,8;设CX的内容为8AGAIN:ROLBL,1;BL内容循环左移1位,最高位送CFRCRAL,1;AL内容带进位位CF循环右移1位LOOPAGAIN;当(CX)不等于0时循环程序的功能不作要求4.读下列程序段,并回答执行下面的代码后,AL与BL的内容是什么?并说明该程序段的功能。(6分)MOVAL,12H5MOVBL,ALANDAL,0FHORAL,30HMOVCL,4SHRBL,CLADDBL,30H(AL)=32H,(BL)=31H,程序的功能将BCD码转换成ASCII码(太复杂了,可以不要求掌握)5设寄存器AX,BX,CX中的内容都是1234H,字类型变量value中的内容为0F0FH,执行下列指令序列:ORAX,valueANDBX,valueXORCX,value则AX=_1F3FH____,BX=_0204H____,CX=__1D3BH___(3分)6.MOVAL,5ADDAL,ALMOVBL,ALADDAL,ALADDAL,BL上述程序段执行后,AL=__1EH___,BL=__0AH___程序段的功能用数学表达式表示__AL=4*AL+BL___(3分)四.编写完整的程序:从键盘上输入两个’0’到’9’之间的字符,把它们转化为数字,然后把一个数字放在字节类型内存变量m1中,把另一个数字放在字节类型内存变量m2中,然后把m1的内容和m1的内容相加,把它们的和放到BL中.把m1的内容和m2的内容作为无符号书相乘,把乘积放到AX中.(10分)参考以前的实验五.编写完整的程序实现如下分段函数:(10分)为无符号整数且为无符号整数且xxxxxxy3,120,1参考以前的实验六.已知在附加段ES中定义了一个字符串string2,它含有9个字符,查找在字符串中是否含有字母’o’,若找到,输出提示信息“FOUND”,记录字母的偏移地址,放到数据段中定义的内存变量pointer中,计算它和st
本文标题:微机接口期中自测题答案(较完整)
链接地址:https://www.777doc.com/doc-2470163 .html