汇编语言程序设计试卷及答案(AB卷)

更新时间:2024-05-02 07:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

广东经济管理学院

2010—2011学年度第(1)学期期末考试试卷

订科 目:汇编语言程序设计 (A)卷

考试形式:闭卷 考试时间: 120 分钟

线 系别、班级: 姓名: 学号:

题 目 标准分数 实得分数 一 20 二 14 三 9 四 30 五 12 六 15 总分 100 考生答题一、单项选择题:(本题共20小题,每小题1分,共20分) 1. 设DS=5788H,偏移地址为94H,该字节的物理地址是 。

(A) 57974H (B) 57914H (C) 5883H (D) 58ECH 2. IP指令指针寄存器是属于 。 (A) 通用寄存器 (B) 段寄存器 (C) 变址寄存器 (D) 控制寄存器 3. 下面有语法错误的指令是 。 (A) ADD AL,AH

(B) ADD [BX+3],AL (C) ADD AH,[DI]

(D) ADD [BX],DA1(DA1是变量名)

4. 完成对DX的有符号数除以2的指令是 。

(A) IDIV 2 (B) SAR DX,1 (C) DIV 2 (D) RCR DX,1 5. 使进位位置1的指令是 。 (A) CLC (C) STC

(B) CMC (D) NOP

不得超过此线第 1 页 共 21 页

6. 设AL=-100,要使AL=100应执行的指令是 。

(A) NEG AL (B) NOT AL (C) INC AL (D) DEC AL 7. 在条件转移指令中,结果为负数则转移的指令是 。 (A) JNS (B) JZ (C) JS (D) JC 8. 下面的XCHG指令中,语法正确的是 。 (A) XCHG AL,DS (B) XCHG BH,[BX] (C) XCHG AL,OFH (D) XCHG BUF1,BUF2 9. 一条指令中目的操作数不允许使用的寻址方式是 。 (A) 寄存器寻址 (B) 立即数寻址 (C) 变址寻址 (D) 直接寻址 10. 设SP=1FFFH,执行下列指令后,SP寄存器的值是 。 ┇ POPF PUSH BX PUSH BX ┇ (A) 2000H (B) 2002H (C) 1FFCH (D) 1FFEH 11. LES SI ,[2000H]指令的全部功能是 。 (A) 把地址2000H送SI

(B) 把地址2000H字单元的内容送SI

(C) 把地址2000H字单元内容送SI,把2002H字单元内容送ES (D) 把地址2000H字单元内容送ES,把2002H字单元内容送SI 12. 设AL=04H,CL=0F8H,执行MUL CL指令后,结果是 。

(A) AX=0032H (B) AX=00E0H (C) AX=03E0H (D) AX=0FFE0H

13. 设ES=3000H,DI=00FFH,CX=0005H,AL=41H,DF=0,从300FFH开始的连续5个字节单元内容分别是44H,43H,42H,41H。执行REPNZ SCASB指令后,正确的结果是 。

(A) DI=0104H,CX=0000H (B) DI=0103H,CX=0001H (C) DI=0102H,CX=0002H (D) DI=0101H,CX=0003H 14. 某数据段如下: DATA SEGMENT ORG 20H

第 2 页 共 21 页

X DB 12H,'AB' Y DW 789AH DATA ENDS

Y单元的偏移地址是 。 (A) 20H (C) 22H

(B) 21H (D) 23H

15. 下面指令语句中,语法正确的是 。

(A) INC [BX] (B) CMP [BX],20 (C) JMP FAR OPR (D) MOV WORD PTR[BX],20 16. DATA SEGMENT

DA1 DB 30 DUP(?) DA2 DW 1456H,789AH DA3 DW DA2 DATA ENDS ┇ ┇

MOV BX,DA3

上述指令执行后,BX中的内容是 。 (A) 30 (B) 31 (C) 32 (D) 21H

17. 数据定义如下: BUF1 DB 10

BUF2 DW 20DUP(?)

实现将BUF1单元的内容与BUF2开始的条三个字节单元内容相比较的指令是 。

