1
我无法理解汇编中的绝对寻址和相对寻址的概念,特别是在gcc内联汇编中。我在教程中看到以下代码:gcc内联汇编中的绝对和相对寻址
asm volatile(" \
cli; \
mov %0, %%ecx; \
mov %1, %%esp; \
mov %2, %%ebp; \
mov %3, %%cr3; \
mov $0x12345, %%eax; \
sti; \
jmp *%%ecx "
: : "r"(eip), "r"(esp), "r"(ebp), "r"(current_directory->physicalAddr));
这里的最后一条指令jmp * %% ecx使用a *。除了用于绝对寻址之外,我无法找到星号的重要性的很好描述。我意识到绝对意味着实际物理地址,而相对意味着从程序开始时的偏移量。但是我不清楚相对寻址。我在汇编中阅读了有关PC的相对寻址,但我完全不了解它,并且我不清楚相对和PC相对是否相同。请解释一下。