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

我的博客

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

[2009-01-26 16:51] 实验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 ;安装中断9的中断例程 
      
      push es:[9*4]
      pop es:[200h]
      push es:[9*4+2]
      pop es:[200h+2] ;保存原来int9的中断地址 
      
      
     
      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];调用原来的int 9中断例程 
     
     cmp al,1eh+80h;断码=通吗+80h
     jne int9ret
     
    

     mov ax,0b800h
     mov es,ax
     mov bx,0
     mov cx,2000
     
s:
     mov  byte ptr es:[bx],'a'
     add bx,2
     loop s
     
    

int9ret :
     ;popf  ;为何不需要POPF呢? 
     
     pop es
     pop cx
     pop bx
     pop ax
     iret
     
int9end:
     nop
      
    


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

[  crazyman   发表于  2009-02-03 15:43  ]

程序正确,不过,注意看好题目,是让显示A哟。呵呵

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