在过去的一两天里,我一直在研究大会。我一直在阅读一个相当不错的教程,它涵盖了不同的寄存器/二进制数系统的工作原理等;但是,它并没有真正进入汇编代码本身。它只是讨论了汇编的概念及其工作原理等(它确实提供了一些代码示例,如下面的示例 - 但没有解释代码中发生的很多事情)。
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 '*' times 9 不是更有意义吗