Performance 是否可以在不使用中断的情况下,以ASM语言在屏幕上显示图像?

Performance 是否可以在不使用中断的情况下,以ASM语言在屏幕上显示图像?,performance,assembly,nasm,x86-16,bare-metal,Performance,Assembly,Nasm,X86 16,Bare Metal,是否可以在不使用任何BIOS/DOR/的情况下,以ASM语言在屏幕上显示像素或在扬声器中播放蜂鸣音。。。中断?这是可能的,但没有用,因为每台电脑都配备了固件BIOS或UEFI,这是最繁琐的工作。 许多年前,我对的PC/XT BIOS代码进行了反汇编,只是为了学习如何使用裸机将Hercules卡切换到图形模式,即应用于的输入和输出指令 例如,我在中找到的有关硬件的大多数信息,本章显示了如何在主板扬声器上播放音调,方法是发送不带OUT 61h、AL的方波并切换AL的第1位。引用TechHelp: T

是否可以在不使用任何BIOS/DOR/的情况下,以ASM语言在屏幕上显示像素或在扬声器中播放蜂鸣音。。。中断?

这是可能的,但没有用,因为每台电脑都配备了固件BIOS或UEFI,这是最繁琐的工作。 许多年前,我对的PC/XT BIOS代码进行了反汇编,只是为了学习如何使用裸机将Hercules卡切换到图形模式,即应用于的输入和输出指令

例如,我在中找到的有关硬件的大多数信息,本章显示了如何在主板扬声器上播放音调,方法是发送不带OUT 61h、AL的方波并切换AL的第1位。引用TechHelp:

The speaker is connected to PPI port B, port 61H.
Set bit 1 to pulse the speaker out and 
clear bit 1 to bring the speaker back to normal. 

         in    al,61H     ;get current value
  again: or    al,02H     ;set bit 2 to pulse it out
         out   61H, al
         mov   cx,1000H
  delay1:loop  delay1     ;wait a little while
         and   al,0fdH    ;clear bit 2 to pulse it back in
         out   61H, al
         mov   cx,1000H
  delay2:loop  delay2     ;wait a little while
         jmp   again

只有当有问题的设备上有屏幕或扬声器时才有可能。任何语言都可以在asm中实现,因为这正是所有其他实际运行的语言所能实现的。那么,如何在asm中不中断地在屏幕上显示像素呢?我没有找到任何关于x86的教程,这些教程带有标准图形,请查看VGA教程。例如,请参阅。@mpo您为哪种计算机和哪种图形卡编程?您必须以与操作系统相同的方式进行编程。你的代码知道具体的板/芯片,只需写控制寄存器和像素数据,它就会显示在屏幕上。您找不到任何关于x86系统的最新教程,但其他系统很容易找到。在vga时代,它被记录在案,相当简单。请不要像这样只发布链接答案。堆栈溢出答案本身必须是有用的,即使所有链接都关闭了。