@[SlaineTroyard](/user/450246) 您是否在找:汇编语言
by 览遍千秋 @ 2024-04-21 22:45:13
语言 A=汇编, 程序 1=编译器
by m256i @ 2024-04-21 22:46:21
@[SlaineTroyard](/user/450246)
- 编译器算法,C++ 转汇编语言是将 for/while 转化为 if goto
- 反编译算法,汇编语言转 C 是将 if goto 转 for/while
by Terrible @ 2024-04-21 22:46:55
<https://godbolt.org/>
by Terrible @ 2024-04-21 22:47:41
问题背景:
有一款类二维沙盒游戏 Mindustry,其自定义逻辑系统仅支持 `if-jump` 语句作为分支结构和循环结构。
但是对于天天用 C++ 的我来说,用 `if-jump` 写循环简直就是折磨。于是我希望对某个问题,用高级语言实现后,再将这份代码转化为 Mindustry 逻辑系统的代码。
这就是这个问题的由来。
不过本人好久没有玩过这个游戏了,只是突然回想到这个问题,于是来问一下。因此,并不必须解决。
by SlaineTroyard @ 2024-04-21 22:47:44
@[览遍千秋](/user/28910) 是这样的,因为没有学过汇编所以不知道汇编是不是等于这东西
by SlaineTroyard @ 2024-04-21 22:48:40
@[Terrible](/user/195942) 感谢(原来这玩意就是反编译草)
by SlaineTroyard @ 2024-04-21 22:50:10
@[SlaineTroyard](/user/450246) 我也是mindustry玩家hhhhh
by 鏡音リン @ 2024-04-22 02:08:45
@[SlaineTroyard](/user/450246)
for转goto是挺简单的
```for(A;B;C){X};``` →
```
A;
xxx:
if not B goto yyy
X;
C;
goto xxx
yyy:
```
反过来不太行,因为不是所有东西都能表示成循环结构
by 鏡音リン @ 2024-04-22 02:11:16
@[鏡音リン](/user/90893) 可以的吧,这两种语言都图灵完备
by Auferstanden @ 2024-04-22 08:10:47