嘿,我会用 C 语言编程,会一点 Python 和 Pascal,我真的很想学习汇编。我今年 18 岁,高中毕业,编程是我的爱好,因为学业确实不是什么挑战。
我下载了几本关于汇编的书籍,它们是:汇编的艺术、初学者的汇编、完全初学者的汇编和 Wrox 专业汇编语言。我还下载了 FASM、MASM 和 HLA 编译器。
现在有几个问题。
完全初学者汇编中的示例适用于 MASM,我应该在模拟器中运行它们吗?有人告诉我,如果我不使用模拟器,我可能会损坏我的电脑,如果是,我应该使用哪个模拟器?
另外,开发人员如何使他们的汇编代码可移植?我在这个主题上找到的唯一信息是关于编写病毒的,因为用汇编语言编写的病毒必须是可移植的。
HLA 到底是什么?它是真实的东西还是只是一个伪装成汇编来帮助初学者汇编的 HLL?
除了明显的 vxheaven 和 hacker 网站之外,汇编社区在哪里?
我最近读了很多书,但我感觉自己就像一个正在学习拉丁语的人,但永远不会去梵蒂冈见到其他说拉丁语的人。我的朋友都用 Java 编程,但似乎并不关心 C 或 C++,他们认为他们可以使用 Java 做所有事情。我在 Intel 上运行 Windows 7 和 Ubuntu 10.0.10。我现在只编程了大约一年......我是否太快进入汇编了?我想学习汇编的原因:
- 想要更多地了解 CPU 的工作原理。
- 寻找挑战。
- 想学习编写高效的代码。
- 想要编写更小更快的程序。
- 当我掌握了汇编之后,想了解更多关于操作系统开发的知识。
- 如果我掌握了汇编,学习更多 HLL 会更容易。
- 希望在申请工作时能提供一些其他人没有的东西。
- 对 AVR 感兴趣,例如 Arduino,它使用 C 而不是汇编,但想了解更多有关 AVR 的信息。
谢谢。时间
1) 运行汇编程序对系统的“损害”不会比运行 C 程序更大。在现代操作系统上,最糟糕的结果通常是进程崩溃。不过,无意中从汇编代码中导致进程崩溃可能会更容易一些。如果你想得到一些东西useful在模拟器之外,请查看 Bochs 或 QEMU - 他们不仅提供沙箱,还提供有用的调试工具。不过,即使没有虚拟机,您也可以使用常规调试器在常规操作系统上编写+测试代码。
2)你不知道,真的。您可以像 C 语言一样跨操作系统(但使用相同的 CPU)进行移植,但是跨 CPU 汇编没有意义(如果您想这样做,您最好使用 C 或 .NET 或 Java 字节码)。
3)许多争论的主题。取决于你如何看待它......汇编器实际上只是一个处理汇编语言的编译器。组装的风格有很多种,有些比其他的更高级;有些则比其他的更高级。大多数可用于 x86 的都有宏支持。 HLA 添加了一个lot宏支持和很多人不喜欢的语法,再加上一个大的标准库。不是我喜欢的(我宁愿使用“真正的”HLL),但在我的书中它仍然是汇编语言。
4) http://www.asmcommunity.net/board/ http://www.asmcommunity.net/board/ , http://board.flatassembler.net http://board.flatassembler.net:) - 远离 IRC 频道。另外,请远离 usenet alt.lang.assemble,它几乎已经被一些卑鄙的人摧毁了。
至于学习汇编的几个原因:
6.如果我掌握了汇编,学习更多HLL会更容易。
不一定,如果你在深入研究 HLL 之前“做太多”,事情可能会变得更加困难。我发现一些机器架构知识可以帮助您编写出更好的软件,但前提是您学会不要一直沉迷于无关紧要的微小细节。
7.在申请工作时希望能提供一些别人没有的东西。
不一定对您有帮助,因为装配在大多数职位中完全无关紧要。哎呀,你可能会冒着“哦,他永远不会把事情做好,迷失在无用的微优化中”的偏见。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)