文档库

最新最全的文档下载
当前位置:文档库 > 微机原理复习题4(含答案)

微机原理复习题4(含答案)

汇编语言试卷

一、单项选择题(每小题1分,共20分)

1.如某存储器一个段最多允许16K个字单元,那么表示一个段内偏移地址的二进制位数至少是(A)位。

A)15 B)16 C)17 D)18

2. 下列操作中允许超越的是( C )。

A)取指令B)存目的串C)以BP为基址存取操作数D)堆栈操作

3.下面有语法错误的指令语句是( C )。

A)MOV AX,[BX][SI] B)MOV AX,—2[BX][DI] C)MOV AX,[BX][BP] D)MOV AX,—1[BX][SI]

4.下列指令执行后能使BX中数据为奇数的是( B )。

A)XOR BX,01H B)OR BX,01H C)AND AX,01H D)TEST BX,01H

5.设CL=05H,要获得CL=0AH,可选用的指令是(A)。

A)XOR CL,0FH B)NOT CL C)OR CL,0AH D)AND CL,0FH

6.没有语法错误的输出指令是( B )。

A)OUT AX,30H B)OUT DX,AL C)OUT AL,DX D)OUT 30H,AH

7.假设执行ADD指令后AX=6EH,再执行AAA指令,AX中的值是( B )。

A)14H B)0104H C)74H D)04H

8.某数据段有如下语句:

ORG 0435H

DA1 DB 17H,44H,77H

ADR DW DA1

下述语句能使AL中的数据为偶数的是( B )。

A)MOV AX,WORT PTR DA1 B)MOV AX,WORD PTR DA1[1] C)MOV AX,ADR D)MOV AX,BYTE PTR ADR 9.当执行条件转移指令JNS OPR 时,如条件成立,相对于转移指令的转移距离是( D )。

A)-128~+127个字节B)-126~+127个字节

C)-128~+129个字节D)-126~+129个字节

10.用MOV指令将十进制数89以非压缩BCD码格式送入AX,可使用的指令是( D )。A)MOV AX,89 B)MOV AX,0809 C)MOV AX,89H D)MOV AX,0809H

11.V AR1 EQU BYTE PTR V AR2

V AR2 DW 0ABCDH

SHL V AR1, 1

SHR V AR2, 1

上述两条指令执行后,V AR2字单元内容是(C)。

A)0ABCDH B)0AB9AH C)55CDH D)559AH

12.设AX=0BBCCH,CF=1

OR AX, 3

CMC

RCL AX, 1

上述三条指令执行后,AX中的内容是( A)。

A)779FH B)779EH C)779DH D)7799H

13.下列语句中能与“DA1 DB 32H, 34H”语句等效的是( A)。

A)MOV DAI,32H B)MOV DA1,34 MOV DA1+1,34H MOV DA1+1,32

C)MOV WORD PTR DA1,3234H D)MOV WORD PTR DA1,‘’24‘’

14.设SP=50H,执行段间返回指令‘’RET 8‘’后,寄存器SP的内容是(B )。A)5AH B)5CH C)44H D)46H

15.汇编语言语句格式中,对名字项的规定,请指出错误的解释( B )。

A)名字的第一个字符只可以是大小写英文字母及?、@、_等。

B)名字的第一个字符可以是大小写英文字母、数字、?、@、_等。

C)名字的有效长度≤31个字符。

D)名字从第二个字符起可以出现数字,但不允许出现$、#等字符。

16.使用DOS功能调用时,子程序编号应放在(A)寄存器中。

A)AH B)AL C)AX D)任意指定

17.下列语句中能实现留空8个字节单元的语句是( D )。

A)DA1 DT ?B)DA2 DW ?,?C)DA3 DD ?D)DA4 DQ ?

18.设BX的内容为0AA40H,执行SHR DX, 1 指令后的结果是(A)。

A)5520H B)5480H C)0D420H D)0D580H

19. TEST DL,55H

JE NEXT

NEXT:﹍﹍

上述程序段,执行JE 指令时能产生转移的情况是(D )。

A)DL﹥55H B)DL﹤55H C)DL=55H D)DL中第0、2、4、6位均为0

20.寄存器BX和DX中存放有32位二进制数,其中BX中放高16位。下列程序段完成对32位数扩大4倍的功能,那么该程序段中方框里应填的语句是( C )。

MOV CX, 2

LOP:SHL DX, 1

微机原理复习题4(含答案)

LOOP LOP

A)ROL BX, 1 B)ROR BX, 1 C)RCL BX, 1 D)RCR BX,1

二、填空题(本大题共5小题,每小题1分,共5分)

名词解释:请将各小题的叙述与下面的词语联系起来,括号内填入对应的a, b, c, d, e。1.宏定义开始用的伪指令是( D )。

2.DF是程序状态字寄存器的(C )标志位。

3.对汇编语言源程序进行汇编时,使用的宏汇编程序文件名是(B )。

4.汇编语言程序中各语句的操作项可以是指令、伪指令或(A)的助记符。5.CF是程序状态字寄存器中的( C )标志位。

词语:a) 宏指令b) MASM c) 状态d) MACRO e) 控制

三、简答题(本大题共3小题,每小题2分,共6分)

1.STRING DB ‘AB’,0,0,‘CD’,0,0,‘EF’,0,0

