我读到汇编语言依赖于处理器,并且每个处理器都有特殊的指令集。 我使用intel i5 x86_64架构处理器。 当我编写代码时,我没有使用任何不同的指令集。 我使用 NASM 汇编器。它组装我的代码并转换为二进制。 那么处理器出了什么问题呢? 即使我的 friend 具有不同的架构也运行相同的代码(不是编译的而是源代码)并获得相同的输出...... 那么汇编语言处理器依赖在哪里??
代码是......这只是一个例子,每段代码都运行在 x86_64 和 8088 微处理器架构上
[ORG 0x7c00]
xor ax, ax ;make it zero
mov ds, ax
mov si, msg
call bios_print
hang:
jmp hang
msg db 'Welcome to Macintosh', 13, 10, 0
bios_print:
lodsb
or al, al ;zero=end of str
jz done ;get out
mov ah, 0x0E
int 0x10
jmp bios_print
done:
ret
times 510-($-$$) db 0
db 0x55
db 0xAA
最佳答案
去汽车经销商那里试驾一辆全新的丰田。然后去其他二手车场找到同型号但不同年份的旧丰田。它们每年都不相同,但多年来它们通常与其他车型非常相似,例如某些元素、门锁、车窗控制等的位置和外观和感觉。然后去福特经销商处,对某些车型进行重复福特的。福特与丰田立刻就有了显着的不同,尽管它们都是四轮汽车和具有相同功能的发动机。在福特汽车中,它们通常与它们的 sibling 以及前年和后年模型的具体细节相似,连续多年共享零件。
这里没有什么不同,x86 处理器中的一些项目您可以看到与第一个 8088/86 的相似之处。但将其与 Power PC、ARM 或 MiPS 进行比较,您会发现,尽管它们都是可以运行现代操作系统的处理器,但它们的具体细节以及外观和感觉在不同品牌之间比在品牌内部差异更大。
关于assembly - 我正在尝试学习汇编语言,我有一些疑问,我在下面提到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20421996/