当前位置:鱼C工作室 >汇编语言 > 查看文章

使用BIOS进行键盘输入和磁盘读写03 – 零基础入门学习汇编语言77(完)

第十七章:使用BIOS进行键盘输入和磁盘读写03

 

让编程改变世界

Change the world by program


 

字符串的输入

 

先看下字符栈的模拟代码:相关代码下载

 

另外一个要注意的问题是:显示栈中字符的时候,要注意清除屏幕上上一次显示的内容。

 

我们现在写出完整的接收字符串输入的子程序。

参考源码:相关代码下载

 

应用int13h中断例程对磁盘进行读写

这本书毕竟是经典,经典的东西嘛……就是古老的东西,所以这里主要以 3.5 英寸软盘为例,进行讲解,但原理依旧不变。

 

常用的3.5英寸软盘的结构:

分为上下两面,每面有80个磁道,每个磁道又分为18个扇区,每个扇区的大小为512B。

总容量为:2面×80磁道×18扇区×512B=1440KB≈1.44MB

磁盘的实际访问由磁盘控制器进行,我们可以通过控制磁盘控制器来访问磁盘。

 

注意,我们只能以扇区为单位对磁盘进行读写。

在读写扇区的时候,要给出面号、磁道号和扇区号。面号和磁道号从0开始,而扇区号从1开始。

 

如果我们通过直接控制磁盘控制器来访问磁盘,则需要涉及许多硬件细节。

BIOS提供了对扇区进行读写的中断例程,这些中断例程完成了许多复杂的和硬件相关的工作。

我们可以通过调用BIOS中断例程来访问磁盘。

BIOS 提供的访问磁盘的中断例程为int 13h 。

 

如下,读取0面0道1扇区的内容到0:200:

mov ax,0

mov es,ax

mov bx,200h

mov al,1

mov ch,0

mov cl,1

mov dl,0

mov dh,0

mov ah,2

int 13h

 

入口参数

(ah)=int 13h的功能号(2表示读扇区)

(al)=读取的扇区数

(ch)=磁道号

(cl)=扇区号

(dh)=磁头号(对于软驱即面号,因为一个面用一个磁头来读写)

(dl)=驱动器号 

 

分页阅读: 1 2 下一页
为您推荐

报歉!评论已关闭.