Tag: x86

在ALIX / AMD Geode上运行voyage linux的nodejs导致“无效机器指令”

下面的调查结果是:最近Node.js不能移植到AMD Geode(或其他非SSE x86)处理器! 我深入了解了代码,并陷入了ia32汇编器的实现中,它将SSE / SSE2指令深入地集成到它们的代码(macros,macros,macros,…)中。 主要的后果是,由于缺less更新的指令集扩展,您无法在AMD Geode处理器上运行最新版本的node.js。 对387algorithm的回退只适用于node.js代码,但不适用于它所依赖的JavaScript V8编译器实现。 调整V8以支持非SSE x86处理器是一个痛苦和很多努力。 如果有人出示相反的证据,我会很高兴听到;-) 调查历史 我有一个正在运行的ALIX.2D13( https://www.pcengines.ch ),它有一个AMD Geode LX作为主处理器。 它运行voyage linux,一个基于debian jessi的资源受限embedded式设备发行版。 root@voyage:~# cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 5 model : 10 model name : Geode(TM) Integrated Processor by AMD PCS stepping : 2 cpu MHz : 498.004 cache […]

我应该使用哪些Linux系统调用来读取stdin中的原始字符?

我试图将我的stdrepl库stdrepl到FASM的学习目的。 我知道GNU readline库已经做了我想做的事情,但是我想学习如何在汇编中编写非平凡的程序。 在node.js中,我可以通过编写来轻松创build一个tty: var stdin = process.stdin; stdin.setEncoding("utf8"); stdin.setRawMode(true); stdin.resume(); 我如何在纯assembly中达到相同的结果。 我尝试从一个循环中读取stdin中的一个字节,如下所示,但是在按下某个键之后,它不会立即返回字节: oct db ? mov eax, 3 xor ebx, ebx mov ecx, oct mov edx, 1 请注意, oct的数据定义不是循环的一部分,所以请不要为此而伤害我。 我知道如何构build一个汇编程序。