我正在上一门关于计算机组织和架构的课程,作为课程的一部分,我们必须学习汇编语言。他们告诉我们安装NASM,但是TASM和MASM也是完全可以接受的,尽管如果我遇到后两者问题他们也无济于事。
我在Windows 7旗舰版64位上,因此NASM无法正常工作。在尝试了两天找到解决方案让它在我的电脑上运行后,我终于放弃了。现在我用DOSBox运行TASM。
所以我的问题是:
NASM代码样本会让我在TASM上运行吗?如果我开始学习TASM教程,即使用NASM编译它,我也会学习他们正在教授的完全相同的组装吗?
我不想因为我习惯了不同的编译器而在考试中得到错误答案。
答案 0 :(得分:2)
TASM和NASM是非常不同的汇编程序。
.
); (大多数)TASM符号是全球性的。正如@Peter Cordes所指出的那样:
0x
前缀); mov ax, address
,这意味着什么是AT address
,而不是address
- 作为一个值。没错,这是为了与微软(甚至更糟糕的)MASM兼容。要避免使用最后一个,总是使用mov ax,offset address
或mov ax,[address]
以避免任何歧义。
虽然汇编程序的实际操作码和寄存器是相同的,但它周围的所有额外定义都使用完全不同的语法。
我使用TASM几十年了。现在我被迫使用NASM - 和I don't like it very much ......