我對使用x86程序集中的冒號有點困惑。我知道在實模式%gs:0x14
將%gs
的地址左移4位,並加上0x14
。但在保護模式下它是一樣的嗎?例如在保護模式下,如何解釋%gs:0x14?
movl %gs:0x14 %eax
以什麼方式訪問%gs:0x14
?它就像0x14(%gs)
或與實模式相同?
更新: 使我的問題更清晰,假設%gs = 0x1234
指令movl %gs:0x14 %eax
後%eax的值是多少。
更多信息:
剛剛發現了GS和FS的功能在不同的系統 http://www.akkadia.org/drepper/tls.pdf
本文有用的,此鏈接提供有關分部信息:偏移地址。
http://thestarman.pcministry.com/asm/debug/Segments.html
的可能的複製[什麼結腸:在平均x86彙編語法GAS如%DS:(%BX)](http://stackoverflow.com/questions/18736663/what-does-the-colon- mean-in-x86-assembly-gas-syntax-as-in-dsbx) –