gpt4 book ai didi

javascript - 如何查看从我的 JavaScript(在 Chrome 中)生成的汇编代码?

转载 作者:行者123 更新时间:2023-12-03 07:04:18 25 4
gpt4 key购买 nike

是否有可能查看浏览器从我的 Javascript 生成的最终机器代码(x86 指令)?例如。

--- Raw source ---
function add(a, b){
return a + b;
}
...

--- Code ---
source_position = 0
kind = FUNCTION
Instructions (size = 456)
0x36953100 0 8b4c2404 mov ecx,[esp+0x4]
0x36953104 4 81f991806049 cmp ecx,0x49608091 ;; object: 0x49608091 <undefined>
0x3695310a 10 750a jnz 22 (0x36953116)
0x3695310c 12 8b4e13 mov ecx,[esi+0x13]
0x3695310f 15 8b4917 mov ecx,[ecx+0x17]
0x36953112 18 894c2404 mov [esp+0x4],ecx
0x36953116 22 55 push ebp

谢谢!

最佳答案

您的脚本不会直接转换为机器代码。 JavaScript 在虚拟机 V8 上运行(chrome 和经典 nodejs 都是如此),您可以使用以下方法获取 VM 字节码:

node --print-bytecode script.js

然后 V8 执行并优化字节码并调用外部 C 库和 OS API(系统调用)或 WEB API。即使使用相同的 javascript 代码(例如优化之前和之后),最终的机器代码也可能会有所不同。

您也可以从命令行启动 Chrome --js-flags="--print-bytecode"
更新:

正如@PeterCordes 注意到的那样,nodejs 允许使用 Turbofan 查看生成的机器代码

node --print-opt-code script.js

Chrome :

--js-flags="--print-opt-code"

您也可以使用 HTML 可视化工具,如 https://github.com/v8/v8/tree/master/tools/turbolizer

关于javascript - 如何查看从我的 JavaScript(在 Chrome 中)生成的汇编代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59411889/

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