如何解决当前视频缓冲区段地址是否记录在内存位置?
通过使用 - 例如 - 改变当前页面的中断,视频缓冲区的段地址也将改变如下:
mov ah,5
mov al,1
int 10h
例如,我现在在文本模式下,我的 VGA 在第 0 页的段是 0B800h,现在在上一次中断之后该段将是 0B900,它被记录在内存中或者我们必须计算它,因为这些地址是固定的吗?
解决方法
当前视频缓冲区段地址未记录在内存中。 BIOS 不会那样使用它。
BIOS 在 BIOS 数据区记录有关页面的信息
80x25
-----
word 0040:004C Size in bytes of the display memory page = 4000
word 0040:004E Offset to the current display page = 4096
byte 0040:0062 Number of the active display page = 1
在 80x25 文本视频模式下,BIOS 仅处理段值 B800h 并改变偏移量以到达正确的输出页面。 BIOS 首先计算请求页面内的偏移量,然后添加来自地址 0040:004E 的字。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。