assembly - 如何通过 PC BIOS 调用更改像素颜色?
问题描述
我正在尝试用 16 位 x86 程序集制作一个相当简单的图形游戏。特别是,我希望能够改变像素的颜色。
我已经有一个模拟的引导加载程序(qemu)和一段代码,它可以让游戏在启动时运行,以便它可以访问某些与图形相关的组件。
经过一番研究,我发现了以下论文,该论文记录了中断 10h 的使用,从而为我们提供了以下代码来更改像素的颜色:
mov al, 13h #Desired video mode: graphics mode
mov ah, 0 #Set video mode
int 10h #Interrupt
mov al, 1100b #Set color of the pixel(I believe it is light red)
mov cx, 10 #Set x coordinate
mov dx, 20 #Set y coordinate
mov ah, 0ch
int 10h
但是我正在使用 AT&T 语法(教育目的)制作游戏。因此,我尝试使用该语法找出它,从而产生以下代码:
mov $0x00, %ah #00h interpreted as hexadecimal
mov $0x13, %al #13h interpreted as hexadecimal
int $0x10 #10h interpreted as hexadecimal
mov $12, %al #1100 interpreted as bits
mov $5, %cx #Set x coordinate to immediate value 5
mov $5, %dx #Set y coordinate to immediate value 5
mov $0x0c, %ah #0ch interpeted as hexadecimal
int $0x10 #10h interpreted as hexadecimal
但是,这不起作用,我真的不明白为什么。因此,我希望有人能指出我如何改变像素颜色的正确方向。
解决方案
推荐阅读
- javascript - 使用 JavaScript 编辑样式会禁用 CSS `:hover` 选择器
- c# - 如何在 ASP.NET Core Razor Pages 部分标签助手中动态传递名称属性?
- apache-kafka - 动态创建消费者spring kafka
- node.js - 取消合并分支
- flutter - 在颤动中从小部件屏幕截图中设置壁纸
- javascript - 错误:没有可用的 chokidar 版本。试过 chokidar@2 和 chokidar@3。将 npm 升级到 7.*.* 后
- opentk - 控制器需要在程序运行时连接才能被视为已连接?
- javascript - Expo React Native 错误:元素类型无效:应为字符串(对于内置组件)
- python - 熊猫数据框中的无序和重复索引
- continuous-integration - 我如何同时处理并行发布>