简答题
1.根据下面给定的条件回答相应的问题:
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中,写出其相应指令;(同6.(1))
(2)用直接寻址方式将首地址为ARRAY的字数组中第5个数送往寄存器BX中,写出其相应指令;
(3)试回答下面两个语句的区别:
X1  EQU  1000H
X2 = 1000H
(4)指令MOV  AL,CX是否正确,如果错误请说明原因。
答:(1)ADD DX,BX  (2)MOV BX,ARRAY+8  (3)X1不能多次赋值,X2可以多次赋值  (4)是错的,因为长度不一样。
2.试以生成HELLO程序为例,写出汇编语言程序上机过程,并用DEBUG命令对其进行调试,要求每步必须写出所操作的文件名的后缀。
答:1)用MASM程序产生OBJ文件MASM HELLO.ASM
2)用LINK程序生成EXE文件LINK HELLO.OBJ
3)运行生成的EXE文件 HELLO.EXE
4)用DEBUG命令对其进行调试 DEBUG HELLO.EXE
3.给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1)立即寻址;(2)直接寻址;(3)使用BX的间接寻址;(4)相对基址变址寻址。
参考原题:P107习题3.1
答:(1) 没有有效地址;
(2) EA=D=7237H;
(3) EA=(BX)=637DH;
(4) EA=(BX)+(SI)+D=1004FH;超过了段的边界,最高进位位丢失,因此          EA=004FH。
4.在8086/8088指令系统中,按寻址方式分类,指令操作数分成哪几类?各举一例说明(至少写出5种)。
答:按指令操作分类,指令操作数分为七类:
1、立即数寻址方式        例如:MOV BX,0A47H
2、寄存器寻址方式        例如:MOV DS,AX
3、直接寻址方式          例如:MOV AX,ARRY
4、寄存器间接寻址方式    例如:MOV AX,[BX]
5、寄存器相对寻址方式    例如:MOV AX,A[BX]
6、基址变址寻址方式      例如;MOV [BX+SI],DA1
7、相对基址变址寻址方式  例如:MOV BYTE PTR TABZ[BP][DI],CL
5.假设DS=2000H,BX=0100H,[20100H]=30H ,[20101H]=10H,问:
(1)执行MOV  DX,[BX]  DX=__________________
执行LEA  DX,[BX]  DX=__________________
答:因为PA=DS*10H+BX=20100H。所以,执行MOV DX,[BX]后,DX=DS:[BX]=1030H,执行LEA DX,[BX]后,DX=BX=0100H.
(2)简述两条指令区别。
答: 两条指令区别,MOV DX,[BX]是获得[BX]存储单元的值,LEA DX,[BX]是获得[BX]存储单元的有效地址。
6.试根据以下要求写出相应的汇编语言指令:(参考原题:p107习题3.2)
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中;
    ADD DX, BX
(2)用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中;
    ADD AL, [BX][SI]
(3)用寄存器BX和位移量DB2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中;
    ADD [BX][0B2H], CX
(4)用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回该存储单元中;
    MOV AX,2A59H   ADD [0524H] ,AX (或ADD WORD PTR [0524H], 2A59H)
(5)把数0B5H与(AL)相加,并把结果送回Al中。
    ADD AL, 0B5H
