汇编语言程序设计试题及复习资料合集.docx

上传人:b****4 文档编号:3666332 上传时间:2022-11-24 格式:DOCX 页数:12 大小:20.05KB
下载 相关 举报
汇编语言程序设计试题及复习资料合集.docx_第1页
第1页 / 共12页
汇编语言程序设计试题及复习资料合集.docx_第2页
第2页 / 共12页
汇编语言程序设计试题及复习资料合集.docx_第3页
第3页 / 共12页
汇编语言程序设计试题及复习资料合集.docx_第4页
第4页 / 共12页
汇编语言程序设计试题及复习资料合集.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

汇编语言程序设计试题及复习资料合集.docx

《汇编语言程序设计试题及复习资料合集.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计试题及复习资料合集.docx(12页珍藏版)》请在冰豆网上搜索。

汇编语言程序设计试题及复习资料合集.docx

汇编语言程序设计试题及复习资料合集

汇编语言程序设计试题及答案

1.对于有符号的数来说,下列哪个值最大(D)

A:

0F8HB:

11010011B

C:

82D:

123Q

2.下列有关汇编语言中标号的命名规则中,错误的是(D)

A:

通常由字母打头的字符、数字串组成

B:

标号长度不能超过31个字符

C:

和$不能单独作为标号

D:

.号不可位于标号首

3.8088/8086存储器分段,每个段不超过(D)

A.64K个字B.32K个字节

C.1兆个字节D.64K个字节

4.寻址指令MOVCX,[BX+DI+20]使用的是哪一种寻址方式(B)

A:

寄存器寻址B:

相对基址变址寻址

C:

变址寻址D:

基址变址寻址

5.若AX=-15要得到AX=15应执行的指令是(A)

A.NEGAXB.NOTAX

C.INCAXD.DECAX

6.8086/8088系统执行传送指令MOV时(A)

A.不影响标志位B.影响DF方向标志

C.影响SF符号标志D.影响CF进位标志

7.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用(B)

A:

NOTB:

ORC:

ANDD:

XOR

8.下列指令中段默认为堆栈段的是(C)

A.MOVAX,[BX+SI+10]B.ADDAX,ES:

[SI]

C.SUB[BX],[BP][DI]D.MOVDX,[1000H]

9.关于8086/8088微机系列,下列说法哪个是正确的(D)

A:

一个存储单元由16个二进制位组成,简称字。

B:

当存储一个字数据时,低字节放高地址位,高字节放低地址位。

C:

在内存空间中,可以无限分配段,且段的大小不受限制。

D:

段与段之间可以邻接,也可以重叠。

10.下列关于堆栈的说法,错误的是(D)

A:

以“先入后出”为原则。

B:

栈区最高地址单元的前一个单元为栈底。

C:

运行中SP寄存器动态跟踪栈顶位置。

D:

压栈和弹出都是以字节为单位。

11.表示过程定义结束的伪指令是(A)

A.ENDPB.ENDSC.ENDD.ENDM

12.BUF1DB3DUP(0,2DUP(1,2),3)

COUNTEQU$-BUF1

符号COUNT等价的值是(B)

A.6B.18C.16D.9

13.下列标志位中,可以用来判断计算结果正负的是(B)

A:

PFB:

SFC:

DFD:

OF

14.下列指令正确的是(CD)

A.MOV[100H],[BX]B.MOVDS,ES

C.ADDV[BX],CXD.MOVAX,34H

15.下列哪个寄存器是属于指针寄存器(C)

A:

SIB:

DXC:

SPD:

ES

二、填空题(每小题4分,共20分)

1.下列程序段求数组FLD的平均值,结果在AL中。

请将程序填写完整(不考虑溢出)

FLDDW10,-20,30,-60,-71,80,79,56

_LEASI,FLD______

MOVCX,8

XORAX,AX

R1:

__ADDAX,[SI]_____

ADDSI,2

LOOPR1

MOVCL,8

