Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.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
使用将某些组替换为C中的正则表达式将程序集转换为C#_C#_C_Regex_Assembly - Fatal编程技术网

使用将某些组替换为C中的正则表达式将程序集转换为C#

使用将某些组替换为C中的正则表达式将程序集转换为C#,c#,c,regex,assembly,C#,C,Regex,Assembly,我想将asm转换为c(程序集转换为c) 我看到 (请翻页) 网页上,然后我尝试使用C中的find和Replace来完成这项工作# 我不是计算机专业的学生,所以我不是Regex的专业人士。 我工作了5天,从那时起,我知道我不能这样做。我写了很多代码,但没有成功 示例程序: mov-r1,1; mov-r2,2; 转换为: r1=1; r2=2; 请帮助我正确地做到这一点OP(痛苦地)了解到,对于涉及软件分析或翻译的问题,regexp不是一个好的解决方案。处理字符串与构建复杂结构文本的上下文敏感分析

我想将asm转换为c(程序集转换为c) 我看到 (请翻页) 网页上,然后我尝试使用C中的find和Replace来完成这项工作#

我不是计算机专业的学生,所以我不是Regex的专业人士。 我工作了5天,从那时起,我知道我不能这样做。我写了很多代码,但没有成功 示例程序: mov-r1,1; mov-r2,2; 转换为: r1=1; r2=2; 请帮助我正确地做到这一点

OP(痛苦地)了解到,对于涉及软件分析或翻译的问题,regexp不是一个好的解决方案。处理字符串与构建复杂结构文本的上下文敏感分析不同

人们不断地重新吸取教训。的确,您可以使用重复的正则表达式来模拟重写后系统,而具有图灵功能的后系统在技术上可以做任何事情。的确,没有人真正想要,或者更重要的是,没有人能够为真正的图灵机器(或等效的Post系统)编写非常复杂的程序。这就是为什么我们有所有其他的计算机语言和工具。[OP所指的TextMaestro系统正试图与Post系统一模一样。]

然而,他想做的任务是可能的,并且在适当的工具下是可行的

特别是,他应参阅本技术文件,以准确描述如何使用一个特定的PTS实现这一点:请参阅。这种工具实际上是从汇编源代码到目标语言的自定义编译器,包括解析、名称(标签)解析、通常是数据流分析以及复杂代码生成和优化。使用PTS是因为它们使构建这种编译器相对容易。该工具至少用于英特尔汇编到C,以及大型机(System 360/370/Z)汇编到C,用于大规模任务。(我与这个工具没有关系,但我非常尊重作者)


评论中的反对者似乎认为这是不可能做到的,除非是极端受限的情况。的确,人们从习惯用法的角度对汇编代码了解得越多,这就越容易实现,但本文中的技术方法并不局限于以任何方式进行特定的编译器输出。确实,真正晦涩难懂的汇编代码(特别是自修改或生成运行时代码)极难翻译。

除非您的唯一目的是让汇编程序在特定的编译器上运行,并且您不在乎它在编译器更新时会断开,否则您无法创建将汇编程序转换为C的程序(或者,即使使用了不同的标志来影响输出),您也可以尝试,但请记住,精神病院有专门的房间供这样做的人使用。