全国2007年1月高等教育自学考试汇编语言程序设计试题

  • 格式:doc
  • 大小:27.00 KB
  • 文档页数:6

1 / 6

全国2007年1月高等教育自学考试

汇编语言程序设计试题

课程代码:02321

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

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.下列寄存器组中在存储器操作数寻址时可用于提供偏移地址的是( )

A.AX,BX,CX,DX B.SP,BP,SI,DI

C.CS,ES,DS,SS D.BX,BP,SI,DI

2.某存储单元的段地址是0AB90H,偏移地址是1234H,该存储单元的物理地址是( )

A.0BDC4H B.0ACB34H

C.0AD134H D.1CED0H

3.执行NEG指令时,要设置标志位CF。设置CF的正确说法是( )

A.对正数求补时,CF置0 B.对负数求补时,CF置0

C.对全0数据求补时,CF置0 D.对非零数据求补时,CF置0

4.设DF=1,每次执行CMPSW指令时,SI和DI均要分别( )

A.减1 B.减2

C.加1 D.加2

5.要使BL中的低四位变反,高四位不变,应执行指令( )

A.NOT BL B.OR BL,0FH

C.AND BL,0FH D.XOR BL,0FH

6.设(AL)=07H,要使(AL)=-07H应执行的指令是( )

A.OR AL,80H B.NOT AL

C.NEG AL D.ADD AL,80H

7.在8086/8088的立即数寻址方式中,对寄存器的使用下列说法正确的是( )

A.使用AX,BX,CX,DX B.使用SI,DI,BP,SP

C.使用任一个通用寄存器 D.不使用任何寄存器

8.下列指令执行时操作数在数据段的是( )

A.MOV AX,32768H B.ADD AL,AH

C.NEG BX D.INC [DI]

9.MOV AL,-1

NEG AL 2 / 6 XOR AL,65

上述指令执行后,AL的值是( )

A.01H B.40H

C.61H D.64H

10.设SP=4AH,执行段内返回指令RET 4后,SP的值是( )

A.44H B.48H

C.4CH D.50H

11.在查错程序DEBUG中,为查看或修改内存单元的内容,这时存储单元地址是使用

( )

A.逻辑地址 B.物理地址

C.逻辑地址或物理地址 D.由用户指定选择逻辑地址或物理地址

12.设NUM=60H,表达式:

(NUM LT 60H AND 30)OR(NUM GE 60H AND 40)的值是( )

A.0 B.3EH

C.40 D.0FFFFH

13.指令MOV CL,55H XOR 0F0H执行后CL中的值是( )

A.05H B.50H

C.0A5H D.0F5H

14.下面语句中能和指令MOV AX,NOT 0FH等效的是( )

A.MOV AX,0FFFFH B.MOV AX,0FH

C.MOV AX,0FFF0H D.MOV AX,0F0FFH

15.对CS段寄存器赋段地址的方法是( )

A.MOV AX,COSE B.ASSUME CS:COSE

MOV CS,AX

C.END 起始地址 D.MOV CS,2050H

16.有数据定义BUF DB 8DUP(3 DUP(2),2 DUP(3)),在BUF中能构成数据0302H有( )

A.5个 B.6个

C.7个 D.8个

17.X DW 1234H,0A9BH

Y DB 7EH,8DH

MOV BH,TYPE X 3 / 6 MOV BL,TYPE Y

执行后BX的内容是( )

A.0102H B.0101H

C.1234H D.0201H

18.下面有语法错误的指令是( )

A.XCHG AX,[BX] B.XCHG AX,DS

C.XCHG AX,SI D.XCHG AX,BP

19.条件转移指令JBE产生转移的条件是( )

A.CF=0 OR ZF=0 B.CF=0 OR ZF=1

C.CF=1 OR ZF=0 D.CF=1 OR ZF=1

20.XOR AX, 426H

JZ DONE

上述程序段产生分支的条件是( )

A.执行前AX=426H B.执行前AX≠426H

C.执行前AX=全0 D.执行前AX=全1

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

请在每小题的空格中填上正确答案。错填、不填均无分。

21.DW ‘AB’将依次在内存中从低字节到高字节存入数据___________。

22.隐含指标堆栈段中某个数据偏移地址的寄存器是___________。

