《汇编语言(第四版)》 . 王爽著 . 清华大学出版社 . 2019
¶实验 17 编写包含多个功能子程序的中断例程
¶调用 int 16h 从键盘缓冲区中读取键盘的输入
BIOS 提供了 int 16h 中断例程供程序员调用。int 16h 中断例程中包含的一个最重要的功能是从键盘缓冲区中读取一个键盘输入,该功能的编号为 0
int 16h 中断例程的 0 号功能进行如下的工作
1)检测键盘缓冲区中是否有数据
2)没有则继续做第一步
3)读取缓冲区第一个字单元中的键盘输入
4)将读取的扫描码送入 ah,ASCII 码送入 al
5)将已读取的键盘输入从缓冲区中删除
1 | cs:code |
测试程序运行
¶接收字符串的输入
程序的处理过程
1 | charstack: jmp short charstart |
补全接收字符串输入的子程序
1 | getstr: push ax |
测试程序(省略子程序)
1 | cs:code |
测试程序运行
¶应用 int 13h 中断例程对磁盘进行读写
读取 0 面 0 道 1 扇区的内容到 0:200 的程序如下所示。
1 | mov ax,0 |
将 0:200 中的内容写入 0 面 0 道 1 扇区。
1 | mov ax,0 |
1 | cs:code |
¶实验任务
1 | cs:code |
测试程序
1 | cs:code |
¶汇编语言实验合集
实验 1 查看 CPU 和内存,用机器指令和汇编指令编程
实验 2 用机器指令和汇编指令编程
实验 3 编程、编译、连接、跟踪
实验 4 [bx] 和 loop 的使用
实验 5 编写、调试具有多个段的程序
实验 6 实践课程中的程序
实验 7 寻址方式在结构化数据访问中的应用
实验 8 分析一个奇怪的程序
实验 9 根据材料编程
实验 10 编写子程序
课程设计 1
实验 11 编写子程序
实验 12 编写 0 号中断的处理程序
实验 13 编写、应用中断例程
实验 14 访问 CMOS RAM
实验 15 安装新的 int9 中断例程
实验 16 编写包含多个功能子程序的中断例程
实验 17 编写包含多个功能子程序的中断例程
课程设计 2