Mac 怎么弄汇编呢?

2015-03-09 11:03:47 +08:00
 hulalalala

正在学习编译原理和汇编。根据 http://compilers.iecc.com/crenshaw/ 的tutorial,作者用的是turbo pascal 4.0,我想知道有没有其他更简单的方式,比如直接在terminal里面执行之类的。第一次发帖,多谢啦!

6428 次点击
所在节点    问与答
7 条回复
gaocegege
2015-03-09 11:15:49 +08:00
我在学编译原理的时候是要求写一个编译器,后端可以用llvm,llvm在mac是可用的。
hahastudio
2015-03-09 11:22:17 +08:00
按这个教程学的话,还是虚拟机装个 Windows 实在
我记得虎书是反过来的,那些工具用在 Windows 上比较痛,用在 *nix 上比较舒服
cdfmr
2015-03-09 11:47:23 +08:00
TP4的话,DOSBox就够了;或者试试用FPC(Free Pascal)替代TP4。至于Mac下的汇编器,nasm/yasm/jwasm/fasm应该都可以吧。
h4x3rotab
2015-03-09 11:55:10 +08:00
这个我有发言权,参见我的期末作业plang-llvm项目:
http://h4x3rotab.github.com

这是一个完全在osx下开发的编译器,前端flex+bison实现语法分析,然后自己写代码生成llvm-ir,喂给llvm优化和汇编。你需要用到的工具有:

* homebrew:osx的apt-get,安装开源工具必备
* 一个词法分析器生成器,比如flex
* 一个语法分析器生成器,比如bison、lemon
* Xcode:不必非要用xcode做开发,但是里面的工具链你是需要的,包含clang和make

编译原理的学习,前端你可以去自己实现分析器或者用生成器,后端建议用llvm框架,这样你就不用担心繁琐的汇编和链接问题了。如果po主只关心asm的话,直接写了汇编代码,保存为.S文件,用clang就可以处理,他会帮你调用汇编器和连接器,生成可执行文件。

不敢苟同上面的回复,osx是一个unix系统,意味着所有的unix/linux开源工具链都可以使用,在win下下面要不就cygwin,要不就用vs,前者折腾,后者很难体会到编译原理体系,因为所有东西都集成在一起。win下面学习汇编最好的办法是用ollydbg之类的调试器玩破解。

另外上面的链接不知道有没有贴错,用平板在外面回答的,有问题可以吼我一下,回去修改。
yangff
2015-03-09 12:23:09 +08:00
@h4x3rotab 。。你什么时候产生了win上所有东西是集成在一起的错觉。。
loading
2015-03-09 13:30:06 +08:00
虚拟机 dos,连ms dos也别用,不然有些操作系统层面的东西会干扰你。
yingluck
2015-03-09 15:33:10 +08:00
编译原理跟汇编没什么关系吧 python也可以写编译器
想搞汇编 可以买块板子搞 更有成就感

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/175487

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX