欢迎光临散文网 会员登陆 & 注册

0166-BIOS 中断

2023-08-14 09:18 作者:jiangbo4444  | 我要投稿

环境

  • Time 2022-11-09

  • WSL-Ubuntu 22.04

  • QEMU 6.2.0

  • NASM 2.15.05

前言

说明

参考:《x86汇编语言:从实模式到保护模式》李忠
参考:http://www.ablmcc.edu.hk/~scy/CIT/8086_bios_and_dos_interrupts.htm

目标

使用 BIOS 中断,来进行屏幕的输出。

BIOS 中断

BIOS 中断是 BIOS 启动后,从地址 0x0000 处初始化的一个中断向量表。 其中存放的是段地址和偏移地址,每个终端号对应四个字节,一共可以有 256 个中断号。

汇编代码

字符定义

之前是通过对单个字符进行定义的,这里直接使用了字符串,用单引号引起来。

loop 循环

使用了 CX 寄存器来存储字符的个数,使用 loop 进行循环。

中断

使用的是 0X10 中断,子功能号是 0X0E,表示向屏幕输出,并后移光标。 AL 寄存器存储将要显示的字符,AL 寄存器填写子功能号,最后使用 int 10h 进行中断。 该中断为 BIOS 提供。

总结

使用 BIOS 的中断,向屏幕输出了 hello world。

附录

0166-BIOS 中断的评论 (共 条)

分享到微博请遵守国家法律