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

我的博客

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

[2012-10-28 14:35] 实验15, 继续加油...

坚持不住的时候, 再坚持一小下...!

assume cs:code

stack segment

  db 128 dup (0)

stack ends

code segment

   start: mov ax, stack
          mov ss, ax
          mov sp, 128

          push cs
          pop ds
  
          mov ax, 0
          mov es, ax
         
          mov si, offset int9
          mov di, 204h         
 
          mov cx, offset int9end - offset int9          
          cld
          rep movsb

          push es:[9*4]
          pop  es:[200h]
          push es:[9*4+2]
          pop  es:[202h]

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

          mov ax, 4c00h
          int 21h

    int9: push ax
          push bx
          push cx
          push es

          in al, 60h                    ;读出60h端口的数据
   
          pushf                         ;标志寄存器入栈
          call dword ptr cs:[200h]      ;调用原int9中断例程, 处理相关的硬件细节

          cmp al, 9eh                   ;判断60h端口是否是A键的断码, 不是则跳转
          jne int9ret                   ;不等于则退出例程 

          mov ax, 0b800h
          mov es, ax
          mov bx, 0                     ;显示满屏的'A'
          mov cx, 2000
       s: mov byte ptr es:[bx], 'A'
          add bx, 2
          loop s            
 
 int9ret: 
          pop es
          pop cx
          pop bx
          pop ax
          iret

 int9end: nop

code ends

end start
评论次数(1)  |  浏览次数(981)  |  类型(汇编作业) |  收藏此文  | 

[  fpamc   发表于  2012-10-30 10:06  ]

对的

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