总结:汇编语言(第3版)--第十七章 使用 BIOS 进行键盘输入和磁盘读写

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

大多数有用的程序都需要处理用户的输入,键盘输入是最基本的输入。程序和数据通常需要长期存储,磁盘是最常用的存储设备。BIOS 为这两种外设的 I/O 提供了最基本的中断例程,本章主要是对其应用和相关的问题进行讨论。

(1)int 9 中断例程对键盘输入的处理

键盘输入将引发 9 号中断,BIOS 提供了 int 9 中断例程。CPU 在 9 号中断发生后。执行 int 9 中断例程,从 60h 端口读出扫描码,并将其转化为相应的 ASCII 码或状态信息。存储在内存的指定空间中。

(2)使用 int 16h 中断例程读取键盘缓冲区

BIOS 提供了int 16h 中断例程供程序员调用。int 16h 中断例程中包含的一个最重要的功能是从键盘缓冲区中读取一个键盘输入,该功能的编号为 0。

(3)字符串的输入

用户通过键盘输入的通常不仅仅是单个字符而是字符串。最基本的字符串输入程序需要具备的功能分别是:在输入的同时需要显示这个字符串、一般在输入回车符后,字符串输入结束、能够删除已经输入的字符。

(4)应用 int 13h 中断例程对磁盘进行读写

磁盘对实际访问由磁盘控制器进行,我们可以通过控制磁盘控制器来访问磁盘。只能以扇区为单位对磁盘进行读写。在读写扇区对时候,要给出面号、磁道号和扇区号。面号和磁道号从 0 开始,而扇区号从 1 开始。如果我们通过直接控制磁盘控制器来访问磁盘,则需要涉及许多硬件细节。BIOS 提供了对扇区进行读写的中断例程,这些中断例程完成了许多复杂的和硬件相关的工作。我们通过调用 BIOS 中断例程来访问磁盘。BIOS 提供的访问磁盘的中断例程为 int 13h 。

希望我的总结可以帮助大家,感谢阅读我的博客!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
汇编语言可以使用int 16h中断例程的0号子程序来读取键盘输入。具体步骤如下: 1. 首先,需要检测键盘缓冲区中是否有数据。 2. 如果没有数据,程序将一直等待,直到有数据被输入到键盘缓冲区中。 3. 一旦有数据进入键盘缓冲区,程序将读取缓冲区中最早进入的键盘输入,从队头开始读取。 4. 将读取的扫描码送入ah寄存器,将ASCII码送入al寄存器。 5. 最后,将已读取的键盘输入从缓冲区中删除。 在汇编语言中,可以使用以下指令来执行上述步骤: ``` mov ah, 0 int 16h ``` 这样就可以读取键盘输入,并且从键盘缓冲区中删除。执行以上指令后,扫描码将存储在ah寄存器中,ASCII码将存储在al寄存器中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [汇编语言-使用BIOS进行键盘输入磁盘读写](https://blog.csdn.net/Cdreamfly/article/details/104908167)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [汇编语言随笔(15)- 对键盘输入进行处理(int 9 和 int 16h 中断例程)](https://blog.csdn.net/Little_ant_/article/details/108691941)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值