求编译期末考试题

2005-2006学年第二学期期末考试汇编语言复习题及参考答案。

填空

1.十进制数369转换成二进制数()2和十六进制数()16。

2.计算机中的指令由()和(地址码)组成。

3.8086有20条地址总线,寻址范围为()字节。

4.要执行的下一条指令的地址存储在寄存器()中。

5.写出IBM PC的三个子程序返回的指令(RET)、(IRET)、(IRTD)。

6.汇编语言源程序需要经过()程序汇编和()程序连接生成可执行文件。

7.如果一个存储单元的地址表示为2314h: 4132h,那么它的偏移地址=(4132),物理地址=()。

8.REP指令前缀与()指令一起使用。

9.您可以使用DEBUG()和()命令查看和修改显示器上存储单元的内容。

10.(阿尔)=BFH。如果要屏蔽0,1位,应该执行指令();如果需要反转位0,1,可以使用指令()。

11.宏汇编适用于()和()的子功能段;

二、选择题

1.设字长N=16,有符号数7AE9H的补数表示为()。

A.9EA7H b . 76C4H c . 8417H d . 7a e9h

2.有符号数3260H与0B425H比较,关系是()。

A.等于b .小于c .大于d .无法比较

3.指令JMP字PTR [BX][DI]中传输的目标地址是()。

A.16 d x(直布罗陀)+(BX)+(直布罗陀)

C.16d x(SS)+(BX)+(迪)

4.在指令MOV AX[1000h]中,源操作数的寻址方式是()。

A.立即寻址b .直接寻址c .段内间接寻址d .寄存器寻址

5.存储在中断向量表中的是()

A.中断类型号b .断点地址c .中断服务程序d .中断服务程序入口地址

6汇编语言指令系统中的条件转移指令。8086可以使程序转移到()。

A.b段中的任何地方,其中指令的偏移地址是-32768 ~+32767。

C.d .段外,此指令的偏移地址为-128~+127。

7.可以定义ASCII码字符串的数据定义语句有()

A.DB,DW,DD,DQ,DT B. DB,DW,DD C. DB,DW D. DB

8.如果(AL)=87H,则加了AL和0F5H后,S,Z,C,O,P的状态为()。

A.SF=0,ZF=0,CF=1,OF=1,PF=0 B.SF=1,ZF=0,CF=1,OF=0,PF=1

C.SF=0,ZF=0,CF=0,OF=1,PF=0 D.SF=1,ZF=0,CF=1,OF=1,PF=1

9.比较指令CMP()

A.专用于有符号数比较

C.专用于字符串比较d .不区分比较的对象是有符号的还是无符号的。

10.数据传输指令对标志位的影响是()

A.不影响;b .两者都影响;

C.除了SAHF·SAHF,POPF,其他什么都不会影响。除了控制标志位之外,其他都不会影响。

三、判断题

() 31.段间调用的子程序必须用伪操作FAR描述为远程过程。

() 32.PC使用位作为最小寻址单位。

() 33.当SRC是一个立即数时,DST可以使用内存寻址。

() 34.您可以使用ORG指令来指定每个逻辑段的偏移地址。

() 35.当loope/loopz等于/零时,会转移到标签上,其退出条件为(CX)=0或ZF=0。

( )36.流行IP

() 37.设327FH和0BFFFH为有符号补码表示,则327FH

() 38.多个模块之间的符号交叉引用应该用伪指令PUBLIC和EXTRN来解释。

( )39.MOV AX,VAR1-VAR2+100

( )40.添加[SI],50

四、程序分析问题

1.图纸1234H

b图纸5678H

推一个

按B

砰的一声

波普湾

试答:(a)=(b)=执行上述程序后。

2.分析下列程序段,

MOV·阿尔,200

SAR AL,1

MOV·布莱

MOV CL,2

特区行政区

添加AL,BL

程序段执行后(BL) = (Al) =怎么样?

3.字符串数据库' ABCDEFGHIJ '

MOV啊,01;从键盘输入字符1~9。

INT 21H

还有AL,0FH

十二月

异或啊,啊

MOV BX,偏移字符串

加上BX,斧头

MOV·布莱,[BX]

MOV啊,02H显示输出

