汇编语言程序设计试题及答案
1.对于有符号的数来说,下列哪个值最大(D)
A:0F8H                                                                      B:11010011B 
C:82                                                  D:123Q
2.下列有关汇编语言中标号的命名规则中,错误的是(D)
A:通常由字母打头的字符、数字串组成
B:标号长度不能超过31个字符
C:?和$不能单独作为标号
D: .号不可位于标号首
3.8088/8086存储器分段,每个段不超过(D )
A.64K个字                                  B。32K个字节
C.1兆个字节                                    D.64K个字节
4.寻址指令MOV  CX, [BX + DI + 20]使用的是哪一种寻址方式(B)
A:寄存器寻址                            B:相对基址变址寻址
C:变址寻址                            D:基址变址寻址
5.若AX= - 15要得到AX=15应执行的指令是(A )
A.NEG AX                        B.NOT AX
C。INC AX                        D。DEC AX
6.8086/8088系统执行传送指令MOV时( A)
A.不影响标志位                            B。影响DF方向标志
C。影响SF符号标志                  D.影响CF进位标志
7.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用(B)
A:NOT            B:OR                C:AND            D:XOR 
8.下列指令中段默认为堆栈段的是( C)
A.MOV AX,[BX+SI+10]                    B。ADD  AX,ES:[SI]
C。SUB  [BX],[BP][DI]                D. MOV  DX,[1000H]
9.关于8086/8088微机系列,下列说法哪个是正确的(D)
A:一个存储单元由16个二进制位组成,简称字.
B:当存储一个字数据时,低字节放高地址位,高字节放低地址位.
C:在内存空间中,可以无限分配段,且段的大小不受限制.
D:段与段之间可以邻接,也可以重叠.
10.下列关于堆栈的说法,错误的是(D)
A:以“先入后出"为原则。
B:栈区最高地址单元的前一个单元为栈底。
C:运行中SP寄存器动态跟踪栈顶位置。
D:压栈和弹出都是以字节为单位。
11.表示过程定义结束的伪指令是( A)
A.ENDP        B。ENDS            C.END        D.ENDM 
12.BUF1    DB  3 DUP(0,2 DUP (1,2),3)
COUNT  EQU  $-BUF1
符号COUNT等价的值是( B)
A。6              B.18                    C.16                D.9
13.下列标志位中,可以用来判断计算结果正负的是(B)
A:PF                            B:SF                          C:DF                          D:OF
14.下列指令正确的是( CD)
A. MOV  [100H], [BX]                      B。MOV    DS,  ES       
C. ADD  V[BX], CX                        D.MOV    AX,  34H
15.下列哪个寄存器是属于指针寄存器(C)
A:SI                              B:DX                        C:SP                            D:ES
二、填空题    (每小题4 分,共 20 分)
1.下列程序段求数组FLD的平均值,结果在AL中.请将程序填写完整(不考虑溢出)
FLD DW 10, -20, 30, —60, -71, 80, 79, 56
_LEA  SI,FLD______
MOV CX, 8
XOR AX, AX
R1:__ADD  AX ,[SI]_____
ADD SI, 2
LOOP R1
MOV CL, 8
IDIV CL
HLT
2.MOV  AX,  1090H
SUB  AX,  4AE0H
JC L1
JO L2
JMP L3
上述程序执行后AX=___C5B0____,程序转向_____L1__
3.假设寄存器AX=1234H,DX=0A000H
MOV BX, 0
MOV CX, BX
SUB CX, AX
SBB BX, DX
MOV AX, CX
MOV DX, BX
上述程序段执行后AX=___0EDCCH____ ,DX=__5FFFH_____
4.MOV    AX, 234H
    MOV    CL, 3
    ROL    AX, CL
    DEC    AX
    MOV    CX, 4
    MUL    CX
此段程序执行完后,(AX)= ___467CH____ ,  (CX)= _____4__
5.DA1  DB 83H,72H,61H,94H,5AH
   
    MOV CX,WORD PTR [DA1]
    AND CX,0FH
    MOV AL,[DA1+3]
    SHL AL,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:0080        CC    A1    C8    00    80    89    A8    98    65    43    35    23    12    45    C4    00
0000:0090    A4    78    98    56    90    00    00    78    49    03    28    B7    B8    9C    A2    B8
0000:00A0        CC    A1    C3    00    80    89    A8    98    65    43    35    23    12    45    C4    00
0000:00B0        2A    1B    C8    04    00    33    11    23    DC    41    54    BB    90    45    33    01
试求执行软中断指令INT 23H时,系统将转移到哪里进入中断服务程序。
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.标志寄存器:标志寄存器(Flag Register)又称程序状态字(Program Status Word),
是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,对于指令MOV  DS:120H[BX],AL,其目的操作数的物理地址为多少?
解:EA=(BX)+0120H=0330H,物理地址=(DS)*16+EA=B330H
3.假设(BX)=0210H,(DI)=0060H,对于指令ADD  DL,[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.PUSH  5588H          错误,操作数不能用立即数;
2.MOV  DS, 1720H    错误,MOV指令不能对段寄存器直接传送立即数;
3.ADD  AX, CL        错误,寄存器长度不匹配;
4.AND  AX,[DX]        错误,DX不用于存储器寻址。
四.程序分析题(本大题共6小题,每小题5分,共30分)每小题列出了一段小的程序片段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果.(寄存器中的内容请使用十六进制形式给出)
1.阅读如下程序片段
MOV  AL,4CH
MOV  BL,0B5H
ADD  AL,BL
执行上述程序片段后,(AL)=    01H    (1分),(BL)=    0B5H    (1分),
CF=    1    (1分),OF=    0    (1分),PF=    0    (1分)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。