微机原理试题集题库(带答案) 下载本文

内容发布更新时间 : 2024/11/14 18:13:35星期一 下面是文章的全部内容请认真阅读。

三、 程序分析题(每小题6分,共24分)

1. A DW 1234H B DW 5678H :

PUSH A PUSH B POP A POP B

试回答:①上述程序段执行后(A)=_______,(B)=______ ②设执行前SP=200H,执行后SP=____________

2AB.读下面程序段,请问,在什么情况下,本段程序的执行结果是AH=0?

BEGIN: IN AL,5FH TEST AL,80H JZ BRCH1 MOV AH,0

JMP STOP BRCH1: MOV AH,0FFH STOP: HLT

答: 3A. 现有下列程序段:

MOV AX,6540H MOV DX,3210H MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL

试问上述程序段运行后,

(AX)=_____________ (BL)=_____________ (DX)= _____________ 4A现有下列程序段

MOV AL,60H MOV BL,20H

16

STC

ADC AL,BL

问程序执行后,AL= BL= CF=

.已知(DS)=09lDH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。下列各指令或程序段分别执行后的结果如何? (1) MOV CL,20H[BX][SI] (2) MOV [BP][DI],CX (3) LEA BX,20H[BX][SI]

MOV AX,2[BX]

(4) LDS SI,[BX][DI]

MOV [SI],BX

(5) XCHG CX,32H[BX]

XCHG 20H[BX][SI],AX

答(1) (CX)=56F6H; (2) (09226H)=5678H; (3) (AX)=1E40H; (4) (1E4F6H)=0024H;

(5) (09226H)=1234H,(AX)=5678H.

1 .假设寄存器AX=1234H,DX=0A000H

MOV BX,0 MOV CX,BX SUB CX,AX SBB BX,DX MOV AX,CX MOV DX,BX

上述程序段执行后AX= 0FDCFH ,DX= 60000H

17

程序功能是 对原AX、DX中的值求补码,因为取补码指令就相当于用0减去此操作数,见书本P122 .

4.分析下面程序段, MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL

试问程序段执行后(BL)=11100100B=_E4H_(AL)=

11111001B=F9H

5.程序段如下:

BLK1 DB 46,84,34,-5,20,122,73 :

MOV CX,7 LEA S1,BLK1

NEXT: MOV AL,[SI] INC SI

TEST AL,81H LOOPZ NEXT MOV BL,[SI] :

请回答程序段运行后:(AL)=_____46_______ (BL)=____84________

14.对于下面的数据定义,各条MOVE指令单独执行后,有关寄存器的内容是什么? FLDB DB

TABLEA DW 20DUP(?) TABLEB DB ‘ABCD’

18

MOVE AX,TYPE FLDB MOVE AX,TYPE TABLEA MOVE CX,LENGTH TABLEA MOVE DX,SIZE TABLEA MOVE CX,LENGTH TABLEB 解答: AX=0001H AX=0002H CX=0014H DX=0028H CX=0001H。

19.读下面程序段,请问:在什么情况下,本段程序的执行结果是AH=0? BEGIN: IN AL,5FH TEST AL,80H JZ BRCHl MOV AH,0 JMP STOP BRCHl: MOV AH,0FFH STOP: HLT

解答:AL中的最高位为1时。 20.读程序:

START: IN AL,20H MOV BL,AL IN AL,30H MOV CL,AL MOV AX,0 ADLOP: ADD AL,BL ADC AH,0 DEC CL JNZ ADLOP HLT 请问: (1)本程序实现什么功能? (2)结果在哪里?

解答:完成20H*30H,结果在AX中。

21.请编一程序段完成AX*l0的任务(要求不准用乘法指令做)。 解答: MOV BX,AX MOV CL 2

19

SHL AX, CL ADD AX,BX SHL AX ,1 22.编程序使:

(1)AX寄存器低4位清零。 (2)BX寄存器低4位置“1”。 (3)CX寄存器低4位变反。

(4)用TEST指令测试DL寄存器位3、位6是否同时为0,若是,将0送DL;否则l送DH。

解答 :1,AND AX ,0FFF0H 2,OR BX ,000FH 3,XOR CX ,000FH 4,TEST DL ,48H JZ LOOP MOV DH,1 HLT

LOOP :MOV DL ,0 HLT

23.编一程序段,完成符号函数(-128≤x≤127): 1 (x.>0)

y= 0 (x=0) -1 (x<0) 假设x的值存放在DATAl中,y的值存放在DATA2中。 解答: START :MOV AL ,DATA1 AND AL,AL JGE BIGR MOV AL,0FFH MOV DATA2.AL HLT BIGR:JE EQUL MOV AL,1 MOV DATA2,AL HLT

EQUL:MOV DATA2,AL HLT

24.设AX寄存器中有一个16位二进制数,编一程序,统计AX中“l”的个数,统计结果送CX中。

解答: START :MOV CX ,0 LOOP: SUB AX,0 JZ STP

20