您好,欢迎访问三七文档
第3章汇编语言一.填空题1.指令MOV[BX+SI],AL中的目的操作数使用______段寄存器,属于______寻址方式。解答:指令MOV[BX+SI],AL中的目的操作数使用___DS___段寄存器,属于__基址变址____寻址方式。2.指令MOVBX,NUM[SI]的源操作数使用的是______寻址方式,SUBAX,[BX+SI]使用的是______寻址方式。解答:指令MOVBX,NUM[SI]源操作数使用了变址寄存器和一个位移量,因此是变址寻址方式。指令SUBAX,[BX+SI]中源操作数指定的一个基址寄存器BX和一变址寄存器SI,因此属于基址变址寻址方式。3.指令LEABX,[BP+SI]的源操作数位于,执行后BX的内容是。解答:指令LEABX,[BP+SI]的源操作数位于堆栈段,执行后BX的内容是BP和SI的内容之和。4.堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,CX=1000H,问(1)执行PUSHAX,PUSHBX后,SP=。(2)再执行PUSHCX,POPBX,POPAX后,SP=AX=,BX=解答:(1)执行PUSHAXSP-2=1FFEH→SP,指针在位置1处,栈顶为AX的内容执行PUSHBXSP-2=1FFCH→SP,指针在位置2处,栈顶为BX的内容(2)再执行PUSHCX,POPBX,POPAX后,执行PUSHCXSP-2=1FFAH→SP,指针在位置3处,栈顶为CX的内容执行POPBX将栈顶内容1000H弹出到BX中,SP+2=1FFCH→SP,指针在位置4处,BX=1000H执行POPAX将栈顶内容5000H弹出到AX中,SP+2=1FFEH→SP,指针在位置5处,AX=5000H本题的正确答案为:(1)执行PUSHAX,PUSHBX后,SP=1FFCH。(2)再执行PUSHCX,POPBX,POPAX后,SP=1FFEHAX=5000H,BX=1000H5.若(AX)=7531H,(BX)=42DAH,则下列指令段SAHFPUSHBXPOPF指令执行完毕后(AX)=,(SF,ZF,CF,OF)=(,,,)。解答:指令执行完毕后(AX)=7531H,(SF,ZF,CF,OF)=(1,1,0,0)6.已知AL=2EH,BL=6CH,执行指令ADDAL,BL之后,AL=,BL=,ZF=AF=OF=PF=CF=。解答:已知AL=2EH,BL=6CH,执行指令ADDAL,BL之后,AL=9AH,BL=6CH,ZF=0AF=1OF=1PF=1CF=0。7.对两个无符号8位二进制数进行加法运算后,结果为0EH,且标志位CF=1,OF=1,SF=0,其结果应为十进制数。解答:CPU对两个无符号8位二进制数进行加法运算后,结果为0EH,且标志位CF=1,OF=1,SF=0,其结果应为十进制数270。8.设(AL)=,则执行NEGAL后,(AL)=,设(AL)=,则执行NEGAL后,(AL)=。解答:基址变址寻址在计算机中的减法运算可以将减数求补,(AL)=是一个负数,求它的真值,就对其求补(AL)==-1100000B=-60H执行NEGAL后,(AL)=01100000B=60H9.已知:(AL)=7AH,题(1),(2)相互独立,求AL的值。……③1FFAH00H10H②1FFCH④00H50H①1FFEH⑤00H30H2000H……AXBX(1)SUBAL,20H(AL)=()(2)CMPAL,20H(AL)=()解答:(1)SUBAL,20H这条是减法指令,7AH-20H=5AH,将结果回送到AL中因此(AL)=5AH(2)CMPAL,20H这是比较指令,将目的操作数与源操作数相减,但不送回结果,只根据结果置标志位,即(DST)-(SRC)。指令执行后,两个操作数均不发生变化。因此(AL)=7AH10.设DS=1000H、ES=2000H、SS=3000H、SI=00C0H、DI=0170H、BX=01B0H、AX=5657H,(10370H)=3AH,(10371H)=67H数据段中的变量NUM的偏移地址值为0050H。①求下条指令源操作数的物理地址为ADDAX,NUM[BX][DI]②指令执行完成后OF=,CF=解答:①ADDAX,NUM[BX][DI]的源操作数是相对的基址变址寻址,处于数据段中,有效地址为:EA=0050H+01B0H+0170H=0370HPA=DS×10H+EA=10370H源操作数为10370H单元和10371H单元的内容=673AH②指令执行完成后,AX=673AH+5657H=0BD91H,OF=1(有溢出),CF=0(无进位)11.将DL中的内容循环右移,已知移位前CL=9,要使其移位前后内容保持不变,应选用的指令是。解答:将DL中的内容循环右移,已知移位前CL=9,要使其移位前后内容保持不变,应选用的指令是RCL或RCR。12.串操作指令的两个隐含的指针寄存器是。解答:串操作指令的两个隐含的指针寄存器是SI和DI寄存器。13.指令REPMOVSB重复执行的条件为。解答:指令REPMOVSB重复执行的条件为CX≠0。14.串操作指令在内存中可以实现信息串的搬家,如果DS=ES且SIDI,不能引起信息串的覆盖,应设置。解答:串操作指令在内存中可以实现信息串的搬家,如果DS=ES且SIDI,不能引起信息串的覆盖,应设置DF=0。15.将下列程序补充完整:程序的功能是在数据段ADDR1地址处有200个字节,要传送到数据段地址ADDR2处。MOVAX,SEGADDR1MOVDS,AXMOVES,MOVSI,MOVDI,OFFSETADDR2MOV,200CLDREP解答:在存储器中实现信息块的搬家,使用重复前缀,必须先给CX赋值重复的次数。如果信息块的长度是多少个字节,用MOVSB传送时,则将此字节数赋给CX作重复次数;若用MOVSW传送时,则将此字节数÷2赋给CX作重复次数。程序要求200个字节搬移,指令中使用的重复次数为200,由此使用REPMOVSB指令,完整的程序如下:MOVAX,SEGADDR1MOVDS,AXMOVES,AXMOVSI,OFFSETADDR1MOVDI,OFFSETADDR2MOVCX,200CLDREPMOVSB16.若指令JMPADDR1的机器码为E93512H,此指令的CS=1500H,IP=2400H,则目标ADDR1与本指令之间的位移量为,执行本指令时,IP的当前值为,本指令执行后,CPU转移至CS:IP为。解答:JMP指令是无条件转移指令,JMPADDR1的机器码为E93512H,这是三字节指令,E9H表示操作码,8086系统中,高地址存放的是高字节,低地址则是低字节,因此1235H是操作数,表示本指令与ADDR1之间的位移量为1235H。该指令是三字节指令,执行指令时,当前IP=2400H+3=2403H。由目标偏移地址=当前IP值+指令中的位移量=2403H+1235H=3638H。因此,执行该指令后,CPU转移至1500H:3638H处。本题的正确答案为:若指令JMPADDR1的机器码为E93512H,此指令的CS=1500H,IP=2400H,则目标ADDR1与本指令之间的位移量为1235H,执行本指令时,IP的当前值为2403H,本指令执行后,CPU转移至CS:IP为1500H:3638H。17.阅读程序并补充完整:以TAB为首地址的100个ASCII码字符添加奇偶校验位(bit7),使每个字节中的“1”的个数为偶数,再顺序输出到10H号端口。MOVSI,OFFSETTABMOVCX,①L2:MOVAL,[SI]ANDAL,②③L1ORAL,④L1:OUT10H,ALINC⑤LOOPL2解答:传送类指令不影响标志位,可以使用ANDAL,AL或ANDAL,0FFH指令,它对AL的内容无影响,但影响标志位。为使每个字节中的“1”的个数为偶数,,用使用进行JP条件判断,如果PF=1,则转到L2出,否则在最高位加1,可凑成偶数。完整的程序如下:MOVSI,OFFSETTABMOVCX,100L2:MOVAL,[SI]ANDAL,0FFH或ALJPL1ORAL,80HL1:OUT10,HALINCSILOOPL218.设AX=8000H,BX=0FFFFH,执行CMPAX,BX后,写出两条能引起转移的条件转移指令①、②。解答:AX=8000H,BX=0FFFFH,执行CMPAX,BX后CF=1(有借位),OF=0(没有溢出),ZF=0(结果不为0),SF=1(结果为负数,最高位为1),PF=0(第8位有1个1)。因此能引起只要的条件指令有JC、JNO、JNZ等。本题的正确答案为:设AX=8000H,BX=0FFFFH,执行CMPAX,BX后,写出两条能引起转移的条件转移指令JC、JNZ。19.汇编语言的调试过程如下:建立______以为扩展名的源文件;生成以______为扩展名的目标文件;生成以______为扩展名的可执行文件;使用DYBUG调试程序,调试可执行目标程序。解答:汇编语言的调试过程如下:建立.ASM以为扩展名的源文件;生成以.OBJ为扩展名的目标文件;生成以.EXE为扩展名的可执行文件;使用DYBUG调试程序,调试可执行目标程序。20.宏汇编语言程序被汇编时,_____语句产生代码指令,______语句不产生代码指令,______语句可能产生也可能不产生代码指令。解答:宏汇编语言程序被汇编时,指令性语句产生代码指令,伪指令语句不产生代码指令,宏指令语句可能产生也可能不产生代码指令。21.已知VAR1是字变量,指令MOVAX,VAR1的功能是将送到AX中;指令MOVAX,OFFSETVAR1的是将送到AX,其功能和指令AX,VAR1是相同的。解答:已知VAR1是字变量,指令MOVAX,VAR1的功能是将VAR1的内容送到AX中;指令MOVAX,OFFSETVAR1的是将VAR1的偏移量送到AX,其功能和指令LEAAX,VAR1是相同的。22.假设VDT1和VDT2为字变量,TAL1和TAL2为标号,说明下列指令是否正确,说明其寻址方式;若有错误指出错误所在。(1)JMPVDT1(2)JMPNEARTAL1(3)JNZVDT2(4)JETAL2(5)JMPFARPTRTAL1(6)JMPFAL1[SI]解答:(1)JMPVDT1非法指令,跳转指令应为标号不能是变量,VDT1是变量(2)JMPNEARTAL1非法指令,标号的类型属性指在转移指令中标号可转移的距离,也称距离属性。类型NEAR,表示此标号只能实现本代码段内转移或调用;类型FAR,表示可以作为其它代码段中的目标地址,实现段间转移或调用。使用时,在属性后加PTR,应该改为:JMPNEARPTRTAL1(3)JNZVDT2非法指令,跳转指令应为标号不能是变量,VDT2是变量(4)JETAL2合法指令。(5)JMPFARPTRTAL1合法指令(6)JMPFAL1[SI]非法指令,FAL1为标号,表示指令语言的符号地址,SI是源变址寄存器,它存放的是地址。这条指令的错误之处在于两个地址表达式不能相加。二.选择题1.寻址方式指出了操作数的位置,一般来说(D)。A、立即寻址给出了操作数地址;B、寄存器直接寻址的操作数在寄存器内,而指令给出了存储器;C、直接寻址直接给出了操作数本身;D、寄存器直接寻址的操作数包含在寄存器内中,由指令指定寄存器的名称。2.寄存器寻址方式中,操作数在(A)中。A、通用寄存器B、堆栈C、内存单元D、段寄存器3.寄存器间接寻址方式中,操作数在(C)中。A、通用寄存器B、代码段C、内存单元D、段寄存器4.8088变址寻址方式中,操作数的物理地址等于(B)A、段寄存器左移四位加上变址寄存器的内容;B、段寄存器左移四位加上变址寄存器的内容再加给定的偏移量;C、段寄存器左移四位加上变址寄存器的内容再加基址寄存器内容;D、段寄存器左移四位加上基址寄存器的内容再加给定的偏移量;5.下列指令中非法指令是(B)A.MOV[SI
本文标题:微机原理题库
链接地址:https://www.777doc.com/doc-4998279 .html