汇编网首页登录博客注册
xxie的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
友情链接

[2015-03-03 13:28] 实验15

ASSUME    CS:CODE,SS:STACK
       STACK  SEGMENT
              DB        20H DUP (0)
       STACK  ENDS
        CODE  SEGMENT
      START:  MOV       AX,STACK
              MOV       SS,AX
              MOV       SP,20H
              PUSH      CS
              POP       DS
              MOV       SI,OFFSET INT9
              MOV       AX,0
              MOV       ES,AX
              MOV       DI,204H
              PUSH      ES
              PUSH      DI
              MOV       CX,OFFSET INT9END-OFFSET INT9
              CLD
              REP       MOVSB

              PUSH      ES:[9*4+2]
              PUSH      ES:[9*4]
              POP       ES:[200H]
              POP       ES:[202H]
              CLI
              POP       ES:[9*4]
              POP       ES:[9*4+2]
              STI

              MOV       AX,4C00H
              INT       21H

       INT9:  PUSH      AX  ;int9例程开始
              PUSH      CX
              PUSH      ES
              PUSH      DI

              IN        AL,60H

              CMP       AL,9EH     ;判断扫描码是否为a的断码,不是则直接交给原int9例程处理
              JNE       INT9_FD

              MOV       AX,0B800H    ;对扫描码是a的断码的情况进行处理
              MOV       ES,AX
              MOV       DI,0

              MOV       AL,'A'
              MOV       AH,00000111B
              MOV       CX,4000
     INT9_F:  MOV       ES:[DI],AX   ;循环
              ADD       DI,2
              LOOP      INT9_F

    INT9_FD:                         ;交付原中断例程处理
              PUSHF
              CALL      DWORD PTR CS:[200H]

              POP       DI
              POP       ES
              POP       CX
              POP       AX
              IRET                   ;返回
    INT9END:  NOP

        CODE  ENDS
              END       START
评论次数(0)  |  浏览次数(383)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码