INT 21H

试着回答:

(1)以上程序段的作用是什么?

(2)如果从键盘输入字符‘4’,程序段的结果是什么?

4.有以下程序:

还有阿尔,阿尔

JZ BRCH1

RCR阿尔,1

JZ BRCH2

RCL阿尔,1

INC AL

JZ BRCH3

以上程序运行后,试着回答:

(1)当(Al) =,程序转向BRCH1。

(2)当(al) =,程序转向BRCH2。

(3)当(Al) =,程序转向BRCH3。

5.下面的程序段实现了什么?

DAT1 DB 30 DUP(?)

DAT2 DB 10 DUP(?)

MOV CX,10

MOV·BX,20岁

MOV SI,0

MOV迪,0

下一位:MOV·艾尔,DAT1〔BX〕斯

MOV数据2〔迪〕,铝

公司SI

公司DI

下一次循环

6.执行下面的程序段后,AL的内容是什么?

MOV·BX,00FFH

还有BX,0FFFH

或者BX,0F0FH

异或BX,00FFH

7.执行以下指令后,AX寄存器中的内容是什么?

开始DW 10H,20H,30H,40H,50H

EE1 DW 3

MOV BX,偏移开始

添加BX,EE1

MOV斧,〔BX〕

8.下列程序段的作用是什么?

CMP AL,' A '

JC其他

CMP AL,' Z'+1

JNC其他

JMP信

其他:┇

信:┇

五、填空。

1.假设AX和BX其中一个为正,另一个为负。以下程序段完成将正数发送到PLW单元进行存储。请填写程序中缺少的指令语句。

测试AX,8000H

BX MOV·PLW

JMP完成了

K1:

完成:

2.以下数据段可用:

数据段

STR1分贝' ABCDEFGHIJKL '

EQU伯爵-STR1

缓冲数据库计数DUP(0)

数据结束

下面的程序段是实现将STR1中的所有字符反向传递到BUF缓冲区(即STR1中的第一个字符发送到BUF的最后一个单元,STR1中的最后一个字符发送到BUF的第一个单元)。尝试填写程序中缺少的指令。

MOV SI,偏移量BUF-1

MOV DI,偏移缓冲区

MOV·CX伯爵

__ __

循环:MOVSB

__ __

循环LOP

或者()

不及物动词编程问题

1.编程部分计算SUM = ∑ AI = A1+A2+...+A20,并且已知A1...A20存放在以BUF为头地址的数据区,i=1,每个数据占用两个字节,总和也是两个字节。(要求用循环结构编写,循环控制采用计数控制)。(此题不需要写源程序格式,只需写试题要求的相关指令序列即可。)

2.DAT单元存储一个-9 ~+9的字节数据,0~9的平方值存储在SQRTAB数据区。请直接查表写一个子程序,在SQRTAB中找出DAT单元中数据对应的平方值并发送给SQR单元。并写出主程序的调用方法。

数据段如下:

数据段

DAT DB XXH

SQRTAB DB 0,1,4,9,...81

SQR DB?

数据结束

3.尝试编写一个程序段,将DX和AX中的双字右移四位。

4.定义一个数据区,包含23H、24H、25H、26H四个字符的数据,将该数据区复制20次,并显示复制结果。

2005-2006学年第二学期期末考试汇编语言复习题及参考答案。

填空

1.十进制数369转换成二进制数(1011001)2,转换成十六进制数(171) 10。

2.计算机中的指令由(操作码)和(地址码)组成。

3.8086有20条地址总线,寻址范围为(1M)字节。

4.要执行的下一条指令的地址存储在寄存器(指令指针寄存器)中。

5.写出IBM PC的三个子程序返回的指令(RET)、(IRET)、(IRTD)。

6.汇编语言源程序需要由(汇编)程序汇编,由(连接)程序连接,生成可执行文件。

7.如果一个存储单元的地址表示为2314h: 4132h,那么它的偏移地址=(4132),物理地址=(27272H)。

8.REP指令前缀与()指令一起使用。

9.要查看和修改显示器上存储单元的内容,可以使用DEBUG的(d)和(e)命令。

10.(阿尔)=BFH。如果需要屏蔽0,1位,则执行指令(和AL,3F);如果需要反转位0,1,可以使用指令(XOR AL,3F)。

11.宏汇编适用于程序短、参数多的子功能段;

二、选择题

1.设字长N=16,有符号数7AE9H的补码表示为(d)。

A.9EA7H b . 76C4H c . 8417H d . 7a e9h

2.有符号数3260H与0B425H比较,关系为(c)。

A.等于b .小于c .大于d .无法比较

3.在指令JMP字PTR [BX][DI]中传送的目标地址是(A)。

A.16 d x(直布罗陀)+(BX)+(直布罗陀)

C.16d x(SS)+(BX)+(迪)

4.在指令MOV AX[1000h]中,源操作数的寻址方式是(b)。

A.立即寻址b .直接寻址c .段内间接寻址d .寄存器寻址

5.存储在中断向量表中的是(D)

A.中断类型号b .断点地址c .中断服务程序d .中断服务程序入口地址

6汇编语言指令系统中的条件转移指令。8086可以使程序转移到(a)

A.b段中的任何地方,其中指令的偏移地址是-32768 ~+32767。

C.d .段外,此指令的偏移地址为-128~+127。

7.可以定义ASCII码字符串的数据定义语句是(D)

A.DB,DW,DD,DQ,DT B. DB,DW,DD C. DB,DW D. DB

8.如果(AL)=87H,则S、Z、C、O、P在加AL 0F5H后的状态为(C)。

A.SF=0,ZF=0,CF=1,OF=1,PF=0 B.SF=1,ZF=0,CF=1,OF=0,PF=1

C.SF=0,ZF=0,CF=0,OF=1,PF=0 D.SF=1,ZF=0,CF=1,OF=1,PF=1

9.比较指令CMP( D)

A.专用于有符号数比较

C.专用于字符串比较d .不区分比较的对象是有符号的还是无符号的。

10.数据传输指令对标志位的影响是(D)

A.不影响;b .两者都影响;

C.除了POPF的SAHF·SAHF什么都没有。除了控制标志位之外,什么都没有。

三、判断题

() 31.段间调用的子程序必须用伪操作FAR描述为远程过程。T

() 32.PC使用位作为最小寻址单位。F

() 33.当SRC是一个立即数时,DST可以使用内存寻址。F

() 34.您可以使用ORG指令来指定每个逻辑段的偏移地址。T

() 35.当loope/loopz等于/零时,会转移到标签上,其退出条件为(CX)=0或ZF=0。T

( )36.流行IP F

() 37.设327FH和0BFFFH为有符号补码表示,则327FH

() 38.多个模块之间的符号交叉引用应该使用伪指令PUBLIC和EXTRN来解释t。

( )39.MOV AX,VAR1-VAR2+100 F

( )40.添加[SI],50°F

四、程序分析问题

1.图纸1234H

b图纸5678H

推一个

按B

砰的一声

波普湾

试答:(a) = 5678h,(b) = 1234h以上程序段执行后。

2.分析下列程序段,

MOV·阿尔,200

SAR AL,1

MOV·布莱

MOV CL,2

特区行政区

添加AL,BL

程序段执行后(BL) = 0e4h (Al) = 0ddh怎么样?

3.字符串数据库' ABCDEFGHIJ '

MOV啊,01;从键盘输入字符1~9。

INT 21H

还有AL,0FH

十二月

异或啊,啊

MOV BX,偏移字符串

加上BX,斧头

MOV·布莱,[BX]

MOV啊,02H显示输出

INT 21H

试着回答:

(1)以上程序段的作用是什么?根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示字符串中的哪个字符。

(2)如果从键盘输入字符‘4’,程序段的结果是什么?显示屏显示字符“d”

4.有以下程序:

还有阿尔,阿尔

JZ BRCH1

RCR阿尔,1

JZ BRCH2

RCL阿尔,1

INC AL

JZ BRCH3

以上程序运行后,试着回答:

(1)当(Al) = (Al) = 0时,程序转向BRCH1。

(2)当(Al) = (Al) = 1时,程序转向BRCH2。

(3)当(Al) = (Al) =-1时,程序转向BRCH3。

