0
A
回答
2
這只是間接跳過表格。正如你所希望的那樣,.L4(,%rdx,8)
是一個內存地址,其值爲.L4 + rdx * 8
。在64位模式下,指針是8個字節,因此是比例因子。 rdx
只是表中條目的索引。
的*
沒有任何區別,除了:)你應該使用間接跳轉一個*
沉默彙編警告,但是當彙編能弄清楚,它只是給一個警告。 (,%rdx,8)
是一個不爭的事實,這是一個間接的跳躍。如果您有jmp *.L4
,則需要*
將其與jmp .L4
區分開來。前者是通過.L4
處的指針間接跳轉,而後者則是直接跳轉到.L4
。
相關問題
- 1. 解釋GDB寄存器(SSE寄存器)
- 2. 大會部分寄存器
- 3. 跳轉後寄存器和變量未保存狀態
- 4. 解釋ISL12022的i2c寄存器映射
- 5. 跳轉和鏈接寄存器MIPS
- 6. 如何解釋x86-64上的段寄存器訪問?
- 7. 與寄存器
- 8. VB.net寄存器鍵,在標籤出
- 9. 大會EAX寄存器沒有道理
- 10. 如何在寄存器中移動標籤的地址
- 11. 大會,依靠寄存器與變量的效率?
- 12. 大會:與32位寄存器的64位乘法
- 13. 如何跳轉到指定的標籤的多標籤讓與jQuery工具
- 14. Matlab文本模式下標軸標籤太大(LaTeX解釋器)
- 15. 如何理解和更改bochsdbg中的CPU寄存器標誌?
- 16. 如何切換跳轉標籤
- 17. 目的條件跳轉的歸零寄存器
- 18. mmap()中的PROT標誌如何轉換爲寄存器值?
- 19. 跳入寄存器也升級到MacOS Sierra後跳到默認的一個
- 20. x86彙編寄存器和mov指令,並跳轉抵消
- 21. 實現寄存器跳轉控制,單週期MIPS
- 22. 在CPU寄存器中分配寄存器變量的標準?
- 23. 解引用寄存器gdb
- 24. NERDTree跳轉到標籤號
- 25. 機器人解釋腳本標籤
- 26. 心跳解釋
- 27. GDB寄存器與處理器寄存器不同嗎?
- 28. 如何跳過XML標籤?
- 29. 使用SAX解析器解析大型XML文件(跳過一些行/標籤)
- 30. PHP Mysql最大寄存器大小?
感謝您的回答。我現在的問題是你如何計算.L4 + rdx * 8?我很困惑,因爲.L4是一個標籤,添加標籤是如何工作的?我還應該補充說明.L4保留的是一些(.quad.L2)指令(L2-L7)。我如何知道間接跳轉的標籤? – skob002
正如我所說,'rdx'是索引。如果您知道'rdx'中的值,您只需知道它將使用哪個標籤。如果'rdx'是'0',它會轉到第一個標籤,如果它是'5',它將轉到第六個標籤等。 – Jester
@ skob002:所有標籤都有一個地址。 –