(A) CMP BUF1,BYTE PTR BUF2+3 (B) MOV AL,BUF1

CMP AL,BUF2+2 (C) MOV AL,BUF1

CMP AL,BYTE PTR BUF2+2 (D) MOV AL,BUF1

CMP AL,BUF2+3 18. 执行循环指令 LOOPNZ END0 时,若要使其重复执行,应满足的条件是 。

(A) CX≠0且ZF=0 (B) CX≠0或ZF=0 (C) CX≠0且ZF=1 (D) CX≠0或ZF=1 19. 当一个程序使用DOS系统功能调用退出用户程序时,在编写INT 21H指令前,应选用的指令是 。 (A) MOV AH,01H (B) MOV AX,4CH (C) MOV AH,4CH (D) RET

第 3 页 共 21 页

20. 用CMP指令对两个无符号数进行A-B的比较后,用A=B或A>B,则分别产生转

移,这种情况应选择的条件转移指令是 。 (A) 先用JE指令,再用JNC指令 (B) 先用JNC指令,再用JE指令

(C) 上述两条条件转移指令(JE和JNC)无先后次序 (D) 用上述两条条件转移指令不能完成上述功能要求

二、填空题:(本题共14空,每空1分,共14分)

1. 在微型计算机中,系统总线将CPU、存贮器和I/O设备连接起来,传送各部分

之间的信息。系统总线包括有数据总线, 和 。 2. 用 寄存器与 段寄存器联合确定下一条指令的物理地址。 3. 清除AX寄存器的一条逻辑指令是 或 。

4. 汇编语言源程序中的语句有三种类型,它们是 语句, 语句

及 语句。 5. 设数据段的段地址为2A66H,其中某数组中第5个字节存储单元的物理地址为

2A835H,试问该数组中首字节的偏移地址是 。 6. 数据定义如下:

X1 DB 10H,100,-1 X2 DW 10H,100,-1 X3 DD ?

COUNT EQU X3 - X1

变量COUNT的值是 ,其表示的意义是 。

7. 执行指令 MOV AX,0

MOV AL,09H ADD AL,4

若要获得结果AX=0103H,则在ADD指令之后,加一条 指令,若要获得结果AL=13H,在ADD指令之后加一条 指令。

三、简答题:(本题共3小题,每小题3分,共9分) 1. DA1 DB 20H DUP(?)

DA2 DW 10H,45H,7856H

请用两种方法,分别只用一条指令实现将DA1数据区中数据个数送入CX。

第 4 页 共 21 页

2. 用三种不同方法实现在字存储单元DB1中存储2000H的内容。

3. 已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,

试分别指出下列各指令中存储器操作数据的物理地址。 (1)MOV AL,[BP+20H] (2)MOV [BX+DI-80H],AL (3)MOV BL,ES:[SI+40H]

四、程序分析题:(本题共5小题,每小题6分,共30分) 1. XOR AL,AL MOV AH,AL ADD AH,9 JZ NEXT XCHG AH,AL JMP K1

NEXT: MOV AH,0FFH K1: ………

上述程序运行后,AH= ,AL= 。 2. XOR AL,AL INC AL NEG AL INC AL

MOV BL,7FH ADC AL,BL

上述程序段运行后,AL= ,CF= 。 3. 已知 AX=1234H

MOV BX,AX NEG BX

ADD AX,BX

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

第 5 页 共 21 页

4. BUF1 DB 41H,42H,43H,44H,45H,46H BUF2 DB 6 DUP(?) ┇

MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 MOV CX,6 LOP: MOV AL,[SI] SUB AL,7 AND AL,0FH MOV [DI],AL INC SI INC DI LOOP LOP 试回答:(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么? (2)在程序功能不变的情况下,AND AL,0FH指令可否用SUB AL,30H指令替代。

5. BUFF DB 'ABD SA……XYZ' CONT EQU S-BUFF ┇ CLD

LEA DI,BUFF MOV CX,CONT MOV AL,ˊ$ XOR DX, DX NEXT: REPNZ SCASB CMP CX, 0 JZ K1 INC DX JMP NEXT

K1: ┉┉

上述程序段执行后,DX中的值表示的意义是什么?。

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

1.下面程序段的功能是把DA1数据区的数0~9转换为对应的ASCII码。试完善本程序段。(每一空白处只填一条指令)

DA1 DB OOH,01H,02H,03H,04H,05H,06H,07H,08H,09H ASCI DB 10 DUP(?) CUNT =ASCI-DA1

第 6 页 共 21 页

LOP1: LEA SI,DA1 LEA DI,ASCI

MOV AL,[SI]

MOV [DI],AL INC SI INC DI LOOP LOP1

2.设A,B是长度为10的字节数组,用串操作指令编写程序实现A,B两数组内容的相互交换。试完善本程序。(每一空白处只填一条指令) DATA SEGMEMT

A DB 1,2,3,4,5,6,7,8,9,0AH ORG 0010H

B DB 0AH,9,8,7,6,5,4,3,2,1 DATA ENDS ┇

MOV SI,0 MOV DI,0 MOV CX,10 MEXT: MOV AL,A[SI] MOV BL,B[DI]

INC SI INC DI LOOP NEXT

六、程序设计题:(本题共2小题,第1小题5分,第2小题10分,共15分) 1.设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关程序功能的指令):

?X Y???X

X?0X?0

第 7 页 共 21 页

2.编写一个完整的源程序,将BUF字节单元存放的两位BCD码,转换成2个字节的ASCII码,并分别存放在ASC和ASC+1字节单元中

例如:(BUF字节单元)=58H,那么(ASC字节单元)35H,(ASC+1字节单元)=38H

第 8 页 共 21 页

广东经济管理学院

2010—2011学年度第(1)学期期末考试试卷

科 目:汇编语言程序设计 (A)卷

(参考答案)

一、 单项选择题

1.B 2.D 3.D 4.B 5.C 6.A 7.C 8.B 9.B 10.A 11.C 12.C 13.C 14.D 15.D 16.A 17.C 18.A 19.C 20.D 二、 填空题

1.地址总线、控制总线 2.IP、CS

3.XOR AX,AX 、AND AX,0000H 4.指令、指示性/伪指令、宏指令 5.01D1H

6.9 、分配给变量X1和X2的字节数目 7.AAA 、 DAA

三、简答题

1.方法1:MOV CX,DA2-DA1或MOV CX,LENGTH DA1 方法2:MOV CX,SIZE DA1 2.方法1:MOV BX,[2000H] MOV DA1,BX 方法2:MOV SI,2000H MOV AX,[SI] MOV DA1,AX 方法3:PUSH [2000H]

POP DA1 3.(1)12488H (2)232D7H (3)31040H

四、程序分析题

1.0 、 9 2.80H 、1

3.0 、 OEDCCH 4.(1)BUF2开始的6个字节存储单元的内容是:0AH,OBH,OCH,OCH,0DH,

0E,0FH。

(2)可以用SUB AL,30H代替AND AL,OFH。

第 9 页 共 21 页

5.该程序运行后,DX中的值表示BUFF字符串含有字符'$'的个数。 五、程序填空题

1.MOV CX,CUNT ADD LA,30H 2.MOV A[SI],BL MOV B[DI],AL

六、编制程序题

1. X DB X Y ┇

MOV CMP JGE NEG DONE: MOV ┇

2. DATA DATA CODE ASSUME START: CODE END

DB ? AL,X AL,0 DONE AL Y,AL SEGMENT

BCD DB XXH ASC DB ?,? ENDS SEGMENT

CS:CODE,DS:DATA MOV AX,DATA MOV DS,AX MOV CL,4 MOV AL,BCD SHR AL,CL ADD AL,30H MOV ASC,AL MOV AL,BCD AND AL,OFH ADD AL,30H MOV ASC+1,AL MOV AH,4CH ENDS START 第 10 页 共 21 页

广东经济管理学院

