| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
正在学习王爽的《汇编语言》一书,终于来到了最后一章:“17.4 应用int 13h中断例程对磁盘进行读写”。 
 
书中提供的代码示例(将当前屏幕的内容保存到磁盘上)运行不会报错,我寻思这也看不到效果,就想又将磁盘中的内容读出来,看它是不是真的干活了。结果运行仍然没有任何效果。 
 
所以,dosbox中的int 13h到底能用吗?   
 
 
- ;17-4中的程序完全看不到运行效果
 
 - ;实现:屏幕向上滚动一半
 
 - assume cs:code 
 
  
- data segment 
 
 -     db 4000 dup (0) 
 
 - data ends 
 
  
- code segment 
 
 - start:
 
 -     mov ax,0b800h 
 
 -     mov es,ax 
 
 -     mov bx,0 
 
  
-     ;将显存保存到1~8扇区
 
 -     mov al,8    ;操作扇区数量
 
 -     mov ch,0    ;磁道号
 
 -     mov cl,1    ;扇区号
 
 -     mov dl,0    ;驱动器号
 
 -     mov dh,0    ;磁头号
 
 -     mov ah,3    ;功能号
 
 -     int 13h
 
  
-     mov ax,0b800h 
 
 -     mov es,ax 
 
 -     mov bx,0 
 
 -     
 
 -     ;将5~8扇区的内容显示到上半屏,达到上滚效果
 
 -     mov al,4
 
 -     mov ch,0 
 
 -     mov cl,5
 
 -     mov dl,0 
 
 -     mov dh,0 
 
 -     mov ah,2
 
 -     int 13h
 
  
-     mov ax,4c00h 
 
 -     int 21h 
 
 - code ends 
 
 - end start 
 
 
  复制代码 |   
 
 
 
 |