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

我的博客

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

[2012-10-28 14:54] 实验十七和检测点17.1

实验十七
;这个实验需要用虚拟机,建议装个vmware
              assume    cs:code
        code  segment
      start:
;安装程序      
              push      cs
              pop       ds
              mov       si,offset begin
              mov       ax,0
              mov       es,ax
              mov       di,200h
              mov       cx,offset over -offset begin
              cld
              rep       movsb
;修改向量表
              cli
              mov       word ptr es:[7ch*4],200h
              mov       word ptr es:[7ch*4+2],0
              cli
;测试程序
;al,ah,dx,es:bx
              mov       ax,0b800h
              mov       es,ax
              mov       bx,0
              mov       al,1
              mov       ah,1        ;写
              mov       dx,0
              int       7ch
;退出
              mov       ax,4c00h
              int       21h
;中断处理程序
      begin:
;保护现场
              push      cx
;计算
              cmp       ah,1
              ja        return      ;参数错误,退出
              push      bx
              push      ax
              mov       ax,dx
              mov       dx,0
              mov       bx,1440
              div       bx          ;面号在al中
              mov       cl,al
              mov       ax,dx
              mov       dx,0        ;改正
              mov       bx,18
              div       bx          ;磁道号在al中
              inc       dl          ;扇区号在dl中
              mov       dh,cl       ;面号
              mov       cl,dl       ;扇区号
              mov       ch,al       ;磁道号
              mov       dl,0        ;软驱
              pop       ax          ;al中扇区数
              cmp       ah,0
              jne       fun1
;读           
              mov       ah,2
       fun1:
;写
              mov       ah,3
;调用int 13h中断 
              pop       bx
              int       13h
;恢复现场      
     return:
              pop       cx
              iret
       over:  nop
        code  ends
              end       start
检测点17.1
这种说法对,因为在int 16h中需呀检测键盘输入,而键盘输入需要调用int 9.如果没有 if=1,那么键盘就不能用了
评论次数(2)  |  浏览次数(615)  |  类型(汇编作业) |  收藏此文  | 

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

mov       bx,18
在这条指令的上边是不是要加一条sub dx,dx?

[  youthangel   发表于  2012-10-30 18:56  ]

恩,这次对了

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