Опкоды команд x86-64

По моему, я экстрасенс... Вот так и знал, что именно об этом спросят... Ну хорошо:
1) В некоторых книгах (ну... в книге...), в некоторых туториалах, статьях на эту тему и.т.п имеются слишком много неточностей, которых бы при наличии подобной таблицы не было... То оказывается, что mov для перемещения из памяти в регистр и mov для перемещения между регистрами - совершенно разные комманды с разными опкодами (и вообще, вариантов mov больше десяти), то оказывается, что один и тот же вариант инструкции add можно записать двумя разными вариантами, и во второй будет на 3 байта короче, то ещё что-нибудь... Из-за этого, когда я читаю книгу об ассемблере, не имея под рукой подобную таблицу, мне просто некомфортно...
2) Возникла у меня как-то идея придумать свой C-подобный язык, и написать на c++ для него свой собственный компилятор (просто потому-что)... Как только я окончательно осознал, насколько это, на самом деле просто, я решил, что выдуманного байткода выдуманной машины мне не достаточно...
3) Ненавижу абстракцию... А точнее, ту абстракцию, о которой я ничего не знаю... Поэтому в какой-то момент я бросил делать недоигры в unity, поэтому ещё чуть позже я бросил C#, поэтому ещё чуть позже я начинал писать свой движок на c++ да openGL (с главной целью именно понять, как он должен работать, а не написать свой Unity. По крайней мере, с первым я справился), поэтому мне в какой-то момент пришла идея придумать свой ЯП...
4) Я просто хочу, что-бы у меня была эта таблица...

Добавлено через 1 минуту
Забавно, что и про префиксы, и про байт ModR/M я знаю, и что-то мне это не кажется чем-то слишком сложным... Вот только я хочу знать про кодировку команд ВСЁ, а не только те кусочки, которые я выловил с разных сайтов...

1