我有相当多的编程经验,但它都是高级语言.我最近选择了C,那个项目进展顺利,学习经验非常值得.
现在我想更进一步学习汇编语言,但理想情况下我想在嵌入式平台上学习,因为我看到了我未来的一些项目.问题是,哪个是初学者的最佳起点或"套件"?
我正在寻找一些相当容易组合的东西,可以做"真实世界"的事情,并且通常提供一个可以建立的良好基础.
AVR 并不是最好的指令集。我会将其保存为第二个或第三个指令集。但最终你可能会到达那里,因为 arduino 非常受欢迎,并且得到了社区的良好支持(尽管 asm 是例外,而不是那个世界的规则)。
现在你可以花 4.30 美元买到一块 msp430 板,基本上 TI 正在承担赠送这些东西的成本。msp430是一个很好学习的指令集。
armmite pro 是一个不错的 arduino 大小的板,但使用手臂而不是 avr。手臂和拇指是很好的指令集。
几乎所有东西都有模拟器,无论是否,编写模拟器都是了解事物如何工作的非常好的方法。如果不出意外的话,我通常建议编写一个反汇编程序。
另外,带有 C 编译器的指令集也很好,因为您可以编写一些 C 代码,进行优化,看看输出什么样的汇编程序,并了解有关汇编程序的不同知识。首先学习一些提高效率和性能的技巧,稍后您将能够超越编译器,或者至少达到同等水平。所有提到的都有某种C编译器,avr和msp有办法让gcc工作,arm和thumb受到主线编译器的支持。llvm 是自动交叉编译器,因此您不必编译编译器即可开始使用,llvm 的 msp430 后端是实验性的,但应该可以工作或接近,arm 和拇指后端都很好(在 clang 中使用 -m32 以避免 64 位64 位主机上的整数)。
Stellaris 芯片以前是 luminary micro,现在是 ti(德州仪器),都很好,只有拇指/拇指 2。mbed 实际上非常好,除了蓝色 LED(让我偏头痛),您不需要提交到沙箱,插入 USB,它像文件系统一样安装,将 .bin 文件复制到闪存,按重置按钮它运行你的程序。
Sparkfun.com 是您的朋友、开发者工具,并且有来自所有玩家的一长串基于微控制器的开发板。我提到的 msp430 板大约是 5 美元,armmite pro,arduino 的多种口味,我推荐 lilly pad,它的价格与 arduino pro 差不多,但已经焊接了接头,可以与小 USB 一起使用到您也想购买的系列产品。stellaris 在 Sparkfun 上没有代表,但许多 50 美元以下的主板都有代表。
msp430 板、armmite pro、arduino 板、stellaris、mbed 等需要电源,通常通过 USB 电缆供电,或者某些需要使用基于 ftdi 的 USB 转串口设备
如果您选择模拟器路线,qemu 支持许多指令集,arm/thumb。有gameboy和nds模拟器。nds 模拟器的想法,以源代码形式附带了适用于arm9 和arm7 的arm 内核,不过我还没有尝试单独提取和使用它们。如果您想继续使用旧式系统,那么市面上有大量的 6502 和 z80 仿真器,无论您相信与否,有些编译器都可以,当然还有汇编器。
我要学习的最后一个汇编程序是 x86,可怕的指令集,并且由于变化和微编码,您不会全面超越编译器,是的,您当时的计算机,但所有 x86 计算机都不值得花时间。其他指令集更重要的是要了解(arm、thumb、thumb2、avr)。