gpt4 book ai didi

c - 如何从字节码解释器写入标准输出?

转载 作者:行者123 更新时间:2023-11-30 20:37:52 24 4
gpt4 key购买 nike

我正在阅读有关构建简单虚拟机/字节码解释器的教程。它有像 PUSH、POP、HALT 等指令……这些指令在开关中被解码和评估,所以你会说如果当前指令等于 PUSH,那么你会将它插入堆栈。但是如果我想打印出字符串或字符怎么办?

在汇编中,您可以在 .data 中创建一个字符串,推送长度,然后是消息,然后是 stdout (1) 的文件描述符,系统写入调用号,因此 4(对于32 位),然后执行 int 80。

我该如何为虚拟机做这样的事情?我会同样处理吗?我想也许我可以转储我想在寄存器中写入的任何内容,然后当其中包含(魔数(Magic Number))以外的内容时打印内容,但这似乎不是一个好主意。

最佳答案

“打印”假设有某种 IO(输入/输出)系统,带有能够在其上呈现数据的输出设备(如打印机或显示器)。在虚拟机上,这样的设备也只能是虚拟的,并且取决于 VM 实现如何模拟它。例如,它可以有一个特定的明确定义的内存范围,即“视频内存”,这样在那里写入就被解释为将数据发送到输出设备,可以通过虚拟机界面中的文本框来模拟。

关于c - 如何从字节码解释器写入标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31573913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com