2007年10月自考汇编语言程序设计试题
全国2007年10月高等教育自学考试汇编语言程序设计试题
课程代码:02321
一、单项选择题 (本大题共20小题,每小题1分,共20分
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.设A=186,B=273Q,C=0BBH,它们之间的关系是( )
A.A>B>C B.A<B<C
C.A=B=C D.A<B=C
2.8086/8088的存贮器组织是将存储器划分为段,可作为段的起始地址是( )
A.185A2H B.00020H
C.01004H D.0AB568H
3.下列指令执行后,能影响标志位的指令是( )
A.PUSHF B.POPF
C.JNLEOPR D.LOOPELOP
4.循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是( )
A.CX≠0且ZF=1 B.CX≠0且ZF=0
C.CX≠0或ZF=1 D.CX≠0或ZF=0
5.设VARl和VAR2是已定义的变量名,非法的表达式是( )
A.VARl-VAR2 B.VAR2-VARl
C.VARl+VAR2 D.VARl
6.设NUM=11011011B,指令MOVAX,NUMSHL3执行后AX中的值是( )
A.11011011000B B.1l011000B
C.00011011B D.00011011011B
7.8088/8086存储器分段,每个段不超过( )
A.64K个字 B.32K个字节
C.64K个字节 D.1兆个字节
8.设AL中已有压缩型BCD码,为实现对AL的减1操作,可选用的指令序列是( )
A.DECAL B.SBBAL,0
AAS DAS
C.SUBAL,1 D.SUBAL,l
AAS DAS
9.若AX=-15要得到AX=15应执行的指令是( )
A.NEGAX B.NOTAX
C.INCAX D.DECAX
10.8086/8088系统执行传送指令MOV( )
A.不影响标志位 B.影响DF方向标志
C.影响SF符号标志 D.影响CF进位标志
11.下列指令中操作数在代码段中的是( )
A.MOVAL,42H B.ADDAL,BL
C.SUB,DI D.INC
12.表示过程定义结束的伪指令是( )
A.ENDP B.ENDS
C.END D.ENDM
13.条件转换指令JNBE产生转换的条件是( )
A.CF=0ANDZF=0 B.CF=0ANDZF=1
C.CF=1ANDZF=0 D.CF=1ANDZF=l
14.设(SS)=338AH,(SP)=450H,执行PUSHBX,和PUSHF两条指令后,堆栈顶部的物理地址是( )
A.33CECH B.33CF2H
C.33CF4H D.33CE8H
15.要输入端口1234H中的8位数据,其指令应是( )
A.MOVDX,1234H B.MOVDX,1234H
OUTDX,AL INAL,DX
C.INAX,1234H D.OUTDX,1234H
16.标志寄存器中属于控制标志位的是( )
A.DF,OF,SF B.DF,IF,TF
C.OF,CF,PF D.AF,OF,SF
17.用一条指令实现将寄存器BX和SI中的内容相加,结果送入AX中,这条指令是( )
A.ADDAX, B.MOVAX,
C.ANDAX, D.LEAAX,
18.已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正确的是( )
A.DIVBX B.CWD
IDIVBX
C.XORDX,DX D.CBW
DIVBX IDIVBX
19.下列指令执行后对源和目的操作数均无影响的是( )
A.MOV,AX B.SUBAX,2467H
C.SBB,BX D.CMPAX,BX
20.下列有语法错误的语句是( )
A.DB1234H B.DW4567H
C.DD′AB′,′CD′ D.DB′ABCD′
二、填空题(本大题共6小题,每小题1分,共6分)
请在每小题的空格中填上正确的答案。错填、不填均无分。
21.宏定义开始用的伪指令是______________。
22.DF是程序状态字寄存器中的_____________标志位。
23.分支程序结构有两种形式,第一种为__________,第二种为__________。
24.汇编语言程序设计中每个语句的注释项的开始必须用符号___________。
25.从端口地址3AH输入一个16位数据,其指令是____________。
26.设(SP)=001EH,执行段内返回指令RET后(SP)=_____________。
三、简答题(本大题共4小题,每小题2分,共8分)
27.假设某数据段的段名为DATA,段内有一变量BUF,请分别用MOV指令写出与下述二
条语句等效的语句。
(1)MOVAX,DATA
(2)LEABX,BUF
28.设MY_DATA为数据段段名
(1)MY_DATA应送到哪个段寄存器中?
(2)MY_DATA送到相应的寄存器中去,用什么指令?
29.某数据段中有语句DB′AB′,0,0,′CD′,0,0;请分别用DW和DD伪指令改写它。
30.请写出下列指令中存贮器操作数的物理地址表达式。
①MOVAX,20H
②ADDCS:,26H
四、程序分析题(本大题共6小题,每小题6分,共36分)
31.已知BX=5E5CH,CX=8303H,CF=1
RORBX,CL
XORBH,CH
ROLBX,CL
程序段执行后,BX= ,CF= 。
32.MOVAL,01H
RORAL,1
ORAL,AL
NEGAL
上述程序段执行后AL= ,CF 。
33.MOVAL,0FH
XORAL,0FFH
MOVCL,7
SHRAL,CL
(1)上述程序段执行后AL= ;
(2)若将指令SHR换成ROR指令后,那么执行后AL= 。
34.DA_WORD EQUWORDPTR DA_BYTE
DA_BYTE DBOABH,89H
•
•
•
SHR DA_WORD,1
MOV DX,DA_WORD
SHL DA_BYTE,l
MOV CX,DA_WORD
上述指令序列执行后,CX= ,DX= 。
35.设A、B均为长度为10的字节数组,DS、ES已指向同一组数据段
A DB 1,2,3,4,5,6,7,8,9,0AH
B DB 0AH,9,8,7,6,5,4,3,2,1
•
•
•
LEA SI,A
LEA DI,B
MOV CX,10
CLD
LOP:LODSB
XCHG AL,
XCHG SI,DI
DEC DI
STOSB
XCHG SI,DI
INC DI
LOOP LOP
上述程序段执行后,
(1)程序段完成什么功能?
(2)A和B两个字节数组的内容是什么?
36.已知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
请回答:
(1)该子程序完成什么功能?
(2)如调用子程序时,AL=3,程序执行后,DL= ;
(3)如调用子程序时,AL=0FH,程序执行后,DL= 。
五、程序填空题(本大题共2小题,每小题6分,共12分)
请在每小题的空格中填上正确的答案。错填、不填均无分。
37.下列程序段实现将数据区ABUFl首址开始的100个字节数据传送到ABUF2为首址的数据区去。
CLD
MOVSI,OFFSETABUFl
______________________________①
MOVCX,100
____________________________________②
38.下面程序段是在DAI开始的10个字节中依次存入数据‘9’,‘8’,……‘1’,‘0’,在横线处填入指令。
MOVCX,10
___________________________①
MOVAL,′9′
CLD
LOP:STOSB
__________________________②
LOOP LOP
六、编写程序题(本大题共2小题,第39小题6分,第40小题12分,共l8分)
39.限用2条指令把AX中第4到10位都变反,第0—3位,第11到15位都置1。
40.设有一字符串存放在以STRING为首址的数据区中,其最后一个字符′.′(其中ASCⅡ码为2EH)作为结束标志,编程序,计算该字符串的长度送LEN字节单元。又知被操作的字符串为′IBMPC8088CPU.′。
页:
[1]