资源描述
课程名称 汇编语言程序设计 ( A 卷
一、选择题(1分×20分=20分)
1—5 CABDB 6—10 BADAB 11—15 ADBCB 16—20 CAADB
二、填空题(1分×15分=15分)
1. 11100101, 1111111111100101
2. CF, OF
3.段地址,偏移地址。
4. 49022H,49048H
5. CBW,IDIV BL
6. AND AL,0FCH ,XOR AL,03H
7.堆栈法, 寄存器法,地址表法
三、判断题(1分×10=10分)
1.存储器不能相互传送
2. 1000超过了一个字节的范围
3. CS不能用作目的寄存器
4.段寄存器不能相互传送
5. 移位指令中的移位次数大于1时,不能直接写立即数
6. POPF指令是不需要操作数的
7. MUL指令的操作数不能是立即数
8.立即数不能作为目的操作数
9.不能都是存储器操作数
10.类型不匹配
四、程序阅读题(15分)
1. (BX)=0C02DH (3分)
2.(1)PLENTH=22=16H; (2分)
(2)它表示变量PARTNO、PNAME、COUNT总共占用的存储单元数(字节数)。(2分)
3.(1)CF=1 (2分)
(2)(AX)=8D00H,(DX)=0 (2分)
4. 将STRING里的小写字母’a’-‘z’转成相应的大写字母’A’-‘Z’ (4分
五、程序填空题(15分)
1. EQU ($-ARY)/2 (3分)
2. (1)CWD (2分)
(2)MOV MEM,DX (2分)
3. (1) JB BEGIN (2分)
(2)JA BEGIN (2分)
(3)MOV AH, 2 (2分)
(4)LOOP DISPLAY (2分)
六、编程题(25分)
1. (5分)
mov ax,X
sub ax,Y
jns nonneg
neg ax
nonneg: mov result,ax
2. (8分)
MOV BH,AL
MOV CH,AH
MOV AL,AH
AND AL,0F0H
MOV BL,AH
AND BL,0FH
MOV CL,BH
AND CL,0F0H
MOV DL,BH
AND DL,0FH
3. (12分)
DSEG SEGMENT
STRING1 DB ‘I am a student.’
STRING2 DB ‘I am a student!’
YES DB ‘MATCH’, 0DH, 0AH, ‘$’
NO DB ‘NO MATCH’, 0DH, 0AH, ‘$’
DSEG ENDS
A
一、选择题(1分×20分=20分)
1—5 CDADC 6—10 DDDAB 11—15 BCADA 16—20 DBBCA
二、填空题(1分×15分=15分)
1. 123,11100101
2.1 M,20
3.汇编,连接。
4. 49022H,49048H
5. CBW,IDIV BL
6. AND AL,0FCH ,XOR AL,03H
7.堆栈法, 寄存器法,地址表法
三、判断题(1分×10=10分)
(1) 立即数不能作为MUL指令的操作数。
(2) 移位次数大于1的时候不允许使用立即数。
(3) 两个操作数不允许同时为存储器操作数。
(4) 缺少目的操作数。
(5) 子程序调用指令的操作数必须是16位或32为。
(6) 无效的操作数。
(7) 寻址方式书写不正确。
(8) 目的寻址寄存器书写不正确。
(9) 端口号大于255的时候不能用立即数。
(10)CS不能作为目的操作数
四、程序阅读题(15分)
1. (BX)=0C02DH (3分)
2.(1)PLENTH=22=16H; (2分)
(2)它表示变量PARTNO、PNAME、COUNT总共占用的存储单元数(字节数)。(2分)
3.(1)CF=1 (2分)
(2)(AX)=8D00H,(DX)=0 (2分)
4. 将STRING里的小写字母’a’-‘z’转成相应的大写字母’A’-‘Z’ (4分
五、程序填空题(15分)
1. EQU $-MSG (3分)
2. (1)CWD (2分)
(2)MOV MEM,DX (2分)
3. (1) JB BEGIN (2分)
(2)JA BEGIN (2分)
(3)MOV AH, 2 (2分)
(4)LOOP DISPLAY (2分)
六、编程题(25分)
1. (5分)
NEG DX
NEG AX
SBB DX,0
2. (8分)
MOV BH,AL
MOV CH,AH
MOV AL,AH
AND AL,0F0H
MOV BL,AH
AND BL,0FH
MOV CL,BH
AND CL,0F0H
MOV DL,BH
AND DL,0FH
3. (12分)
DSEG SEGMENT
A DW ?
B DW ?
DSEG ENDS
;--------------------------------------------------------------------------
CSEG SEGMENT
MAIN PROC FAR
ASSUME CS: CSEG, DS: DSEG
START: PUSH DS ;设置返回DOS
SUB AX, AX
PUSH AX
MOV AX, DSEG
MOV DS, AX ;给DS赋值
BEGIN: MOV AX, A
MOV BX, B
XOR AX, BX
TEST AX, 0001H ;A和B同为奇数或偶数吗?
JZ CLASS ;A和B都为奇数或偶数,转走
TEST BX, 0001H
JZ EXIT ;B为偶数,转走
XCHG BX, A ;A为偶数,将奇数存入A中
MOV B, BX ;将偶数存入B中
JMP EXIT
CLASS: TEST BX, 0001H ;A和B都为奇数吗?
JZ EXIT ;A和B同为偶数,转走
INC B
INC A
EXIT: RET
MAIN ENDP
CSEG ENDS ;以上定义代码段
;--------------------------------------------------------------------------
END START
展开阅读全文