2010—2011学年度第(1)学期期末考试试卷

订科 目:汇编语言程序设计 (B)卷

考试形式:闭卷 考试时间: 120 分钟

线 系别、班级: 姓名: 学号:

题 目 标准分数 实得分数 一 20 二 14 三 9 四 30 五 12 六 15 总分 100 考生答题一、单项选择题:(本题共20小题,每小题1分,共20分) 1. 下面四个寄存器中,不能作为间接寻址的寄存器是 。

(A) BX (B) CX (C) BP (D) DI 2. 用来表示堆栈指针的寄存器是 。 (A) IP (B) BP (C) SP (D) SI

3. 完成将AX清零,并使标志位CF清零,下面错误的指令是 。 (A) SUB AX,AX (B) OR AX,AX (C) MOV AX,00H (D) AND AX,00H 4. 下面数据传送指令中,正确的指令是 。 (A) MOV BUF1,BUF2 (B) MOV CS,AX (C) MOV CL,1000H (D) MOV DX,WORD PTR[SP+SI] 5. 下面指令中,源操作数的寻址方式为直接寻址的指令是 。 (A) ADD AX,WORD PTR[BX+DI] (B) ADD AX,B (C) INC CX (D) MOV BX,7FFFH 6. 下面表示段定义结束的命令是 。

第 11 页 共 21 页

不得超过此线(A) ENDP (C) ENDM (B) ENDS (D) NED

7. 设AL,BL中都是有符号数,当AL≤BL时转至NEXT处,在CMP AL,BL指令后

应选用正确的条件转移指令是 。 (A) JBE (B) JNG (C) JNA (D) JNLE 8. 指令LOOPZ的循环执行条件是 。 (A) CX≠0并且ZF=0 (C) CX≠0并且ZF=1

(B) CX≠0或ZF=0 (D) CX≠0或ZF=1

9. 执行下列指令后,SP寄存器的值是 。

MOV SP,1000H PUSHF (A) 0FFEH (B) OFFFH (C) 1001H (D) 1002H 10. 完成将有符号数BX的内容除以2的正确指令是 。 (A) SHR BX,1 (B) SAR BX,1 (C) ROR BX,1 (D) RCR BX,1 11. 下面指令中影响状态标志位CF的指令是 。 (A) INC AX (B) DEC AX (C) NOT AX (D) NEG AX 12. 判断当CX=0时,转ZERO执行的错误指令是 。 (A) CMP CX,0 (B) MOV AX,CX

JZ XERO JX ZERO (C) OR CX,CX (D) JCXZ ZERO

JZ ZERO

13. 调用2号DOS系统功能,在屏幕上显示一个字符,事先要其ASCII码存放

在 。 (A) AL中 (B) BL中 (C) CL中 (D) DL中 14. 设数据定义如下:

ARRAY DW 1,2,3

执行指令ADD SI,TYPE ARRAY相当于完成下面同等功能的指令是 。 (A) ADD SI,O (B) ADD SI,2 (C) ADD ST,3 (D) ADD SI,0 15. 设数据定义如下:

BUF DW 100 DU(?)

第 12 页 共 21 页

执行指令MOV CX,LENGTH BUF相当于完成下面同等功能的指令是 。 (A) MOV CX,00C8H (B) MOV CX,0200H (C) MOV CX,0064H (D) MOV CX,0100H 16. 完成对字单元BUF的内容加1运算,下面错误的指令是 。 (A) MOV CX,BUF (B) MOV BX,OFFSET BUF

INC BX INC WORD PTR[BX] MOV BUF,BX (C) MOV BX,BUF (D) MOV BX,0

INC WORD PTR[BX] INC WORD PTRBUF[BX] 17. 完成对寄存器BX的内容求补运算,下面错误的指令是 。 (A) NEG BX (B) NOT BX

INC BX (C) XOR BX,0FFFFH (D) MOV AX,0

INC BX SUB AX,BX

18. 判断当AX的内容为负数时,转MINUS执行,下面错误的指令是 。 (A) NOT AX (B) TEST AX,8000H

