相关疑难解决方法(0)

程序集 8086 中的图形模式

我有一个被调用的变量,average在我的 中DATASEG,它每次都会改变,因为用户每次输入不同的输入。我想要做的是转到图形模式(VGA),然后在那里打印您的平​​均值是:然后平均值我知道如何更改为这样的图形模式:

mov ax, 13h  
int 10h
Run Code Online (Sandbox Code Playgroud)

打印平均值后,如果平均值高于 75,我想打印在下面你是个好学生,继续努力,如果不是。别担心,你会好起来的!提前致谢。

graphics assembly vga emu8086

9
推荐指数
1
解决办法
9589
查看次数

如何禁用循环时发生的PC扬声器蜂鸣声中断?

在我的8086汇编程序中执行循环时,有一个键盘按键阈值,如果你按键太多次,PC扬声器将开始发出哔哔声.这是令人讨厌的,它减慢了我的程序爬行速度,因为CPU必须跳离我的程序并花半秒钟来驱动扬声器.

几个月前我开始在实际硬件上测试我的程序之前,我甚至都不知道这个问题.这个问题在DosBox中不是问题,甚至在DosBox中安装的Dos 6.22中也不是问题.所以它必须是PC BIOS内置的一些低级硬件中断,我不太了解这些东西.

它出现在我的286机器和我的Pentium mmx笔记本电脑上,无论操作系统如何.

即使它只是一个死循环,我甚至没有轮询键盘输入,如果我按太多键也会发出蜂鸣声

我已经尝试将我的输入代码包装在cli和sti中,希望能够从系统中屏蔽我的键盘输入,但这确实不起作用.我只在程序中的一个奇点处收集扫描码,所以其余的时间都启用了中断.所以绝大多数时候仍然会发出哔哔声.

必须有一些我可以禁用的硬件寄存器或其他东西.我仔细查看了Boch的端口列表(http://bochs.sourceforge.net/techspec/PORTS.LST),寻找类似的东西,但没有看到任何东西.

也许我可以关闭中断?我想很多汇编程序员一定遇到过这个问题,但Google在这里根本没有帮助我.

assembly pc interrupt x86-16

7
推荐指数
1
解决办法
329
查看次数

在 C 中显示颜色数组

我的程序既写入又读取这样的颜色数组:

struct Image {
    size_t width;
    size_t height;
    struct Color *data;
}

struct Color {
    char r;
    char g;
    char b;
}
Run Code Online (Sandbox Code Playgroud)

如何在 C 语言的屏幕上显示这样的数组?

c graphics image bitmap

0
推荐指数
1
解决办法
4293
查看次数

标签 统计

assembly ×2

graphics ×2

bitmap ×1

c ×1

emu8086 ×1

image ×1

interrupt ×1

pc ×1

vga ×1

x86-16 ×1