请分别用DW、DD伪指令改写上述数据定义语句,要求改写后保持内存单元中内容不变。

①STRING DW ‘BA’,0,‘DC’,0,‘FE’,0 (l 分)

②STRING DD ‘BA’,‘DC’,‘FE’ (1 分)

2.执行:“NEG DX”指令时:

①当DX=?时,CF=1

②当DX=?时,OF=1

①当DX=01~0FFFFH (或D X≠0)时,CF=1 (1 分)

②当DX=8000H 时,OF=1 (l 分)

3.设某数据段的段名为DA TA,段内有一变量BUF,请分别用MOV指令写出下述两条语句等效的语句。

①MOV AX,DA TA

②LEA BX,BUF

①MOV AX,SEG BUF (l 分)

②MOV BX,OFFSET BUF (1 分)

四、程序分析题(本大题共7小题,每小题5分,共35分)

1.MOV AL,01H

ROR AL, 1

OR AL,AL

NEG AL

上述程序执行后,AL= 80H ,CF= 1 。

2.A、B均是长度为10的字节数组,DS、ES已指向同一数据段:

ADB1,2,3,4,5,6,7,8,9,0AH

BDB0AH,9,8,7,6,5,4,3,2,1

LEA SI, A

LEA DI, B

MOV CX, 10

CLD

LOP: LODSB

XCHG AL, [DI]

XCHG SI, DI

DEC DI

STOSB

XCHG SI, DI

INC DI

LOOP LOP

上述程序段执行后, ①程序段完成什么功能?

①程序段功能:交换A,B 两字节数组的内容

②程序段执行后,A和B两个字节数组的内容分别是什么?

A D

B 0AH,9.8,7,6.5,4.3.2,1 (1 分)

B DB 1,2,3,4、5.6,7,8.9,0AH (1 分)

3.已知AL的值为0~F中的一位十六进制数:

HECA PROC FAR

CMP AL,10

JC KK

ADD AL,7

KK:ADD AL,30H

MOV DL,AL

MOV AH, 2

INT 21H

RET

HECA ENDP

试回答:①该子程序完成什么功能?

②如调用子程序时AL=3,子程序执行后,DL= 33H。

如调用子程序时AL=0FH,子程序执行后,DL= 46H 。4.MOV AL,0FH

XOR AL,0FFH

MOV CL,7

SHR AL,CL

试回答:①上述程序段执行后,AL= 1 。

②如将指令SHR换成ROR指令后,那么程序段执行后,AL= 0E1H。5.已知BX=5E5CH,CX=8303H,CF=1

ROR BX,CL

XOR BH,CH

ROL BX,CL

程序段执行后,DX= 4658H,CF= 0 。

6.X DW 0123H,2A3EH,89DFH

COUNT EQU $—X

Y DB COUNT DUP(0)

LEA SI,X

LEA DI,Y

MOV CX,COUNT

CLD

REP MOVSB

试回答:①上述程序段执行后,Y数据区各字节单元中的内容是什么?

①Y DB 23H,01,3EH,2AH,0DFI-l,89H (3 分)

②程序段功能不变情况下,REP MOVSB 指令可否用下面两条指令替代:可以

LOP:MOVSB

LOOP LOP

7.MOV AX,0E0EH

MOV BX,AX

SHR BX, 1

CWD

DIV BX

XCHG BX,AX

MUL BX

上述程序段运行结束后,AX= 0E0EH,BX= 2 。

五、程序填空题(本大题共2小题,每小题6分,共12分)

1.下面程序段是完成用单个字符输入的1号功能调用,从键盘输入10个字符,然后再用单个字符显示输出的2号功能调用,并以相反顺序显示输出这10个字符。试把空白处填上适当的指令。

MOV CX,10

LOP1:MOV AH,01H

INT 21H

PUSH AX

LOOP LOP1

MOV CX,10

LOP2:POP DX

MOV AH,02H

INT 21H

LOOP LOP2

2.下面程序段实现将BUFF为首地址的内存区域,全部存储0FFH数据。试把空白处填上适当的指令。

BUFF DB 20H DUP(?)

LEA Dl,BUFF

MOV AX,0FFFFH

MOV CX,20H

SHR CX,1

REP STOSW

六、编制程序(本大题共3小题,共22分)

1.试编写一程序段,实现32位有符号数除4。

MOV CX,2

LOP:SAR M+2.1

RCR M,l

LOOP LOP

2.试用两条指令对寄存器CH和CL分别减1,且CL中减1的借位从CH中获得,而CH 中减1的借位从CL中获得。

SUB CX,0101H

SBB CL,0

3.设数据段中有三个无符号数,分别存放在DA T,DA T+1,DA T+2字节单元中,试编一完整的源程序,找出三个数中数值大小居中的一个,并将其存入BUF字节单元中。

DA T DB ××, ××, ××

BUF DB ?

DATA SEGMENT

DAT DB ××,××, ××

BUF DB ?

DATA ENDS

STACKl SEGMENT PARA STACK

D B 20H DUP (0)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV AL,DAT

MOV BL,DAT+1

MOV CL,DAT+2

CMP AL,BL

JB LP1

XCHG AL,BL

LP1: CMP AL,CL

JAE SAV

XCHG AL,CL

CMP AL,BL

JB SAV

XCHG AL,BL

SAV: MOV BUF,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START