当前位置:文档之家› 汇编语言程序设计试题

汇编语言程序设计试题

一、单项选择题(从四个备选答案中选出一个正确的答案填在题干的括号内)(20分)
( A )1. 指令MOV AL,[BX+100]的源操作数的寻址方式为?
A. 基址寻址
B. 寄存器间接寻址
C. 变址寻址
D.基址变址寻址
( A )2.确定下列哪些数据在汇编语言中的表示是合法的?
A. 2 AND 3*5
B. 138Q
C. A3H
D. HIGH AX
( C )3.若栈顶指针SP的值为100H,当执行完指令PUSH AX后,SP的值为?
A. 00FCH
B. 00FAH
C. 00FEH
D. 0106H
( B )4. 已知在寄存器 AX和 BX 中分别存放着一个无符号数据,在满足条件 AX≥BX 时转到标号OK去执行,不能实现该功能的程序段是?
A. CMP AX,BX
B. CMP AX,BX
JNB OK JA OK
C. CMP BX,AX
D. CMP AX,BX
JBE OK JNC OK
( A )5. 下列程序段在语法上是正确的是?
A. X1 DB ‘ABCD’
B. X1 DW ‘ABCD’
C. X1 DD ‘ABCD’
D. X1 DB 1234H
( C )6. 已知AL=67H,BL=34H, 则指令ADD AL,BL执行后,OF和CF的值分别为?
A. 0,0
B. 0,1
C. 1,0
D. 1,1
( D )7. 已知AL,BL中各存放一个带符号数,计算AL/BL的商,用下述哪个程序段?
A. DIV BL
B. IDIV BL
C. XOR AH,AH
D. CBW
IDIV BL IDIV BL
( C ) 8. 已知SUBR是一个属性为NEAR的子程序, 下述调用SUBR子程序的指令序列中, 哪一个能实现调用SUBR的目的?
A. LEA SI,SUBR
B. MOV SI,SUBR
CALL [SI] CALL SI
C. MOV BX, OFFSET SUBR
D. MOV BX, OFFSET SUB
( B )9. 初始化8259A时,ICW2的值为15H,当IR2端有中断请求时,8259A送出的中断方式码是什么?
A. 17H
B. 12H
C. 13H
D. 10H
( A )10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR3上,主8259A和从8259A的ICW3应设置为多少?
A. 03H,08H
B. 08H,03H
C. 04H,03H
D. 08H,08H
二、判断题(判断每题正误,对的在题后括号内划“√ ”,错的划“×”)。

(10分)
1. MOV DS,CS ( × ) 6. MOV CS,AX ( × )
2. MOV AX,DL ( × ) 7. XCHG 50H,BH ( × )
3. POP AL ( × ) 8. SHL AX,10 ( × )
4. NOT 5 ( × ) 9. IN AL,DX ( √ )
5. IN AX,200H ( × ) 10. OUT 21H,AL ( √ )
三、填空题。

(20分)
1.已知:BX=100H,BP=200H,SI=300H,DS=1000H,SS=2000H,CS=3000H,指出下述指令
中存储器操作数的有效地址及实际地址。

(6分)
2. 写出下述两条数据定义伪指令语句经过汇编后的内存分配情况。

(4分)
DATA1 DB -32,‘AB’
DATA2 DW -32,‘AB’
DATA1 DATA2
3. 已知部分中断向量表的内容给出如下, 则方式码为10H的中断服务程序的入口偏移地址为( 0007H ),段地址为( C870H )。

(4分)
C>DEBUG
-d 0:0
0000:0000 9E 0F C9 00 65 04 70 00-16 00 C1 08 65 04 00 00
0000:0010 65 04 70 00 54 FF 00 F0-00 80 00 F0 6F EF 00 F0
0000:0020 00 00 00 C8 28 00 C1 08-6F EF 00 F0 6F EF 00 F0
0000:0030 6F EF 00 F0 6F EF 00 F0-9A 00 C1 08 65 04 70 00
0000:0040 07 00 70 C8 4D F8 00 F0-41 F8 00 F0 97 25 58 FD
0000:0050 39 E7 00 F0 40 02 2D 06-2D 04 70 00 28 0A 76 06
0000:0060 A4 E7 00 F0 2F 00 82 09-6E FE 00 F0 04 06 76 06
0000:0070 1D 00 00 C8 A4 F0 00 F0-22 05 00 00 C6 57 00 C0
4.依据下述子程序说明文件把子程序补充完整。

(6分)
1)子程序名:MSHL;
2)子程序功能:多字节数据逻辑左移一位;
3)入口条件:数据低字节地址在SI中,数据长度在CX中;
4)出口条件:移后数据低字节地址在SI中;CF为移位前数据最高位状态;
5)受影响的寄存器:F。

MSHL PROC
PUSH SI
PUSH CX
( CLC )
MSHL1: RCL BYTE PTR [SI],1
( INC SI )
LOOP MSHL1
POP CX
POP SI
( RET )
MSHL ENDP
四、改错题。

(10分)
下列程序有错, 请将它们找出并改正过来。

已知程序欲完成的功能是从两个无符号数中选出较大者送入MAX单元, 若二者相同, 将MAX清0。

要求:不必抄题,直接在试题上修改。

在错误的部分下面划一条线,然后在本行的后面给出正确的答案即可。

1. SEGA SEGMENT
4. DAX: DW A0H ( DAX)
8. DAY DB 1000H ( DW)
12. MAX DB 0,0 ( MAX DW 0)
15. SEGA ENDS
18. CSEG SEGMENT
21. ASSUME CS:CSEG;ASSUME DS:SEGA
25. BEGIN:MOV DS,SEGA
27. MOV AX,DAX
29. CMP AX, DAY
33. JG XGY (JA)
35. JZ ZERO
40. MOV AX,DAY
43. XGY: MOV MAX,AX
47. ZERO MOV AH,4CH (ZERO:)
49. INT 21
50. CSEG END (ENDS)
56. END START
五、简答题(24分):用尽可能少的指令编写完成下列功能的程序段
1.将寄存器AL的高4位取反,低4位不变。

答:XOR AL,0F0H
2.将寄存器AL的第i位清0,其它位状态不允许改变,已知i在CL中。

答:MOV AH,OFEH
ROL AH,CL
AND AL,AH
3.已知AL,BL中各存放一个字节数据,如果两数同为偶数,则将AL清0;如果两数同为奇数,则将AL置2;否则将AL置1。

答:MOV AL,0
AND AH,01H
JZ L2
DEC AL
4.已知中断服务程序的入口地址为SEVER,对应的中断方式码为40H,则将其入口地址写入中断向量表的程序段。

答:XOR AX,AX
MOV ES,AX
MOV DI,40H*4
CLD
LEA AX,SEVER
STOSW
MOV AX, SEG SEVER
STOSW。

相关主题