《汇编语言程序设计》模拟题

所属学校:南开大学 科目:汇编语言程序设计 2020-03-28 17:19:05 模拟题 语言程序设计


一、填空:
      1、CPU的指令指针寄存器为:        ,它与       寄存器联用确定下一条指令的物理地址。
      2、若要将所有数据及代码都放在一个段内,应建立                 存储模型。
      3、操作数:ES:TABLE[DI]、FEES[EBX*2]、MSAK[EAX][EBX]分别采用                、
                 、                寻址方式。
      4、读取当前光标位置可使用BIOS INT 10H的                号功能调用,作为出口参数,光标的行号及列号将从                  寄存器中获得。
      5、通常用CPU的                寄存器间接寻址端口地址。
      6、如果在宏定义体设置局部标号,应使用                伪操作以避免在宏展开时出现标号的多重定义。
      7、设(CS)=2A31H,(DS)=9300H,(SS)=25F0H,(BP)=0131H,(SI)=0110H,(DI)=0102H,则指令MOV AX,[BP+SI+8]的源操作数有效地址为________________,物理地址为_________________。
      8、设(AX)=1000H,(BX)=2340H,则在执行了指令CMP AX,BX后,CF标志值为___________,ZF标志值为______________。   
      9、外设的发出中断请求若被CPU响应,有两个条件必不可少,即                        
                            和                                                。
      10、显示字符串可使用DOS 9号功能,它要求被显示的字符串最后一个字符必须是         。  
      11、中断发生时,保存现场将            、            、           寄存器的内容存入堆栈。  
二、选择题
1、        下列寄存器中,(     )可作为基址寄存器。
A、AX       B、BX       C、CX         D、DX
2、        下列指令序列中,清除当前中断请求(EOI)命令为:(    )
A、MOV AL,20H      B、MOV AL,20H      C、MOV AL,21H      D、MOV AL,21H
   OUT 20H,AL         IN AL,20H               OUT AL,21H            IN AL,21H      
3、        段定义时,使用(     )定位类型,则该段必须从小段的边界开始。
A、BYTE     B、WORD     C、DWORD       D、PARA
4、        若:(BX)=4336H,(CX)=0136H指令:SUB BX,CX 执行后,SF、ZF、OF、CF标志分别为(     )
A、0,0,0,0      B、0,1,0,0    C、1,0,0,0       D、0,0,0,1
5、        若:FEES  DW 10 DUP(100,?)
       指令:MOV CX,LENGTH FEES执行后,CX的内容为:(     )
    A、1000    B、1     C、10     D、2000              
三、判断下列指令及伪指令是否正确(在括号中打“√”或“×”):
     1、DIV  20H                           (   )
2、XCHG BX,ES                    (   )
     3、CMP [BX],TABLE[SI]            (   )
4、IN  AL,DX                      (   )
5、MOV  BYTE PTR[BX],25H     (   )
6、MOV CS,0200H                  (   )
7、RET 8                             (   )
8、LEA TABLE,BX                (   )
9、ACL1 MACRO A,B,C         (   )

ACL1 ENDM           
10、NEWP   PROC                 (   )
        ┆
    NEWP   ENDP
四、完成下列指令序列:
1、将数据段中字串STRING1(长度为N),传送到附加段中以BUFF为首地址的缓冲区:
         ┆
         MOV SI,                  
         MOV DI,                  
         MOV CX, N
         CLD
REP                     
     2、分别用一条语句实现下述指明的功能
    (1)变量AYD存放的地址指针送ES和SI                                    
(2)AX的内容加1,要求不影响CF                                      
参考答案:
解:1、OFFSET STRING1     OFFSET BUFF    MOVSW
   2、LES  SI,AYD        INC AX


五、分析计算题:
     1. 设(AX)=201BH,(BX)=110CH,(DI)=0001H,(DS)=4000H,(4110CH)=0AH,(4110DH)=81H,(4110EH)=70H;
则:① MOV AX,[BX]指令执行后,(AX)=                ;
② MOV BH,BYTE PTR[BX+DI+1],指令执行后,(BX)=                 .
2.
         MOV AX,6540H
         MOV DX,3210H
         MOV CL,04
         SHL AX,CL
         MOV BL,AH
         OR DL,BL
     试问上述程序段运行后,
       (AX)=               
       (BL)=               
       (DX)=                  
3、
DATA1 DW 1000H
         DATA2 DW 2000H
             ┆
         PUSH DATA1
         PUSH DATA2
         POP DATA1
         POP DATA2
     问:①上述程序段执行后,(DATA1)=             ,(DATA2)=            .  
         ②设执行前(SP)=200H,执行后(SP)=                .
参考答案:
解:1、810AH      700CH
   2、5400H     54H    3265H
   3、2000H   3000H   200H




六:叙述题:  
调用程序和子程序之间参数传递有哪几种主要方式? 各自的特点是什么?
参考答案:
答:三种方式:寄存器传递方式、存储单元传递方式、堆栈传递方式
   其中,寄存器传递方式快捷而且方便,但参数个数不能过多;存储单元传递对参数个数无要求, 堆栈传递方式对参数个数无要求,适用于子程序多重嵌套及递归调用.


版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: