我想学习汇编,但我真的很看重多平台代码,而且我见过的大多数汇编语言和教程只迎合一种特定的汇编子语言(MASM 或 TASM 或 YASM)和一种特定的操作系统(Mac 或Windows 或 Linux)。
是否有适用于 Mac OS X、Windows 和 Linux 的汇编语言和教程?我怀疑 GCC 可以识别一些 X86 汇编器格式,并且 GCC 是一种多平台编译器——这种语言会被称为什么,是否有教程?
也发布在r/programming上。
我想学习汇编,但我真的很看重多平台代码,而且我见过的大多数汇编语言和教程只迎合一种特定的汇编子语言(MASM 或 TASM 或 YASM)和一种特定的操作系统(Mac 或Windows 或 Linux)。
是否有适用于 Mac OS X、Windows 和 Linux 的汇编语言和教程?我怀疑 GCC 可以识别一些 X86 汇编器格式,并且 GCC 是一种多平台编译器——这种语言会被称为什么,是否有教程?
也发布在r/programming上。
对于您的需求,请参见
nasm (http://www.nasm.us)
以及 nasm 的一些好的“起点”
扩展无聊的长答案
恐怕每个汇编程序都有自己的陷阱。
我开始了我的自定义宠物项目编程语言(转换为“C”,不生成二进制代码),并且想要制作一个完整的编译器,所以我对您提出的同一主题进行了一些快速研究。
例如,MASM 和 NASM 都针对 x86 处理器,但是,汇编器语法不同。
您还可以考虑您正在使用什么操作系统(而不是什么处理器),您可能必须与之交互。
一些汇编程序书籍是从非常电子化的角度编写的,这使得学习汇编程序变得非常困难。
先决条件
在回到汇编程序之前,您可能想学习一些主题。您可能已经知道这些主题的大部分内容,但是,最好再读一读。
(1) (Re) 了解不同的数字表示法,如何在不使用计算器的情况下手动将十进制数转换为十六进制、八进制和二进制表示法。
(2) (Re) 了解字符的存储方式,ASCI & EBDIC & MAC,您可能需要打印的 ASCII 字符图表。
(3) (Re) 了解布尔&位、逻辑、位运算、“AND”、“OR”、“XOR”
(4) (Re) 了解内存存储大小。Giga、Mega、Byte、Word、QWord 或 LongWord。
(5) (Re) 了解有符号整数和无符号整数的区别。以及如何在内存中存储不同的整数。
快速简短的回答
了解更多使用的 3 种架构和操作系统的基础知识
(1) 学习单个 CPU 的基础知识,而不是全部知识,例如 x86 和 Windows 中的 NASM。
(2) 继续使用其他架构,例如 x86 和 Linux 中的 NASM。
(3) 继续其他架构,例如 MacIntosh。
(4) 学习在前 2 个目标中完成简单但等效的任务。
(5) 在第三个目标中学习做同样的事情。
(6) 检查操作系统调用,添加 2 个数字并将结果存储在任何 CPU 中的寄存器中并不困难。但是,调用在控制台窗口或 GUI 窗口中显示消息的系统调用可能会改变。
(7) 大多数汇编程序被称为“宏汇编程序”,允许使用单行代码转换为多行 opf 代码。将它们用于单个宏,该宏在多个汇编程序中读取相同,但在每个 CPU 中翻译不同。
(8) 给组装班的 kiteh,一个金枪鱼罐头。
干杯。