第-1-页共-25-页12年春季学期微机接口技术复习题供电信学院各专业复习参考1、假设(CS)=3000H,(DS)=4000H,(ES)=2000H,(SS)=5000H,(AX)=2060H,(BX)=3000H,(CX)=5,(DX)=0,(SI)=2060H,(DI)=3000H,(43000H)=0A006H,(23000H)=0B116H,(33000H)=0F802H,(25060)=00B0H,下列各条指令为单独执行指令,前后无关系,请回到括号中的问题。(1)SBBAX,BX完成的是(带借位减法)操作,AX=()(2)CMPAX,WORDPTR[SI+0FA0H]完成的是(两个数的比较)操作,AX=()(3)MULBYTEPTR[BX]完成的是(两个数的乘法)操作,AX=()(4)DIVBH完成的是(两个数的除法)操作,AX=()(5)SARAX,CL完成的是()操作,AX=()2、假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=0001,(DI)=0002,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00A0H,(40102H)=2200H。执行下列程序段并分析指令执行后的结果,(注意:不是单条指令),按给出的要求填空回答问题:(1)MOVAX,[BP][SI]源操作数物理地址=H,指令执行后(AX)=H(2)POPAX源操作数物理地址=H,指令执行后(AX)=H(3)MOVAL,[BX]源操作数有效地址=H,指令执行后(AX)=H(4)LEADI,ARRAY源操作数的寻址方式是,指令执行后(DI)=H(5)JMPBX指令执行后(IP)=H(6)INCBX源操作数的寻址方式是第-2-页共-25-页3、指出下列指令的错误,(要求说明错误的原因,并给出正确的写法)(1)MOVAH,BX(2)MOV[SI],[BX](3)MOVAX,[SI][DI](4)MOVBYTEPTR[BX],1000H(5)MOVDS,BP4、若给定AX和BX的值如下,(1)(AX)=14C8H,(BX)=808DH(2)(AX)=D022H,(BX)=9F70H(3)(AX)=148DH,(BX)=808DH(4)(AX)=9F22H,(BX)=9F20H已知下列程序段,按无符号数计算,说明程序的转向。ADDAL,BLJZL1JCL2CMPAH,BHJCL3JZL4JMPL55、下列标号为什么是非法的?(1)GET.DATA(2)1_NUM(3)TEST-DATA(4)RET(5)NEWITEM答案:非法标号:(1)因为‘.’只允许是标号的第一个字符(2)第一个字符不能为数字(3)不允许出现‘-’(4)不能是保留字,如助记符(5)不能有空格6、下面的数据项定义了多少个字节?DATA_1DB6DUP(4DUP(0FFH))答案:24字节7、对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?为什么?第-3-页共-25-页DTSEGSEGMENT|DTSEGSEGMENTORG0010H|ORG0010HDATA1DB72H|DATA1DW7204HDB04H|DTSEGENDSDTSEGENDS|答案:不一样.分别是72H,04H和04H,72H.存储字时低8位存在低字节,高8位存在高字节.8、下面的数据项设置了多少个字节?(1)ASC_DATADB‘1234’(2)HEX_DATADB1234H答案:(1)设置了4个字节(2)设置了2个字节9、执行下列指令后,AX寄存器中的内容是什么?TABLEDW10,20,30,40,50ENTRYDW3...MOVBX,OFFSETTABLEADDBX,ENTRYMOVAX,[BX]答案:(AX)=4010、指出下列指令的错误:(1)MOVAH,BX(2)MOV[SI],[BX](3)MOVAX,[SI][DI](4)MOVAX,[BX][BP](5)MOV[BX],ES:AX(6)MOVBYTEPTR[BX],1000(7)MOVAX,OFFSET[SI](8)MOVCS,AX(9)MOVDS,BP答案:(1)源、目的字长不一致(2)源、目的不能同时为存贮器寻址方式(3)基址变址方式不能有SI和DI的组合(4)基址变址方式不能有BX和BP的组合第-4-页共-25-页(5)在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式(6)1000超出一个字节的表数范围(7)OFFSET只用于简单变量,应去掉(8)CS不能作为目的寄存器(9)段地址不能直接送入数据段寄存器(10)根据中断源的不同,中断可以分为外部中断、内部中端和软件中断。(×)答案:中断可以分为外部中断、内部中端。(11)数据传送指令:MOV[1000H],[AL](×)答案:存储器之间不能传送数据,MOVAL,[BX];MOV[1000H],AL(12)出栈指令:POPAL(×)答案:堆栈操作为字操作;POPAX(13)数据传送指令:MOVAL,BX(×)答案:数据长度比一致;MOVAX,BX或MOVAL,BL(14)数据传送指令:MOVDS,[1000H](×)答案:存储器的内容不能直接传送到段寄存器,只能用16位通用寄存器传送。(15)除法指令:MOVAX,BL(×)答案:目的操作数是隐含为AX或DX:AX中(16)数据传送指令:MOVES,CS(×)答案:段寄存器之间不能传送数据,只能用16位通用寄存器传送(17)数据传送指令:MOVES,AX(√)(18)加1指令:INC[BX](√)(19)对一个字数据,当从偶地址存取时需占用2个总线周期,而从奇地址存取时需1个总线周期。(×)(20)、8086/8088CPU执行指令RET与IRET产生的操作是一样的(×)(21)、根据中断源的不同,中断可以分为外部中断、内部中端和软件中断。(×)答案:中断可以分为外部中断、内部中端。11、程序分析题DATASEGMENTTABLE_ADDRDW1234HDATAENDS.第-5-页共-25-页MOVBX,TABLE_ADDRLEABX,TABLE_ADDR请写出上述两条指令执行后,BX寄存器中的内容。答案:MOVBX,TABLE_ADDR;执行后(BX)=1234HLEABX,TABLE_ADDR;执行后(BX)=OFFSETTABLE_ADDR12、编写程序段,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串与NEWS不同,则执行NEW_LESS,否则顺序执行程序。答案:LEASI,OLDSLEADI,NEWSMOVCX,5CLDREPZCMPSBJNZNEW_LESS13.假定AX和BX中的内容为带符号数,CX和DX中的内容为无符号数,请用比较指令和条件转移指令实现以下判断:(1)若DX的值超过CX的值,则转去执行EXCEED(2)若BX的值大于AX的值,则转去执行EXCEED(3)CX中的值为0吗?若是则转去执行ZERO(4)BX的值与AX的值相减,会产生溢出吗?若溢出则转OVERFLOW(5)若BX的值小于AX的值,则转去执行EQ_SMA(6)若DX的值低于CX的值,则转去执行EQ_SMA答案:(1)CMPDX,CXJAEXCEED(2)CMPBX,AXJGEXCEED(3)CMPCX,0JEZERO(4)SUBBX,AX第-6-页共-25-页JOOVERFLOW(5)CMPBX,AXJLEQ_SMA(6)CMPDX,CXJBEQ_SMA14、假如在程序的括号中分别填入指令:(1)LOOPL20(2)LOOPNEL20(3)LOOPEL20试说明在三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器的内容分别是什么?TITLEEXLOOP.COMCODESGSEGMENTASSUMECS:CODESG,DS:CODESG.SS:CODESGORG100HBEGIN:MOVAX,01MOVBX,02MOVDX,03MOVCX,04L20:INCAXADDBX,AXSHRDX,1()RETCODESGENDSENDBEGIN答案:(1)(AX)=5(BX)=16(CX)=0(DX)=0(2)(AX)=2(BX)=4(CX)=3(DX)=1(3)(AX)=3(BX)=7(CX)=2(DX)=015、变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。答案:MOVAX,0MOVAL,N1+1SUBAL,N2+1第-7-页共-25-页AASMOVDL,ALMOVAL,N1SBBAL,N2AASMOVDH,AL16、假设(CS)=3000H,(DS)=4000H,(ES)=2000H,(SS)=5000H,(AX)=2060H,(BX)=3000H,(CX)=5,(DX)=0,(SI)=2060H,(DI)=3000H,(43000H)=0A006H,(23000H)=0B116H,(33000H)=0F802H,(25060)=00B0H,.(SP)=0FFFEH,(CF)=1,(DF)=1,请写出下列各条指令单独执行完后,有关寄存器及存储单元的内容,若影响条件码请给出条件码SF、ZF、OF、CF的值。(1)SBBAX,BX(2)CMPAX,WORDPTR[SI+0FA0H](3)MULBYTEPTR[BX](4)AAM(5)DIVBH(6)SARAX,CL(7)XORAX,0FFE7H(8)REPSTOSB(9)JMPWORDPYR[BX](10)XCHGAX,ES:[BX+SI]答案:(1)(AX)=0F05FH,(SF)=1,(ZF)=0,(OF)=0,(CF)=1(2)(SF)=1,(ZF)=0,(OF)=1,(CF)=1(3)(AX)=0240H,(OF)=1,(CF)=1(4)(AX)=0906H,(SF)=0,(ZF)=0(5)(AX)=20ACH(6)(AX)=0103H,(CF)=0(7)(AX)=0DF87H,(CF)=0,(OF)=0,(SF)=1,(ZF)=0(8)(23000H)~(23004H)=60H,不影响标志位(9)(IP)=0A006H,不影响标志位(10)(AX)=00B0H,(25060)=2060H,不影响标志位第-8-页共-25-页17、给定(SP)=0100,(SS)=0300,(FLAGS)=0240,存储单元的内容为(00020)=0040,(00022)=0100,在段地址为0900及偏移地址为00A0的单元中有一条中断指令INT8,试问执行INT8指令后,SP,SS,IP,FLAGS的内容是什么?栈顶的三个字是什么?答案:(SP)=00FA(SS)=0300(IP)=0040(FLAGS)=0040堆栈内容:00A1H0900H0240H18、完成下列的填空1).CPU中运算器的功能主要是()。A.算数运算B.逻辑运算C.函数运算D.算数运算和逻辑运算2)..CPU与外设间数据传送的控制方式有()。A.中断方式B.程序控制方式C.DMA方式D.以上三种都是3).段地址最多可以为()字节。A.128KB.64KC.32KD.16K4).指令MOVAX,MASK[BX][SI]中源操作数的寻址方式为()。A.寄存器寻址B.变址寻址C.基址变址寻址D.相对基址变址寻址5).EPROM是指()。A.随机读写存储器B.可编程只读存储器C.只读存储器D.可擦除可编程只读存储器6).堆栈的工作方式是()。A.先进先出B.随机读写C.只能读出不能写入D.后进先出7).要使8086CPU工作在最小方式,其引脚MN/MX(非)应接()电平。A、TTLB、CMOSC、逻辑低D、逻辑高8).从8086CPU的功能结构上看,其是由()两部分组成。第-9-页共-25-页A、控制器和20位物理地址加法器B、运算器和总线接口C、执行单元和总线接口单元D、控制器和运算器9).