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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  浮躁10次=fool 浮躁20次=fathead 浮躁30次=stupid 浮躁40次=pig
  • 『姓名』:small liu
  • 『性别』:男『发送消息
  • 个人说明:我现在浮躁 指数4
  • 详细信息『加为好友』
学习动态
友情链接

[2009-06-16 11:14] 试验十五完成的郁闷啊!

图片载入中
;pdf 295 试验15 安装int9中断效果为放开a键时满屏显示A
;TMD完成的郁闷!没抄书上独立完成的,本来代码写完就直接实现,谁知道把cld和std混淆了好好的心情就这么没了!
assume cs:code

code segment
start :

       mov ax,0
       mov es,ax

       push es:[9*4]
       pop  es:[200H]
       push es:[9*4+2]
       pop  es:[202H]
;复制原int9中断程序入口地址 到 0:200H dword单元
             
       cli
       mov word ptr es:[9*4],204H
       mov word ptr es:[9*4+2],0
       sti
;设置新int9中断程序入口地址为0:204H
       
       mov cx,offset int9end- offset int9start
       mov ax,cs
       mov ds,ax
       mov si,offset int9start
       mov di,204H   ;(es=0)
       cld
       rep movsb
;进行安装

       mov ax,4c00h
       int 21h


int9start: 
       pushf
       call dword ptr cs:[200h] 
;调用原int9中断例程

       push ax
       push cx
       push es
       push di

       in al,60H
       cmp al,1EH+80H
       jne return

       mov cx,2000
       mov ax,0b800H
       mov es,ax
       mov di,0
show_A:mov byte ptr es:[di],'A'
       add di,2 
       loop show_A

return:pop di
       pop es
       pop cx
       pop ax
       iret

int9end:nop



code ends
end start
评论次数(2)  |  浏览次数(1568)  |  类型(汇编作业) |  收藏此文  | 

[  游客   发表于  2009-06-16 11:35  ]

没抄书上独立完成的
============
好,要的就是这个劲头!!
郁闷之后,想必收获颇丰吧。
顶博主!

[  游客   发表于  2009-06-19 20:59  ]

苍天弄人,亦成人
支持博主

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