JNS MIBUS JNZ MINUS (C) SHL AX,1 (D) OR AX,AX

JC MINUS JS MINUS 19. 下面指令序列执行后,正确的结果是 。 MOV AL,OFFH ADD AL,AL ADC AL,AL (A) AL=0F8H CF=1 (B) AL=0F8H CF=0 (C) AL=0F9H CF=0 (D) AL=0F9H CF=1 20. 现有数据存储如图所示:

设AL=01H,BX=0100H,DS=3000H,执行换码指令XLAT后正确的结果是 。 (A) AL=30H (B) AL=40H (C) AL=24H (D) AL=79H

第 13 页 共 21 页

二、填空题:(本题共14空,每空1分,共14分)

1. 8086/8088 CPU允许的最大存储空间为 ,其地址编号从 到

H。 2. 汇编语言是一种面向 的语言。完成将汇编语言源程序翻译成机器语

言目的程序的翻译程序称 。 3. 8086/8088的存储器是分段的,因此存储单元的物理地址是由 和

组合而成的。 4. 标号和变量(名字)均有三种属性,它们是 、 和

属性。 5. 判断无符号数运算是否溢出,应根据 标志位;而判断有符号运算是

否溢出,应根据 标志位。 6. 在16位存储单元中能存储的最大无符号数为65535,能表示的有符号数的范围

是 H到 H。

三、简答题:(本题共3小题,每小题3分,共9分) 1. 在以BUFFER为首地址的内存区,存储的一组数据如图所示,试用一条DUP语句

来完成该数据定义。

2. 选用合适的指令,分别完成下列操作:

(1)将字变量VARY的偏移地址送BX寄存器; (2)将字变量VARY的内容送CX寄存器; (3)将字变量VARY的类型值送DX寄存器;

第 14 页 共 21 页

3. 设有数据定义伪指令如下:

ORG 2000H

ARRAY DW 0100H,0200H,$-2,0300H,$+2 请画出存储单元数据的存储形式。

四、程序分析题:(本题共5小题,每小题6分,共30分) 1. MOV AX,00FFH MOV BX 0FFFFH XOR AX,BX NEG AX

问:该程序段执行后,AX= ,CF= 。 2. MOV AX,BX NEG AX

ADD AX,BX

问:该程序段执行后,AX= ,CF= 。 3. BUF DW 0000H ┇

LEA BX,BUF STC

RCR WORD PTR[BX],1 MOV CL,3

SAR WORD PTR[BX],CL

问:该程序段执行后,存储单元BUF的内容为 。 4. BLOCK DB 20H,1FH,08H,81H,0FFH… RESULT DB ? ┇

START:LEA SI,BLOCK

第 15 页 共 21 页

MOV CX,[SI] INC SI

MOV AL,[SI] LOP1: CMP AL,[SI+1] JNG NEXT

MOV AL,[SI+1] NEXT: INC SI LOOP LOP1

MOV RESULT,AL HLT

问:(1)该程序完成的功能是 。 (2)该程序的循环次数是 。

5. CODE SEGMENT

ASSUME CS:CODE START:MOV CX,1 MOV BL,2 AGAIN:MOV AL,BL INC BL MUL BL

ADD CX,AX CMP AX,002AH JB AGAIN MOV AH,4CH INT 21H CODE ENDS

END START

问:(1)该程序所完成的功能可用算术表达式表示为 。 (2)该程序完成后CX= 。

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

1.下面程序完成十进制数3298+4651的运算,并将结果存入SUM单元开始的2个字节单元中,请将程序补充完整。(每一空白处只填一条指令) DA1 DB 98H,32H DA2 DB 51H,46H SUM DB 2 DUP(?) ┇

MOV SI,OFFSET DA1 LEA DI,DA2

第 16 页 共 21 页

ADD AL,[DI]

MOV SUM,AL MOV AL,[SI+1]

DAA

MOV SUM+1,AL

