アセンブリ、特に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は*を使用します。アスタリスクが絶対アドレス指定に使用されていることを除いて、アスタリスクの重要性についての適切な説明を見つけることができませんでした。絶対は実際の物理アドレスを意味し、相対はプログラムの開始からのオフセットを意味するという考えを私は得ています。ただし、相対的なアドレス指定については明確ではありません。アセンブリでPC相対アドレス指定について読みましたが、完全には理解しておらず、相対とPC相対が同じであるかどうかがわかりません。説明してください。