Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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
Python 您能否基于旧的asm文件生成新的asm文件?如果是这样,最有效的方法是什么?_Python_Assembly_Code Generation - Fatal编程技术网

Python 您能否基于旧的asm文件生成新的asm文件?如果是这样,最有效的方法是什么?

Python 您能否基于旧的asm文件生成新的asm文件?如果是这样,最有效的方法是什么?,python,assembly,code-generation,Python,Assembly,Code Generation,假设我在python程序中有很多.asm文件(它也可以是二进制字符串、十六进制字符串或任何您想要的)。如何使用这些文件生成功能大致相同的新文件(用于组装游戏) 问题是,我有很多组装玩家非常擅长游戏,我想知道我是否能以某种方式利用自然选择来培育更好的组装机器人。这听起来很像超级优化() e、 g.从asm指令序列开始,随机修改它,寻找做同样事情的更短/更快的序列 (或者STOKE可以从头开始寻找asm序列,为一组测试用例提供所需的结果。) 它是开源的,所以看看他们用来修改asm和测试运行代码的算法

假设我在python程序中有很多.asm文件(它也可以是二进制字符串、十六进制字符串或任何您想要的)。如何使用这些文件生成功能大致相同的新文件(用于组装游戏)


问题是,我有很多组装玩家非常擅长游戏,我想知道我是否能以某种方式利用自然选择来培育更好的组装机器人。

这听起来很像超级优化()

e、 g.从asm指令序列开始,随机修改它,寻找做同样事情的更短/更快的序列

(或者STOKE可以从头开始寻找asm序列,为一组测试用例提供所需的结果。)

它是开源的,所以看看他们用来修改asm和测试运行代码的算法。当然,如果您有表示操作数和操作码的数据结构,这是可能的


另见2014年的一篇学术论文


我还没有读过它,但希望它能解决如何从不同的突变中重新组合代码的问题,并且可能比从其他代码中得到的垃圾更有用。(这是对代码进行随机更改的主要技巧,特别是在汇编程序中,其中有大量无用的指令序列。)

听起来更像是原始海报想要为类似Core War的游戏生成程序。@RossRidge:我同意,这就是我写答案时的想法。如果有正确的测试用例来评估程序的适用性,超优化技术可能会将程序演化为新的程序。IDK关于结合两个来源的部分,就像一个真正的遗传算法。从中产生工作asm听起来很难。这看起来真的像我要找的!我现在就试试!你有其他选择吗?@Hexer:wikipedia的文章列出了除了斯托克城之外的几个超级优化者。