2.下面程序利用DOS系统功能调用,完成将键盘输入的小写字母转换成大写字母后输出显示,直到输入ˊ$ˊ字符时结束。请将程序补充完整。(每一空白处只填一条指令)

CODE SEGMENT

ASSUME CS:CODE DISPLAY PROC NEAR

BEGIN:MOV AL,01H

INT 21H JZ STOP CMP AL,'a' JB STOP CMP AL,'Z' JA STOP

MOV AL,02H INT 21H JMP BEGIN STOP:RET DISPLAY ENDP

CODE ENDS

六、程序设计题:(本题共2小题,第1小题5分,第2小题10分,共15分) 1.设在DAT1,DAT2字单元中存放一双字长有符号数,编一程序段,完成求出该双字长数的绝对值后送ABS1和ABS2字存储单元。

第 17 页 共 21 页

2.在附加数据段中有一首址为ADDR的没有排序的字数组,数据的第一个字为数组长度,第二个字开始存放数组各元素。在KEY单元存放一要删除的字数据。要求编一完整程序,在数组中查找该数,如果找到该数,将其从数组中删除,并修改数组长度。

第 18 页 共 21 页

广东经济管理学院

2010—2011学年度第(1)学期期末考试试卷

科 目:汇编语言程序设计 (B)卷

(参考答案)

一、 单项选择题

1.B 2.C 3.C 4.D 5.B 6.B 7.B 8.C 9.A 10.B 11.D 12.B 13.D 14.B 15.C 16.C 17.D 18.A 19.D 20.D 二、 填空题

1.1MB 、 00000H 、 0FFFFFH 2.机器 、 汇编程序 3.段地址 、 偏移地址

4.段属性(SEG) 、 偏移属性(OFFSET) 、 类型属性(TYPE) 5.CF 、OF

6.8000H 、 7FFFH 三、简答题

1.BUFFER DB 2DUP(0,2DUP(1),2,3) 2.(1)MOV BX,OFFSET VARY (2)MOV CX,VARY

(3)MOV DX,TYPE VARY 3.

四、程序分析题

1.0100H (CF)=1

2.0000H 当(BX)=0时,(CF)=0;当(BX)≠0时,(CF)=1 3.-4096

第 19 页 共 21 页

4.(1)从BLOCK数组中找出最出最小数,并送入RESULT单元。 (2)循环次数为1FH/31。 5.(1)该程序段的功能是计算1+2×3+3×4+4×5+5×6+6×7→CX。 (2)(CX)=6FH/111 五、程序填空题

1.MOV AL,[SI]

DAA ADC AL,[DL+1] 2.CMP AL,/$/ SUB AL,20H MOV DL,AL

六、编制程序题

1. MOV MOV TEST JZ NOT NOT ADD ADC DONE: MOV MOV

2. DATA ADDR KEY DATA PROG START: AX,DAT1 DX,DAT2 DX,8000H DONE AX DX AX,1 DX,0 AB2,DX SEGMENT

DW …… X SEGMENT

ASSUME CS:PROG,DS:DATA,ES:DSTA AX,DATA MOV DS,AX MOV ES,AX

MOV DI,OFFSET ADDR PUSH DI

MOV AX,KEY

MOV CX,ES:[DI] ADD DI,2 CLD

REPNE SCASW JE DELETE

第 20 页 共 21 页

ABS1,AX DW ENDS MOV POP DI JMP ENIT DELETE: JCXZ NEXT

LOP: MOV BX,ES:[DI] MOV ES:[DI-2],BX ADD DI,2 LOOP LOP NEXT: POP DI

DEC WORD PTR ES:[DI] MOV AH,4CH INT 21H PROG ENDS END START

第 21 页 共 21 页

POP DI JMP ENIT DELETE: JCXZ NEXT

LOP: MOV BX,ES:[DI] MOV ES:[DI-2],BX ADD DI,2 LOOP LOP NEXT: POP DI

DEC WORD PTR ES:[DI] MOV AH,4CH INT 21H PROG ENDS END START

第 21 页 共 21 页

本文来源:https://www.bwwdw.com/article/cw4g.html

Top