微机组成原理练习试题带答案三、 程序分析题(每小题 6 分,共 24 分)1. A DW 1234HB DW 5678HPUSH APUSH BPOP APOP B试回答:①上述程序段执行后(A)=, (B)=② 设执行前 SP = 2H,执行后 SP =2AB .读下面程序段,请问,在什么情况下,本段程序的执行结果是 AH=0 ?BEGIN : IN AL , 5FHTESTAL , 80HJZ BRCH1MOVAH , 0JMP STOPBRCH1 : MOV AH,0FFHSTOP: HLT答:3A.现有下列程序段:MOV AX , 6540HMOV DX , 3210HMOV CL ,04SHL DX ,CLMOV BL ,AHSHL AX ,CLSHR BL , CLOR DL , BL试问上述程序段运行后,(AX ) =(BL )=(DX ) =4A 现有下列程序段MOV AL , 60HMOV BL,20HSTCADC AL , BL问程序执行后,AL=BL= CF=已知(DS)=091DH, (SS) = 1E4AH, (AX) = 1234H, (BX)=24H, (CX)= 5678H, (BP) = 24H, (SI)=12H, (DI)= 32H, ( 09226H)=F6H, ( 09228H)=1E40H, (1E4F6H) =091DH。下列各指令或程序段分别执行后的结果如何?(1)MOVCL, 20H[BX][SI](2)MOV[BP][DI] , CX(3)LEABX,20H[BX][SI]MOVAX, 2[BX](4)LDSSI, [BX][DI]MOV[SI], BX(5)XCHGCX, 32H[BX]XCHG 20H[BX][SI],AX答(1) (CX)=56F6H;(2)(09226H)=5678H;(3)(AX)=1E40H;(4)(1E4F6H)=24H;(5)(09226H)=1234H,(AX)=5678H.1 .假设寄存器 AX=1234H , DX=0A0HMOV BX , 0MOV CX , BXSUB CX , AXSBB BX ,DXMOV AX ,CXMOV DX ,BX上述程序段执行后 AX=, DX= 6H程序功能是 对原 AX 、 DX 中的值求补码,因为取补码指令就相当于用 0 减 去此操作数,见书本 P1224.分析下面程序段,MOV AL , 2SAR AL , 1MOV BL , ALMOV CL , 2SAR AL , CLADD AL , BL试问程序段执行后 BL ) = 1111B = — E4H — ( AL )= 111111B=F9H5.程序段如下:BLK1 DB 46 , 84, 34,- 5, 20, 122, 73MOV CX , 7LEA S1 ,BLK1NEXT : MOV AL , [SI]INC SITEST AL , 81HLOOPZ NEXTMOV BL , [SI]请回答程序段运行后:(AL)=46(BL)=8414.对于下面的数据定义,各条 MOVE 指令单独执行后,有关寄存器的内容是什么?FLDB DBTABLEA DW 20DUP (?)TABLEB DB ‘ABCD’MOVE AX, TYPE FLDBMOVE AX, TYPE TABLEAMOVE CX, LENGTH TABLEAMOVE DX,SIZE TABLEAMOVE CX,LENGTH TABLEB解答:AX=01HAX=02HCX=14HDX=28HCX=01H。19.读下面程...