7.如TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,指令执行完后AX寄存器的内容是什么?
MOV  AX,TABLE  AX=__________
LEA  AX, TABLE  AX=__________
参考原题:p108习题3.10
答:MOV AX, TABLE是将TABLE单元的内容送到AX,(AX)=1234H
LEA AX,TABLE是将TABLE单元的有效地址送到AX,(AX)=0032H
8.下列语句在存储器中分别为变量数据区分配多少个字节单元?
(1)VAR3  DD  10
答:VAR3变量数据区分配了:4B
(2)VAR4  DW  4  DUP(2),2
答:VAR4变量数据区分配了:2*(4+1)B=10B
9.分别说明下列两组指令中两条指令操作的相同点和不同点:
(1)SUB  AX,BX  CMP  AX,BX
答:相同点:SUBCMP都计算AX-BX,并根据计算结果影响标志位;
不同点:SUB指令把计算结果存放在目的操作数中,CMP汇编指令有多少个指令不保存计算结果。
(2)AND  CX,DX  TEST  CX,DX
答:略
10.设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,[232F7H]=3280H。下列指令分别执行后,IP的值各是多少?
(1)JMP  BX    IP=___________
(2)JMP  TABLE[BX]    IP=____________
答:(1)1256H;(2)3280H
11.指出下列指令的错误:
(1)MOV  AH,BX
(2)MOV  [BX],[SI]
(3)MOV  CS,AX
答:(1)MOV AHBX 源操作数与目的操作数长度不相同
  (2)MOV [BX][SI] 这是两个内存单元在传递数据,而这在汇编语言中是不允许的
  (3)MOV CSAX 不能对CS赋值
12.已知数据段定义如下:
    DATA    SEGMENT
    DRG      100H
    BUF      DWCD,1,3 DUP(4,2 DUP(8,6))
    VRA      DB  4AH
    DATA    ENDS
单独执行下列语句:
    LEA      BX,BUF    BX=________
    MOV    CX,VAR-BUF  CX=________
答:BX=OFFSET BUF =0100H
CX=VRA-BUF=34D=22H
13. 8086/8088系统中,存储器是分段组织的,按各段实际长度定位。已知DS=2150HCS=2640HSS=2250HSP=100H,问题:
1)数据段起始地址是多少?
PA=DS*10H+0H=21500H
2)计算数据段中最多可以存放多少个字节数据?(要有具体计算式) MAXSIZE=SS*10H-DS*10H=1000H
3)代码段最多可以存放多少个字节程序代码?说明理由。
代码段最多可以存放64KB的程序代码,因为一个最大不能超过64KB
程序分析题
1.执行下面的程序段后,说出该段程序的功能:
    MOV    CX,10
    LEA    SI,First
    LEA    DI,Second
    REP    MOVSB
答:将源串First10个字节搬移至目标串Second
2.试说出该程序所实现的功能:
      LEA      SI,ARRAY
      XOR    AX,AX
      MOV    BX,AX
      MOV    DX,AX
      MOV    CX,N
      SHR      CX,1
@801:MOV    AX,[SI]
      CMP    AX,0
      JZ      @802
      JNS      @803
      INC      DL
      JMP      @804
@802:INC      BH
      JMP      @804
@803:INC      BL
@804:ADD    SI,2
      LOOP    @801
      HLT
答:统计以ARRAY为起始地址的数据区中正数、负数和零的个数。
3.MOV    AX,9090H
  SUB    AX,4AE0H
  JC      L1
  JD      L2
  JMP      L3
上述程序执行后AX=________,程序转向_________。
答:45B0H ,L2
4.ADR  DW  1234H,5678H
       
LEA  SI,ADR
LDS  BX,ADR
设变量ADR的偏移地址是100H,上述两条指令执行后:SI=________,BX=_________。
答:SI=0100H, BX= 1234H
5.下面程序段执行完以后,BX的内容是什么?
    MOV    BX,00FFH
    AND    BX,0FFFH
    OR      BX,0F0FH
    XOR    BX,00FFH
答:BX=0F00H
6.执行下列指令,AX寄存器中的内容是什么?
TABLE  DW  10,20,30,40,50
ENTRY  DW  3
MOV    BX,OFFSET TABLE
ADD    BX,ENTRY
MOV    AX,[BX]
参考原题:p108习题3.11
答:(AX)=1E00H (TABLE的存储方式如右图所示)
7.设寄存器AX,BX,CX中的内容都是1234H,变量value中的内容为0F0FH,执行下列指令序列:

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