5.下面的程序段实现了什么?将从DAT1+20存储单元开始的10字节移动到从DAT2开始的10存储单元。

DAT1 DB 30 DUP(?)

DAT2 DB 10 DUP(?)

MOV CX,10

MOV·BX,20岁

MOV SI,0

MOV迪,0

下一位:MOV·艾尔,DAT1〔BX〕斯

MOV数据2〔迪〕,铝

公司SI

公司DI

下一次循环

6.执行下面的程序段后,AL的内容是什么?0F00H

MOV·BX,00FFH

还有BX,0FFFH

或者BX,0F0FH

异或BX,00FFH

7.执行以下指令后,AX寄存器中的内容是什么?3000小时

开始DW 10H,20H,30H,40H,50H

EE1 DW 3

MOV BX,偏移开始

添加BX,EE1

MOV斧,〔BX〕

8.下列程序段的作用是什么?判断铝的含量。如果是从' a '到' z '的大写字母,程序会转到字母,否则会转到其他。

CMP AL,' A '

JC其他

CMP AL,' Z'+1

JNC其他

JMP信

其他:┇

信:┇

五、填空。

1.假设AX和BX其中一个为正,另一个为负。以下程序段完成将正数发送到PLW单元进行存储。请填写程序中缺少的指令语句。

测试AX,8000H

JE K1或JZ K1

BX MOV·PLW

JMP完成了

K1: MOV PLW,AX

完成:

2.以下数据段可用:

数据段

STR1分贝' ABCDEFGHIJKL '

EQU伯爵-STR1

缓冲数据库计数DUP(0)

数据结束

下面的程序段是实现将STR1中的所有字符反向传递到BUF缓冲区(即STR1中的第一个字符发送到BUF的最后一个单元,STR1中的最后一个字符发送到BUF的第一个单元)。尝试填写程序中缺少的指令。

MOV SI,偏移量BUF-1

MOV DI,偏移缓冲区

MOV·CX伯爵

__ CLD__

循环:MOVSB

__ SUB SI,2__

循环LOP

Or(标准/添加DI,2)

不及物动词编程问题

1.编程部分计算SUM = ∑ AI = A1+A2+...+A20,并且已知A1...A20存放在以BUF为头地址的数据区,i=1,每个数据占用两个字节,总和也是两个字节。(要求用循环结构编写,循环控制采用计数控制)。(此题不需要写源程序格式,只需写试题要求的相关指令序列即可。)

节目片段:MOV AX,0

MOV BX,抵消BUF

MOV·CX,20岁

洛浦:加斧,[BX]

BX公司

BX公司

循环LOP

MOV苏姆,斧头

2.DAT单元存储一个-9 ~+9的字节数据,0~9的平方值存储在SQRTAB数据区。请直接查表写一个子程序,在SQRTAB中找出DAT单元中数据对应的平方值并发送给SQR单元。并写出主程序的调用方法。

数据段如下:

数据段

DAT DB XXH

SQRTAB DB 0,1,4,9,...81

SQR DB?

数据结束

堆栈1段对位堆栈

DW 20H DUP(?)

堆栈1结束

代码段

假设CS:CODE,DS:DATA,SS:STACK1

开始:MOV斧,数据

MOV DS,AX

呼叫SUBROT

MOV啊,4CH

INT 21H

SUBROT过程

推斧

推BX

李·BX,SQRTAB

MOV·阿勒达特

试验铝,80小时

下一个是JNS

阴性铝

下一个:XLAT SQRTAB

MOV·SQR

波普·BX

爆破筒

浸水使柔软

代位ENDP

代码结束

结束SRART

3.尝试编写一个程序段,将DX和AX中的双字右移四位。

MOV CL,04

石斧,CL

MOV边界

SHR DX,CL

中国上海

还是BL啊

4.定义一个数据区,包含23H、24H、25H、26H四个字符的数据,将该数据区复制20次,并显示复制结果。

数据段

模式DB 23H,24H,25H,26H

显示DB 80 DUP('),' $ '

日期结束

代码段

CLD

LEA SI,模式

李迪,展示

MOV·CX,80岁

代表MOVSB

MOV啊,09H

LEA DX,显示

INT 21H

浸水使柔软

代码结束