【发布时间】:2013-07-29 04:26:53
【问题描述】:
过去一两天我一直在研究组装。我一直在阅读一个相当不错的教程,它涵盖了不同的寄存器/二进制数系统的工作原理等;但是,它并没有真正进入汇编代码本身。它只是讨论了组装的概念及其工作原理等(它确实提供了一些代码示例,如下面的示例 - 但没有解释代码中发生的很多事情)。
msg db 'Displaying 9 stars', 0xa
len equ $ - msg
s2 times 9 db '*'
虽然我觉得我越来越了解事情是如何工作的,但我想就上述代码提出几个问题(我真的想了解它是如何工作的,而不是接受它工作的事实)。
1) 0xa 之后可以有任何文本吗(我假设 0xa 是换行符)?
2) $ - VARIABLE(在本例中为 $ - msg)是否获取变量的长度? $ 的真正目的是什么?
3) 这里发生了什么:s2 乘以 9 db ''*
我在问题 #3 中的假设是变量 s2 只是被设置为 9 的字符串。如果是这样,为什么 db '' 排在最后?做 s2 db '*' 次 9 不是更有意义吗
【问题讨论】:
-
组装哪个芯片? x86?哪一个?
-
@JohnSaunders Intel 处理器,x86