IDIVCL

HLT

2.MOVAX,1090H

SUBAX,4AE0H

JCL1

JOL2

JMPL3

上述程序执行后AX=___C5B0____,程序转向_____L1__

3.假设寄存器AX=1234H,DX=0A000H

MOVBX,0

MOVCX,BX

SUBCX,AX

SBBBX,DX

MOVAX,CX

MOVDX,BX

上述程序段执行后AX=___0EDCCH____,DX=__5FFFH_____

4.MOVAX,234H

MOVCL,3

ROLAX,CL

DECAX

MOVCX,4

MULCX

此段程序执行完后,(AX)=___467CH____,(CX)=_____4__

5.DA1 DB83H,72H,61H,94H,5AH

   ┇

    MOVCX,WORDPTR[DA1]

    ANDCX,0FH

    MOVAL,[DA1+3]

    SHLAL,CL

 上述指令序列执行后,AL=___0A0H____,CL=___03H____。

三、简答题(每小题4分,共20分)

1.如TABLE为数据段中0100单元的符号名,其中存放的内容为0FF00H,试问以下两条指令有什么区别?

指令执行后,AX寄存器的内容是什么?

MOV  AX,TABLE

MOV  AX,OFFSET  TABLE

2.对于下面的数据定义

TAB1  DW  10  DUP(?

TAB2  DB  10  DUP(?

TAB3  DB  ‘1234’

      ┇

 MOV  AX,SIZE  TAB1

  MOV  BL,SIZE  TAB2

 MOV  CL,SIZE TAB3

三个寄存器中值分别为多少?

4.已知某个人计算机0000:

0080~0000:

00B0区域的内容如下:

0000:

0080CCA1C8008089A898654335231245C400

0000:

0090A478985690000078490328B7B89CA2B8

0000:

00A0CCA1C3008089A898654335231245C400

0000:

00B02A1BC80400331123DC4154BB90453301

试求执行软中断指令INT23H时,系统将转移到哪里进入中断服务程序。

5.试计算逻辑地址4017:

000A,4015:

0002A和4010:

0007A对应的物理地址。

这三个物理地址说明了什么问题?

四、编程题(每小题30分,共30分)

1.试编制一程序,统计DT_W字数组中正数、负数和0的个数,并分别保存在C1,C2和C3变量中。

汇编语言程序设计试题及答案

一.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。

1.逻辑地址:

逻辑地址由两个16位的地址分量构成,其中一个为段基值,另一个为偏移量,两个分量均为无符号数编码。

物理地址=段基值×16+偏移量

2.物理地址:

CPU通过地址总线向外发送的20位地址,在访问内存单元前,CPU必须先将CPU内部的逻辑地址转换为物理地址。

3.标志寄存器:

标志寄存器(FlagRegister)又称程序状态字(ProgramStatusWord),是8086/088中唯一按位操作的寄存器,该寄存器为16位,有效的标志位共9位。

其中,CF,PF,AF,ZF,SF,OF为状态标志,用于反映最近一次影响标志位的算术或逻辑运算中运算过程、运算结果的一些性质;TF,IF,DF为控制标志,用于控制CPU对某些特定事件的处理方式以及CPU的工作模式。

4.存储器寻址方式:

发生在指令的执行周期,需要在执行周期内单独启动总线操作来完成。

比寄存器寻址、立即数寻址速度都慢。

5.补码:

计算机系统内部用于表示带符号数的一种编码,正整数的补码为其真值本身,负整数的补码为其真值变反加1的结果。

二.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。

1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?

解:

二进制为01100100B,十六进制为64H。

2.假设(DS)=0B00H,(BX)=0210H,对于指令MOVDS:

120H[BX],AL,其目的操作数的物理地址为多少?

解:

EA=(BX)+0120H=0330H,物理地址=(DS)*16+EA=B330H

3.假设(BX)=0210H,(DI)=0060H,对于指令ADDDL,[BX][DI],其源操作数的偏移量为多少?

解:

偏移量=(BX)+(DI)=0270H

4.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=?

解:

(SP)=0060H–5*2=0060H-000AH=0056H

5.对于一个十进制数–65,其二进制补码表示形式为多少?

解:

先求二进制真值-01000001,变反加一补码为10111111

三.排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2分,分析正确给3分,判断错误不给分。

1.PUSH5588H错误,操作数不能用立即数;

2.MOVDS,1720H错误,MOV指令不能对段寄存器直接传送立即数;

3.ADDAX,CL错误,寄存器长度不匹配;

4.ANDAX,[DX]错误,DX不用于存储器寻址。

四.程序分析题(本大题共6小题,每小题5分,共30分)每小题列出了一段小的程序片段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果。

(寄存器中的内容请使用十六进制形式给出)

1.阅读如下程序片段

MOVAL,4CH

MOVBL,0B5H

ADDAL,BL

执行上述程序片段后,(AL)=01H(1分),(BL)=0B5H(1分),

CF=1(1分),OF=0(1分),PF=0(1分)

2.阅读如下程序片段

MOVAL,0F3H

MOVDL,0C4H

ADDAL,DL

ANDAL,0FH

执行上述程序片段后,(AL)=07H(1分),(AF)=不确定(1分),

CF=0(1分),OF=0(1分),PF=0(1分)

3.阅读如下程序片段

MOVAL,7EH

MOVCL,04H

ROLAL,CL

执行上述程序片段后,(AL)=0F9H(2分),(CL)=04H(1分),

CF=1(1分),OF=无意义(1分)

4.阅读如下程序片段

MOVAX,0632H

MOVBX,0C202H

SUBAX,BX

INCAX

执行上述程序片段后,(AX)=4431H(2分),(CF)=1(2分),

OF=0(1分)

5.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28H

MOVBX,0024H

LEABX,[BX]

ORBX,0

ADCBX,[BX]

执行上述程序片段后,(BX)=287AH(3分),(CF)=0(2分),

OF=0(1分)

6.阅读如下程序片段,假设(SP)=0064H

MOVAX,0001H

MOVBX,0002H

PUSHAX

PUSHBX

POPAX

POPBX

执行上述程序片段后,(AX)=0002H(2分),(BX)=0001H(2分),

(SP)=0064H(1分)

五.程序设计题(本大题共2小题,第一小题7分,第二小题8分,共15分)

1.试编写一程序片段,实现BL高4位与低4位相互交换(7分)

解:

MOVCL,4;

ROLBL,CL

2.试编写一程序片段,不使用乘除法指令,实现((AX)*5+14)/2的功能(AX中的数据理解为补码)(8分)

解:

MOV BX,AX

MOV CX,2

SALAX,CX

ADDAX,BX

ADDAX,14

SARAX,1

汇编语言程序设计试题及答案

六.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。

6.寄存器:

计算机系统内,位于CPU内部的存储单元,CPU访问此类存储单元不需要使用总线。

7.物理地址:

CPU通过地址总线向外发送的20位地址,在访问内存单元前,CPU必须先将CPU内部的逻辑地址转换为物理地址。

8.段基值:

逻辑地址的一个组成部分,用于指示一个段在内存中的起始地址。

9.寻址方式:

指令获取操作数的方式。

10.补码:

计算机系统内部用于表示带符号数的一种编码,正整数的补码为其真值本身,负整数的补码为其真值变反加1的结果。

七.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。

6.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?

答案:

二进制为01100100B,十六进制为64H

7.假设(DS)=0C00H,(BX)=0210H,对于指令MOVDS:

100H[BX],AL,其目的操作数的物理地址为多少?

答案:

EA=(BX)+0100H=0310H,物理地址=(DS)*16+EA=0C000H+0310H=0C310H

8.假设(BX)=0100H,(SI)=0020H,对于指令ADDDL,[BX][SI],其源操作数的偏移量为多少?

答案:

EA=(BX)+(SI)+0=0120H

9.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=?

答案:

每执行一条PUSH指令,(SP)被减2,因此执行5条PUSH指令后,(SP)=0060H–5*2=0060H-000AH=0056H

10.对于一个十进制数–80,其二进制补码表示形式为多少?

答案:

首先求得二进制真值为–01010000B,负数补码为变反加1的结果,即10110000B

八.排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2分,分析正确给3分,判断错误不给分。

5.MOVCS,0600H

参考答案:

错误,不能使用MOV指令传递立即数给CS

6.PUSH074CH

参考答案:

错误,单操作数指令不能使用立即数

7.ADDAX,CL

参考答案:

错误,寄存器长度不匹配

8.ORBX,[CX]

参考答案:

错误,CX不能用于存储器寻址

九.程序分析题(本大题共6小题,每小题5分,共30分)每小题列出了一段小的程序片段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果。

(寄存器中的内容请使用十六进制形式给出)

7.阅读如下程序片段

MOVAL,4CH

MOVBL,86H

ADDAL,BL

执行上述程序片段后,(AL)=0D2H(1分),(BL)=86H(1分),

CF=0(1分),OF=0(1分),PF=1(1分)

8.阅读如下程序片段

MOVAL,0F3H

MOVDL,0C4H

ADDAL,DL

ANDAL,0FH

执行上述程序片段后,(AL)=07H(1分),(AF)=不确定(1分),

CF=0(1分),OF=0(1分),PF=0(1分)

注意:

逻辑运算指令中,除NOT指令外,CF、OF均置0,AF为不确定

9.阅读如下程序片段

MOVAL,6FH

MOVCL,04H

ROLAL,CL

执行上述程序片段后,(AL)=0F6H(2分),(CL)=04H(1分),

CF=0(1分),OF=不确定(1分)

注意:

移位指令中,当指令的移位次数大于1时,OF为不确定

10.阅读如下程序片段

MOVAX,0632H

MOVBX,0C202H

SUBAL,BL

SBBAH,BH

INCAX

执行上述程序片段后,(AX)=4431H(2分),(CF)=1(2分),

OF=0(1分)

注意:

INC指令不影响CF标志位

11.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28H

MOVBX,0024H

LEABX,[BX]

ANDBX,0FFH

ADCBX,[BX]

执行上述程序片段后,(BX)=287AH(3分),(CF)=0(2分),

OF=0(1分)

12.阅读如下程序片段,假设(SP)=0064H

MOVAX,0001H

MOVBX,0002H

PUSHAX

PUSHBX

POPAX

POPBX

执行上述程序片段后,(AX)=0002H(2分),(BX)=0001H(2分),

(SP)=0064H(1分)

一十.程序设计题(本大题共3小题,每小题5分,共15分)(注:

不是唯一答案)

3.试编写一程序片段,实现BL高4位与低4位相互交换(5分)

参考解答:

MOVCL,4

ROLBL,CL

 

4.试编写一程序片段,不使用乘除法指令,实现((AX)*5+14)/2的功能(AX中的数据理解为补码)(5分)

参考解答:

MOVBX,AX

MOVCL,2

SALAX,CL

ADDAX,BX

ADDAX,14

SARAX,1

5.试编写一完整程序,实现88242567H与0A435C218H两个32位无符号数相加的功能。

(要求编写完整源程序,含程序框架)(5分)

参考解答:

DATASEGMENT

VAR1DD88242567H

VAR2DD0A435C218H

VAR3DD?

DATAENDS

STACK1SEGMENTSTACK

DW40HDUP(0)

STACK1ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK1

BEGIN:

MOVAX,DATA

MOVDS,AX

MOVAX,VAR1

ADDAX,VAR2

MOVVAR3,AX

MOVAX,VAR1+2

ADCAX,VAR2+2

MOVVAR3+2,AX

MOVAH,4CH

INT21H

CODEENDS

ENDBEGIN

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1