我正在反汇编一个 MS-DOS .com 应用程序,遇到了一些我不明白的端口访问。更准确地说,通过IN
指令,从以下端口读取值。
40h
44h
46h
此处找到的文档提到端口40h-47h
属于“可编程间隔计时器”,但详细信息仅在端口上详细说明40h-43h
。
从反汇编的上下文中,我猜输入然后用作伪随机数。
我还找到了这个参考(德语),它没有提到其他 4 个端口。有没有人知道这些端口的确切功能,最好有参考?
编辑:为了提供更多上下文,反汇编的应用程序部分如下所示。
in al, 46h
mov cl, 03h
div cl
mov bl, ah
in al, 44h
div cl
mov bh, ah
mov dx, 40h
in al, dx
div cl
应用就是这个微小的效果;读取的值用于将 VGA 调色板的 RGB 值设置为最好是彩色的,最坏的情况是有趣的。