Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何使用asm在PowerPC/POWER架构上触发BIOS中断(例如,以TTY模式打印字符)?_Assembly_Interrupt_Bios_Powerpc - Fatal编程技术网

Assembly 如何使用asm在PowerPC/POWER架构上触发BIOS中断(例如,以TTY模式打印字符)?

Assembly 如何使用asm在PowerPC/POWER架构上触发BIOS中断(例如,以TTY模式打印字符)?,assembly,interrupt,bios,powerpc,Assembly,Interrupt,Bios,Powerpc,标题说明了这一点。我想在具有PowerPC/POWER体系结构的机器上打印一个字符到屏幕上,或者基本上只是调用一些BIOS功能。据我所知,BIOS与CPU的实际连接方式和连接方式通常很重要,所以让我们先来看看qemu提供的机器。我想我并不是在寻找“sc”命令,实际上我不知道在这样的机器上使用哪种方法来做这样的事情。作为我希望能够完成的示例,让我提供以下x86汇编代码段,它将在TTY模式下使用BIOS中断打印字符“a” mov al, 0x97 mov bh, 0x00 mov bl, 0x07

标题说明了这一点。我想在具有PowerPC/POWER体系结构的机器上打印一个字符到屏幕上,或者基本上只是调用一些BIOS功能。据我所知,BIOS与CPU的实际连接方式和连接方式通常很重要,所以让我们先来看看qemu提供的机器。我想我并不是在寻找“sc”命令,实际上我不知道在这样的机器上使用哪种方法来做这样的事情。作为我希望能够完成的示例,让我提供以下x86汇编代码段,它将在TTY模式下使用BIOS中断打印字符“a”


mov al, 0x97
mov bh, 0x00
mov bl, 0x07
mov ah, 0x0E
int 0x10

谢谢大家!

BIOS特定于x86体系结构。BIOS INT调用在电源体系结构上不起作用


您的Power dev板可能有自己的固件和自己的API。您需要查阅平台的固件开发文档。

对于CPU外部的体系结构,实际上没有一个标准(特别是当您开始做一些疯狂的事情时,比如打开little endian模式,主板可能会自己做一些字节交换…)

还有非PC x86体系结构(可能是各种奇怪的超级计算体系结构)。Linux可以针对这些进行编译


如果qemu提供了以PPCMAC为模型的额外硬件仿真,那么将有一个支持引导的ROM映像,可能还有一些基本的方框/文本绘图以及某种视频访问。据我所知,PPC Mac电脑从未有过类似PC机的“文本模式”(即使用视频卡上加载的字体进行绘图);OS X控制台的滚动速度很慢。

您需要一些文档,这些文档涵盖了机器提供的类似于PC BIOS的内容,并根据这些文档进行调用。实际上没有比这更多(或更少)的了。这是否意味着,例如PowerPC原型板和devkit可能是或可能是二进制的(功能良好的)不兼容的?(-与大多数/所有x86 PC不同)是的——至少我使用过的少数几台PC除了自身和(可能)同一制造商同一系列产品中的其他几台之外,与其他产品都不兼容。好的,非常感谢。我认为对于这样一个基本问题,可能会有一些“虚拟”标准。哪个PowerPC平台的BIOS具有标准的PC INT调用API?“BIOS特定于x86体系结构”是不正确的,除非您专门指的是事实上的IBM PC BIOS,由第三方进行了各种扩展,并且通常不符合“标准”。显然,这个术语实际上来自CP/M,它也在Z80上运行。虽然引导加载程序/ROM代码在其他平台上可能没有被称为“BIOS”,但实际上是一样的。这就是我的观点。术语“BIOS”特定于x86。其他平台通常有引导固件(如U-boot),但通常不称为“BIOS”。那些具有VGA兼容视频硬件的平台如何?至少,这些不是有文本模式吗(不管固件是否提供了一个接口,达尔文是否利用了它)?例如,这个G5 iMac有一个GeForce FX 5200…@SamB:我的理解是,在“PC”硬件上,该卡包含一个“视频BIOS”,它本质上是x86代码,知道如何与视频卡通信,并且设置了中断表,以便在正确的中断时调用该代码。祝您在PowerPC上运行这些功能时好运。还要注意的是,虽然它可能与PC图形卡是同一个GPU,但视频BIOS可能位于不同的芯片上,最终它不是同一个硬件-很长一段时间以来,“mac”图形卡是一个完全不同的产品,因为终端问题(为什么驱动程序无法修复此问题,我不知道…)。