《汇编语言》课程综合复习资料
一、单项选择
1. 已知[X]补=98H, 则[X]补/2=( ) (A) 0CCH (B) 4CH (C) 49H (D) 31H 2. 已知X=78,Y=-83则[X+Y]补=( )
(A) 0F5H (B) 0A1H (C) 0FBH (D) 65H
3. 在计算机的CPU中执行算术逻辑运算的部件是( )
(A) ALU (B) PC (C) AL (D) AR
4. 将125转换成二进制数的结果( )
(A) 7DH (B) 7CH (C) 7EH (D) 7BH
5. 将93H看成一个组合BCD码,其结果是( )
(A) 10010101 (B)10010011 (C) 10000011 (D)10000001 6.MOV AX,ES:[1000H] 源操作数的寻址方式是( )
(A) 立即寻址 (B) 直接寻址 (C) 变址寻址 (D) 基址寻址 7.MOV AX,ES:COUNT[DI] 源操作数的寻址方式是( )
(A) 基址寻址 (B) 立即寻址 (C) 变址寻址 (D) 基址变址寻址 8.MOV DX,COUNT[BP][DI]的源操作数的寻址方式是( )
(A) 变址寻址 (B) 基址寻址 (C) 直接寻址 (D) 基址变址寻址 9.指令MOV BX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为( )
(A) 17500H (B) 16500H (C) 14500H (D) 13500H
10.指令MOV AX,COUNT[BX],若COUNT=0400H,SS=1200H,DS=1000H,BX=5000H,那么物理地址为( )
(A) 17400H (B) 17000H (C) 15400H (D) 14500H 11.指令MOV DX,DELTA[BX][SI],若DELTA=1300H,SS=7200H,DS=5400H,BX=0500H,SI=4000H,那么物理地址为( )
(A) 6F300H (B) 77800H (C) 59800H (D) 78700H 12. 汇编语言指令中唯一不可缺少的域是( )
(A) 标号名字域 (B) 助记符域 (C) 操作数域 (D) 注释域 13. 下面哪一个命令是显示内存单元的内容( )
(A)D命令 (B)E命令 (C)F命令 (D)R命令 14. 下列为不合法的标志符的是( )
(A)AXYZ (B)5SKY (C)@ATT (D)?ABC
15. 组合类型中本段与其它段无逻辑关系,每段均有自己的基址的组合类型是( )
(A)NONE (B)PUBLIC (C)COMMON (D)STACK 16. 在段定义中,( )是默认的定位类型。
(A)PAGE (B)PARA (C)WORD (D)BYTE 17.源程序结束语句为( )
(A)ENDP (B)ENDS (C)END MAIN (D)END 18. 能被计算机直接识别的语言是( )
(A) C语言 (B)汇编语言 (C)机器语言 (D)面向对象语言 19. 能把汇编语言转换成机器语言的翻译程序是( )
(A) 编译程序 (B)汇编程序 (C)解释程序 (D)调试程序 20. 汇编语言源程序的文件扩展名是( )
(A) .EXE (B) .OBJ (C) .BIN (D) .ASM 二、简答题
1.在某子程序的开始处要保护AX,BX,CX三个寄存器信息,在子程序结束时要恢复这三个寄存器信息。假设保护现场的指令序列为:
PUSH AX PUSH BX PUSH CX
试写出恢复现场时的指令序列。 2.完成下列操作,分别选用什么指令:
(1)将AX的内容,减去0520H,和上次运算的借位; (2)将变量名TABL的段地址送AX; (3)将变量名TABL的偏移地址送AX。
3.定义数据段DATA_SEG,数据段中的数据按下列要求依次存储:
(1)变量BUF,大小为25个字节,初值为0;
(2)变量ARRAY,类型为字,初值为12H,56H,78H,0AH;
(3)变量MSG存储字符串 ’yes’。
4.试根据以下要求,分别写出相应的汇编语言指令。
(1) 把AX寄存器和BX寄存器的内容相加,结果存入AX中;
(2) 用BX和SI的基址变址寻址方式,把存储器中的一个字节与DL的内容相加,并把结果送回DL中;
(3) 把数5EH与AH内容相加,结果送回AH中。
5.对于下面的数据定义,三条MOV指令分别汇编成什么?
TAB1 DW 10 DUP(?)
TAB2 DB 10 DUP(?) TAB3 DB ‘1234’
┇
MOV AX,LENGTH TAB1 MOV BL,LENGTH TAB2 MOV CL,LENGTH TAB3 6.假设有如下伪指令:
D1 DB 20H DUP(?) D2 DW D1
请写出用一条指令实现“取D1的偏移地址=>SI”中的三种方法。 三、编程题
1. 编程序段:编制将ES段中名为DATA的字存储区清零的程序段。假定DATA存储区定义为:
DATA DW 20 DUP(?)
要求用循环指令编写,循环控制采用计数寄存器自动控制。(此题勿需书写完整的源程序格式,只需把试题要求的有关指令序列书写出来。) 2. 编写完整程序:
设在内存单元SQTAB首址开始存放了0~15的平方数表。要求用直接查表法编一程序,求出A单元中给定数(<=15)的平方值送B单元保存。
3. 编程序段:设X,Y,Z,W存放16位带符号数,编程计算X*Y-Z的值,并将结果的低16位送到W。
(此题勿需书写完整的源程序格式,只需把试题要求的有关指令序列书写出来。)
《汇编语言》课程综合复习资料参考答案
一、单项选择 题目 答案 题目 答案 1 A 11 C 2 C 12 B 3 A 13 A 4 A 14 B 5 B 15 A 6 B 16 B 7 C 17 C 8 D 18 C 9 B 19 B 10 C 20 D 二、简答题 1.参考答案:
POP CX POP BX POP AX 2.参考答案:
(1) SBB AX,0520H (2)MOV AX,SEG TABL (3)MOV AX,OFFSET TABL 3.参考答案:
DATA_SEG SEGMENT
BUF DB 25 DUP(0) ARRAY DW 12H,56H,78H,0AH
MSG DB 'yes' DATA_SEG SEGMENT 4.参考答案:
(1) ADD AX,BX (2) ADD DL,[BX][SI] (3) ADD AH,5EH 5.参考答案:
MOV AX,10 MOV BL,10 MOV CL,1 6.参考答案:
(1) LEA SI,D1 (2) MOV SI,OFFSET D1 (3) MOV SI,D2 三、编程题 1. 参考答案:
DATA DW 20 DUP(?) MOV AX,SEG DATA MOV ES,AX MOV DI,0
MOV CX,20 ;或LENGTH DATA; GOON: MOV ES:DATA[DI],0
ADD DI,2 LOOP GOON 2. 参考答案: DATA SEGMENT
SQTAB DB 0,1,4,9,16,25,36,49,64,81 DB 100,121,144,169,196,225 A DB 12 B DB ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DX XOR AX,AX PUSH AX
MOV AX,DATA MOV DS,AX
MOV BX,OFFSET SQTAB MOV AL,A XLAT
MOV B,AL RET START ENDP CODE ENDS
END START 3. 参考答案: MOV AX,X IMUL Y SUB AX,Z SBB DX,0 MOV W,AX
1(5.0分)
下面指令中,合理而有意义的指令是( ) A)
REP LODSB B)
REP SCASB C)
REP CMPSB D)
REP MOVSB
参考答案: D 收起解析 解析: 无
2(5.0分)
执行下面指令语句,则AX=( )。
MOV AL,95H CBW A) 0095H B) 0F95H C)