标签: assembly operating-system label segment addressing
背景:我正在学习操作系统并阅读一些linux源代码,由于代码直接在段寄存器和标签偏移量上运行,我有些困惑。所以我得到了以下问题:
例如,对于以下代码,如何在汇编中计算实际标签值:
.text [Some code] .data x: 64
x的偏移量是通过x-[.data]还是x-[.text]计算的?
我想了解这一点,因为有时操作系统代码使用seg cs直接设置段值。为了确保寻址正确,我想弄清楚如何计算标签偏移量。
seg cs