23.比较两个字符串,找出它们不匹配的位置,在CMPSB指令前应使用的重复前缀指令是___________。

24.在串操作指令中,使地址自动减量的指令是___________。

25.BUF DW 4,6,$+2,若汇编时BUF分配的偏移地址是0042H,则汇编后BUF数组中第三个字的值是___________。

26.在汇编源程序时,语句INC [BX]出现语法错误,这时在语句的操作数项中应添加的操作符是___________。

三、简答题(本大题共4小题,每小题2分,共8分)

27.设有数据定义如下:

ARRAY DW 1000H,2000H,3000H,4000H,5000H

BUF DW?

要求完成:(1)用一条指令完成将ARRAY的偏移地址送BX;

(2)用一条指令完成将ARRAY的第一字节单元内容送AL;

(3)用一条指令完成将ARRAY数组的长度(字节数)送CX。

28.两个同符号的有符号数相减时,会发生溢出吗?为什么?

29.设DS=2000H,BX=1256H,SI=528FH,变量TABLE的偏移地址是20A1H,(232F7H)=3280H,(264E5H)=2450H。4 / 6 请写出下列无条件转移指令段内寻址方式中赋值给IP的值。

(1)JMP TABLE [BX];IP=___________。

(2)JMP [BX] [SI];IP=___________。

30.设BX=0FFFFH,DI=20H,DS=2000H,CL=8,(20020H)=4567H,下列各条指令分别执行后BX中的内容各为多少?

(1)ROL BX,CL; BX=___________

(2)MOV BX,[DI];BX=___________

四、程序分析题(本大题共6小题,每小题6分,共36分)

31.已知AX=0FF70H,BX=30H,CF=1

OR BX,0FF40H

SBB AX,BX

上述二条指令执行后,AX=___________,BX=___________。

32.已知AX=5678H

MOV BX,AX

NEG BX

ADC AX,BX

上述程序段运行后,AX=___________,BX=___________。

33.A1 DB 65H

A2 DB?

A3 DB?

MOV AL,A1

MOV CL, 4

SHR AL,CL

ADD AL,30H

MOV A2,AL

MOV AL,A1

AND AL,0FH

OR AL,30H

MOV A3,AL

上述程序段执行后(A2)=___________,(A3)___________。

34.MOV AH,1 5 / 6 INT 21H;从键盘输入字符

AND AL,0FH

MOV BL,AL

MOV AH,1

INT 21H;从键盘输入字符

MOV AH,0

AND AL,0FH

ADD AL,BL

PUSH AX

DAA

PUSH AX

上述程序段执行时,若第一次从键盘输入6,第二次从键盘输入7。那么:

(1)第一次AX进栈的数是( )

(2)第二次AX进栈的数是( )

35.MOV BX,AX

XOR BX,0423H

JZ NEXT

OR BX,1

NEXT:……

若上述程序段执行时,指令JZ产生3分支,说明AX中的值是___________,执行后BX=___________。

36.HTOA PROC

AND AL,0FH

ADD AL,90H

DAA

ADC AL,40H

DAA

RET

HTOA ENDP

请回答:(1)若执行子程序前AL=09H,执行后AL=___________; 6 / 6 (2)若执行子程序前AL=0DH,执行后AL=___________。

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

37.下面程序段是判断AL和BL中第4位是否相同,如相同,则AL置全0,否则AL置全1。试把空白处填上适当的指令。(每一空白处填一条指令)

AND AL,10H

MOV AL,0FFH

NEXT:……

38.下面程序段完成将以BUF为首址的100个字节数据的位置颠倒过来,请在空白处各填上一条指令。

LEA SI,BUF

MOV DI,SI

ADD DI,99

NEXT:MOV AL,[SI]

MOV [SI],AL

INC SI

DEC DI

LOOP NEXT

六、编制程序题(本大题共2小题,第39小题6分,第40小题12分,共18分)

39.限用二条逻辑指令将寄存器AL中第0,2位置1,其他位变反。

40.在M1和M2两数据区分别有20个带符号数。试编制一完整源程序,求出对应项两数据平均值(平均值的小数部分略去),并存入M3数据区中(要求在程序中一定要使用STOS存串指令)

DATA SEGMENT

M1 DB XX,XX,XX……

M2 DB XX,XX,XX……

M3 DB 20 DUP(0)

DATA ENDS

[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!]