EBP レジスタからポインタ アドレスを呼び出せないのはなぜですか? これが意味することは、次のコードパターンで示されています。
- OpCode: '0xFF 0x10' -> CALL DWORD PTR DS:[EAX]
- OpCode: '0xFF 0x11' -> CALL DWORD PTR DS:[ECX]
- OpCode: '0xFF 0x12' -> CALL DWORD PTR DS:[EDX]
- OpCode: '0xFF 0x13' -> CALL DWORD PTR DS:[EBX]
- OpCode: '0xFF 0x14' -> CALL DWORD PTR SS:[ESP+EDI]
- OpCode: '0xFF 0x15 0x012345678' -> CALL DWORD PTR DS:[0x012345678]
- OpCode: '0xFF 0x16' -> CALL DWORD PTR DS:[ESI]
- OpCode: '0xFF 0x16' -> CALL DWORD PTR DS:[EDI]
'5' は「Intel Instruct マニュアル」に記載されていますが、'6' は直接参照されることはなく、EBP レジスタから呼び出すことができないと明言されることもありません。これは役に立たない機能ではないことはわかっていますが、Intel がこれら 2 つのレジスタを使用することを選択した理由、それは単なる設計上の選択なのか、それとも私が見逃しているものなのでしょうか? (推測ですが、本当の理由が知りたいです。)