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

我的博客

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

[2012-10-18 22:15] 实验十五

assume    cs:code
        code  segment
      start:
              mov       ax,cs
              mov       ds,ax
              mov       si,offset begin
              mov       ax,0
              mov       es,ax
              mov       di,204h
              mov       cx,offset over - offset begin
              cld
              rep       movsb
;修改向量表
              mov       ax,es:[9*4]
              mov       es:[200h],ax
              mov       ax,es:[9*4+2]
              mov       es:[202h],ax            ;保存了int9的向量表
              
              cli
              mov       ax,204h
              mov       es:[9*4],ax
              mov       ax,0
              mov       es:[9*4+2],ax
              sti
;退出
              mov       ax,4c00h
              int       21h
;中断处理程序        
      begin:
              push      ax
              push      ds
              push      si
              push      cx          ;保护现场
              
              in        al,60h
              
              pushf
              call      dword ptr cs:[200h]

              cmp       al,9eh
              jne       return
              
              mov       ax,0b800h
              mov       ds,ax
              mov       si,0        ;ds:si指向显存
              mov       al,'A'
              mov       cx,2000     ;循环次数
          s:
              mov       [si],al
              mov       ah,2
              mov       [si+1],ah
              add       si,2
              loop      s
     return:
              pop       cx          ;恢复现场
              pop       si
              pop       ds
              pop       ax
              iret
       over:  nop
        code  ends
              end       start
评论次数(3)  |  浏览次数(247)  |  类型(汇编作业) |  收藏此文  | 

[  fpamc   发表于  2012-10-19 08:13  ]

对的,

[  fpamc   发表于  2012-10-19 08:16  ]

mov word ptr es:[9*4],204h
              mov word ptr es:[9*4+2],0

里面有两处可以合并成这样的,

[  youthangel   发表于  2012-10-19 14:40  ]

恩恩,课本上是那么写的。我感觉可读性比较差而且没必要这么节省空间。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码