FromNandの日記

自分的備忘録

【x86アセンブラマニュアルの読み方】ModR/Mとかも

https://code-examples.net/ja/q/e526bb」は日本語訳されていて、「https://wiki.osdev.org/X86-64_Instruction_Encoding#Registers」は割と完成されたガイドみたいな感じ。

 

「オペコード + ib」「オペコード + iw」「オペコード + id」というのは、オペコードの後にイミディエイトデータが続くという意味。

ibは1byte、iwは2byte、idは4byteを意味する。

 

「オペコード /5」とか言うのもあったりするが、これはオペコードがModR/Mにまで及んでいる場合。

MODR/Mの中のREGの部分が右の値だった場合にその命令を実行する。

例えば、「83 /5 ib」というのは「sub rm32, imm8」を意味する。

「FF /0」は「inc rm32」を意味するが、「FF /1」は「dec rm32」を意味するといったように、REGの部分で命令の意味が変わったりすることもある。