現在、逆アセンブラを作成しようとしています。次のオペコードとその意味のリストを見つけたので、実行時に解析することにしました 。
しかし、私はオペコード 0x00 で立ち往生しています。その後に reg/modbyte が続きます。それを解析することは、私にとってそれほど問題ではありませんでした。
しかし、Scale-Index-Base バイトに問題があり
ます。実際に esp をインデックス レジスタとして指定すると、実際にはインデックス レジスタがないことを意味します。
同じことが、ebp を使用したベース レジスタにも当てはまります。しかし、私はC++インラインアセンブラで試しました:コンパイルすることは可能です:
add [ebp*2+ebp],cl
では、ebp をベース レジスタとして使用することが実際にはベース レジスタをまったく使用しないことを意味する場合、どうすれば ebp をベース レジスタとして使用できますか!?