1、微机原理及应用第2章习题及答案CH02 80868088指令系统习题与思考题1假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令源操作数是什么寻址方式源操作数在哪里如在存储器中请写出其物理地址是多少(1)MOV AX,0ABH (2)MOV AX,100H(3)MOV AX,VAL (4)MOV BX,SI(5)MOV AL,VALBX (6)MOV CL,BXSI(7)MOV VALSI,BX (8)MOV BPSI,100解答:(1)MOV AX,0ABH寻址方式:立即寻址;源
2、操作数在数据线上;物理地址:无(2)MOV AX,100H寻址方式:直接寻址;源操作数在存储器中;物理地址:DS16+100H2000H*16+100H20100H(3)MOV AX,VAL寻址方式:直接寻址;源操作数在存储器中;物理地址:DS16+VAL2000H*16+0050H20050H(4)MOV BX,SI寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址:DS16+SI2000H*16+00A0H200A0H(5)MOV AL,VALBX寻址方式:变址寻址;源操作数在存储器中;物理地址:DS16+VAL+BX2000H*16+0050H+010020150H(6)MOV CL
3、,BXSI寻址方式:基址加变址寻址;源操作数在存储器中;物理地址:DS16+BX+SI2000H*16+0100H+00A0H201A0H(7)MOV VALSI,BX寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无(8)MOV BPSI,100寻址方式:立即寻址;源操作数在;物理地址:无2设有关寄存器及存储单元的内容如下:DS=2000H,BX=0100H,AX=1200H,SI=0002H,20100H=12H,20101H=34H,20102H=56H,20103=78H,21200=2AH,21201H=4CH,21202H=0B7H,21203H=65H。试说明下列各条指令单独
4、执行后相关寄存器或存储单元的内容。 (1)MOV AX,1800H (2)MOV AX,BX (3)MOV BX,1200H (4)MOV DX,1100BX (5)MOV BXSI,AL (6)MOV AX,1100BXSI解答:题号指令执行结果(1)MOVAX,1800HAX1800H(2)MOVAX,BXAX0100H(3)MOVBX,1200HBX4C2AH(4)MOVDX,1100BXDX4C2AH(5)MOVBXSI,AL20102H00H(6)MOVAX,1100BXSIAX65B7H3假定BX=0E3H,变量VALUE=79H,确定下列指令执行后的结果(操作数均为无符号数。对3
5、、6,写出相应标志位的状态)。 (1)ADD VALUE,BX (2)AND BX,VALUE (3)CMP BX,VALUE (4)XOR BX,0FFH (5)DEC BX (6)TEST BX,01H解答:题号指令执行结果(1)ADDVALUE,BXBX015CH(2)ANDBX,VALUEBX0061H(3)CMPBX,VALUEBX00E3H(CF=ZF=OF=SF=0,AF=PF=1)(4)XORBX,0FFHBX001CH(5)DECBXBX00E2H(6)TESTBX,01HBX00E3H(CF=ZF=OF=SF=AF=PF=0)4已知SS=0FFA0H,SP=00B0H,先执
6、行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图。(标出存储单元的地址)解答:5已知程序段如下: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX试问:(1)每条指令执行后,AX寄存器的内容是什么(2)每条指令执行后,CF,SF及ZF的值分别是什么(3)程序运行结束时,AX及DX寄存器的值为多少指令执行结果AXCFSFZFMOVAX,1234HAX1234HMOVCL,4AX1234HROLAX,CLAX2341H100DECAXAX2340H100MOVCX,4AX2
7、340H100MULCXAX8D00H,DX=0000H0006写出实现下列计算的指令序列。(假定X、Y、Z、W、R都为字变量) (1)Z=W+(Z+X) (2)Z=W-(X+6)-(R+9) (3)Z=(W*X)/(R+6) (4)Z=(W-X)/5*Y)*2解答:(1)Z=W+(Z+X)题号指令题号指令(1)Z=W+(Z+X)(2)Z=W-(X+6)-(R+9)MOVAX,ZMOVDX,RMOVBX,XADDDX,9MOVCX,WMOVBX,XADDBXADDBX,6ADCCXMOVAX,WMOVZ,AXSUBAX,BXSUBAX,DXMOVZ,AX(3)Z=(W*X)/(R+6)(4)Z
8、=(W-X)/5*Y)*2MOVDX,0MOVAX,WMOVAX,WMOVBX,XMOVBX,XSUBAX,BXMULBXMOVDX,0PUSHAXMOVCL,5MOVAX,RDIVCLADDAX,6MOVBX,YMOVCX,AXMULBXPOPAXMOVCL,2DIVCXMULCLMOVZ,AXMOVZ,AXMOVZ+1,DXMOVZ+1,DX7假定DX=001B,CL=3,CF=1,试确定下列各条指令单独执行后DX的值。 (1)SHR DX,1 (2)SHL DL,1 (3)SAL DH,1 (4)SAR DX,CL (5)ROR DX,CL (6)ROL DL,CL (7)RCR DL,
9、1 (8)RCL DX,CL解答:题号指令执行结果(1)SHRDX,1DX=0110 0100 1101 1100(64DCH)(2)SHLDL,1DX=1100 1001 0111 0010(C972H)(3)SALDH,1DX=1001 0010 1011 1001(92B9H)(4)SARDX,CLDX=1111 1001 0011 0111(F937H)(5)RORDX,CLDX=0011 1001 0011 0111(3937H)(6)ROLDL,CLDX=1100 1001 1100 1101(C9CDH)(7)RCRDL,1DX=1100 1001 1101 1100(C9DCH
10、)(8)RCLDX,CLDX=0100 1101 1100 1011(4DCFH)8已知DX=1234H,AX=5678H,试分析下列程序执行后DX、AX的值各是什么该程序完成了什么功能 MOV CL,4 SHL DX,CL MOV BL,AH SHL BL,CL SHR BL,CL OR DL,BL解答:DX=2345H,AX=6780H。该程序完成的功能如图所示,将DX,AX拼装成双字后,左移四位。9试分析下列程序段: ADD AX,BX JNC L2 SUB AX,BX JNC L3 JMP SHORTL5如果AX、BX的内容给定如下: AX BX (1)14C6H 80DCH (2)B
11、568H 54B7H问该程序在上述情况下执行后,程序转向何处解答:(1)AXAX+BX14C6H+80DCH95A2H;CF0;无进位,转移至L2;(2)AXAX+BXB568H+54B7H0A1FH;CF1;有进位,继续执行;AXAX-BX0A1FH+54B7HB568H;CF1;有借位,继续执行;无条件转移至SHORTL510编写一段程序,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串,则执行NEW_LESS,否则顺序执行。解答:编程如下,(说明:左测程序为常规编法,两个字符串在一个数据段中;右测的程序要求OLDS在数据段中,NEWS在附加段中,利用串操作
12、的指令是可行的) LEA SI,OLDS; LEA SI,OLDS LEA DI,NEWS; LEA DI,NEWS MOV CX,5; MOV CX,5 NEXT: MOV AL,SI; CLD MOV BL,DI; REPE CMPSB CMP AL,BL; JNZ NEW_LESS JNZ NEW_LESS; INC SI; JMP EXIT INC DI; NEW_LESS: LOOP NEXT; EXIT: JMP EXIT NEW_LESS: EXIT: 11若在数据段中从字节变量TABLE相应的单元开始存放了015的平方值,试写出包含有XLAT指令的指令序列查找N(015)的平方
13、。(设N的值存放在CL中)解答:MOV BX,OFFSET TABLE;LEA BX,TABLEMOV CL,NMOV AL,CLXLAT12有两个双字数据串分别存放在ASC1和ASC2中(低字放低地址),求它们的差,结果放在ASC3中(低字放低地址)。 ASC1 DW 578,400 ASC2 DW 694,12 ASC3 DW ,解答:编程如下, LEA SI,ASC1 LEA DI,ASC2 LEA BX,ASC3 MOV CX,2 CLC NEXT: MOV AX,SI MOV DX,DI SBB AX,DX MOV BX,AX INC SI INC SI INC DI INC DI INC BX INC BX LOOP NEXT
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2