问题标签 [opcode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2386 浏览

regex - 正确查找 RPAREN(以启用快速解析)

在代码中查找 RPAREN 的最佳方法是什么?例如,我有这个伪代码:

例如,如果我考虑第一个 LPAREN,它需要与最后一个 RPAREN 匹配(案例 B)。如果我考虑第二个 LPAREN,它需要与最后一个 RPAREN 匹配(案例 A)。

请注意,有些字符串"C)"具有 RPAREN,但在这种情况下需要忽略它。

嗯......我想到了正则表达式,但我想它会非常复杂(注意需要匹配字符串,正则表达式,然后另一个认为可以包括 RPAREN 或类似的东西)。然后我考虑使用手动扫描(通过代码)来检测每个部分(如手动正则表达式)。

我需要它来解析我正在构建的代码(自己的编程语言)。而且我想忽略阅读一些代码以使其更快。

例如:

在这种情况下,只b()需要被解析,因为a()从不使用。所以我将按启动器扫描{并忽略(但存储)直到真正的}. 如果使用该函数,它将被解析。

我的疑惑:

  1. 正则表达式还是手动代码?
  2. 这是好事还是坏事?如果从未使用过代码,请忽略它有助于提高解析器的速度吗?
  3. 题外话:一些加快解析器速度的技巧?也许是一个“预解析”文件,将语言代码与计算机代码(操作码???)一起存储?
0 投票
1 回答
749 浏览

c# - “Calli”一词的语义推断或含义是什么?

我在代码中的各个地方都看到了这个术语,例如在图形编程示例中。它似乎是 C++ 语义,但显然有一个名为EmitCalli的 C# / .NET 托管实现,它似乎与OpCodes.Calli相关。我认为这是机器语言指令。对这个术语有没有某种接近外行术语的解释?

0 投票
1 回答
887 浏览

c - 反汇编C,替换操作码

我试图学习逆向的基础知识,并试图反汇编一个小的 C 程序。我在 MacOS 10.7.2(64 位 - Intel)下工作并使用 gcc 4.2.1。

我用 编译gcc -o test test.c,然后用 gdb 工作了一段时间,我在strcmp调用 (100000e8e) 之后放置了一个断点并获取(我认为是)相关的汇编代码:

现在,根据我对汇编程序的理解,事情应该很容易:在strcmp调用 100000e89之后,%ecx保存 的值,然后与 0 进行比较。

如果它们不相等 ( jne) 则跳转 (else),否则它应该继续 (if)。

很好,我认为即使输入错误,我也应该得到“正确”jne的修改。je

其实我没有。试图了解问题可能是什么,我试图检查操作代码,我得到一个奇怪的(对我来说)输出:

没有迹象0f85表明应该是jne.

那我有点糊涂了……难道我不应该得到跳转的操作码吗?有人可以解释我的错误吗?

0 投票
1 回答
579 浏览

java - 什么 Java 代码会强制 javac 1.6 使用“swap”和“nop”操作码?

我正在研究一个业余 JVM 实现,我正在努力确保我对规范中的所有操作码都有测试覆盖率。我已经把它归结为最后几个,但nop一直swap在逃避我。例如,这是一个可能使用的简单函数swap

但是由 产生的字节码javac 1.6避免了交换来代替本地存储:

有任何想法吗?

0 投票
4 回答
13239 浏览

c - 如何获取 ac 程序的操作码

我知道如何使用 gdb 获取程序的汇编代码,但如何获取操作码?我需要它来破解 linux 服务器(不要担心它是我所拥有的类的一部分,因此不会损害真正的服务器)。实际上我正在阅读这篇文章,我想知道如何从汇编中获得:

以下:

该系统是 linux x86 和我将使用 C 的语言。我真的很想要一种自动化的方式,但手动解决方案也可以。

我的意思是如何转换 %ebp、%esi、%esp 等。有我可以使用的地图吗?还是自动化程序?

0 投票
1 回答
238 浏览

php - 不同文件版本上的 APC 操作码缓存

我们有一个服务器,上面部署了SAME Web 应用程序的多个不同版本。

例如 :

  • www.myserver.com
  • rc.myserver.com
  • alpha.myserver.com

我们担心同一个 PHP 类的版本之间可能会发生冲突。APC 是否正确处理此问题?如果没有,如何解决这个问题?

谢谢你的帮助。

0 投票
2 回答
721 浏览

android - Android,Eclipse:“无扩展操作码”错误是什么意思?

尝试从 Eclipse 调试 Android 应用程序时,我收到以下消息

这到底是什么意思?

谢谢

0 投票
2 回答
3182 浏览

x86 - Intel x86 XOR 操作码 0x31

以下 Intel x86 指令是操作码 0x31: xor <r/m32>,<r32>。在指令的实际机器代码中,0x31 后跟另一个十六进制值,表示使用的寄存器或内存地址。我的问题如下:

  1. 哪些十六进制代码表示可以进行异或的可能寄存器?
  2. 考虑到可以使用的寄存器和内存参数组合的数量,这条指令可能创建的机器代码有哪些限制?
0 投票
2 回答
973 浏览

x86 - 图灵完备的字母数字 x86 指令集(子集)

我希望创建一个最小的、计算通用的字母数字 x86 操作码子集。最终,我希望子集包含尽可能少的指令,如果有多个最小子集,我也想知道这一点。该子集应该能够模拟可以使用整套字母数字指令编写的任何程序。说明应仅涵盖与字符“AZ”、“az”和“0-9”相对应的说明。

到目前为止,我认为 a push, pop, inc, dec, cmp, andje就足够了,但我确信还有一个较小的集合。我如何证明我生成的集合能够使用所有字母数字指令模拟任何程序?我怎么能证明这样的集合是最小的?有谁知道这样的指令子集是否存在?

0 投票
1 回答
859 浏览

android - Android 没有 R.java 的扩展操作码

我在编译 Android 应用程序时遇到了一个重要问题。

使用Windev Mobile,它生成java代码,编译并创建apk,但是,当apk创建时,发生错误:

命令行:"myjavapath\java.exe" -Xmx1024m -Djava.ext.dirs=.\platform-tools\lib -jar .\platform-tools\lib\dx.jar --dex --output "path\classes.dex" "path\classes" "path\libs"

返回错误:无法写入输出:No expanded opcode for 0004368d R.java:11@0001: invoke-direct v0:NffffLmynamespace/R$attr;, java.lang.Object.<init>:()v

此外,R.java 中的 R$attr 不包含任何内容:

我假设有 64k 的硬限制。但:

  • R.java 文件只包含 364 行,如果这些行是字段/方法引用,我离 64k 硬限制很远。
  • 当我在 Windev Mobile 项目中添加特定窗口时发生此错误。我在另一个项目中使用的窗口没有错误。

那么,你认为它来自哪里?如果您需要任何信息或文件,没问题。

提前致谢。

PS:可能我的英文不太好,抱歉。