2015.11.8, 微机原理试题集题库(带答案)(3)

2018-12-19 22:16

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

程序功能是 对原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’ 解答:

MOVE AX,TYPE FLDB AX=0001H MOVE AX,TYPE TABLEA AX=0002H MOVE CX,LENGTH TABLEA CX=0014H MOVE DX,SIZE TABLEA DX=0028H

11

MOVE CX,LENGTH TABLEB 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 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

12

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 SAL AX,1 JNC NOD INC CX

NOD:JMP LOOP STP:HLT

25.编一子程序利用XLAT指令把十六进制数转换成ASCII码。假设ASCII码

存放在以 DAT1为首地址的数据区中,对应的16进制数放在以DAT2为首地址的数据区中,转换结果送以DAT3为首地址的数据区中。

解答:MAIN :PUSH BX PUSH SI PUSH DI PUSH CX PUSH AL PUSH DS

START:MOV BX,DATA1 MOV SI ,DATA2 MOV DI DATA3 MOV CX ,16 NEST:LODSB XLAT DATA1 STOSB

LOOP NEST POP DS POP AL POP CX POP DI POP SI POP BX

RET

13

1. 设AX=0FFH,执行AND AX,86H 后,AX=? AX=86H

2. 设AX=1000H,DX=2000H,CX=3000H,SP=1234H 执行 PUSH CX PUSH DX PUSH AX 后,SP=? 再执行

POP CX POP DX POP AX

后,AX=?,DX=?,SP=?

答: SP=122EH

AX=3000H,DX=2000H,SP=1234H(错一题扣2分,错2题扣3.5分)

7.请完成如下程序段,使它完成求|AX-BX|,结果放在AX的功能。 AX,BX JC SUB AX,BX AA1

AA:SUB ,

MOV AX,BX AA1:HLT

CMP AX,BX(1分) JC AA (1分) SUB AX,BX

JMP AA1(2分)

AA:SUB BX(1分) , AX(1分)

MOV AX,BX AA1:HLT

下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。请填写出正确结果。(DATA SEGMENT

FIRST DB , ,0H SECOND DB , DATA ENDS

7分)

14

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX MOV CX, MOV SI,0

NEXT: MOV AL,SECOND[SI]

ADC FIRST[SI],AL INC SI LOOP NEXT MOV AL,0

ADC AL, MOV FIRST[SI],AL MOV AH,4CH INT 21H

CODE ENDS

END START

四、判断题(在对的后面画√,错的后面画×):

1、段内转移指令执行结果要改变IP、CS的值。 (× ) 2、PUSH CS。 (√ ) 3、OUT 2000H,AL (×)

4、 MOV AH,BX ( 错 )

5、8088 中,取指令和执行指令可以重叠操作。( √ ) 6、MOV [BX], [SI] ( × ) 7、8088CPU用逻辑地址1234H:5678H访问时,可交换一个字。(√) 8、 MOV BYTE PTR[BX],1000 (× ) 9、MOV 5, AL (× ) 10、 MOV AX,[SI+DI] (× )

2、8088 的数据可以存放在几个不连续的段中。(√ ) 4. ADD 15H,BX ( 错 )

5、REP是指令前缀,重复操作的条件是CX≠0。 ( 对6、POP CS (错)

7、 MOV CS,AX ( 错 ) 8、MOV [BX],[SI] (错) 9、IN AL,2000H (错)

10、8086 中,取指令和执行指令可以重叠操作。( 对 )

11.当8086CPU内标志寄存器中的IF=0时,意味着禁止CPU响应所有类型的中断。

15


2015.11.8, 微机原理试题集题库(带答案)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:外研版三年级起点五年级上册英语集体备课教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: