Во-первых, 8086/80386 / x86-64 и 8080/8085 - это совершенно разные архитектуры. 8080 - это 8-битный процессор, а 8086 - 16-битный, с 8085 расширяет набор инструкций 8080, а 80386 и x86-64 являются 32- и 64-битными расширенными ISA 8086. Будучи различными архитектурами, они не двоичный код . А если вы изучаете Rxx, то это 64-битная x86-64 , а не 8086 . 8086 - это ЦП с набором инструкций x86-16 , а не с архитектурой, хотя его набор инструкций иногда можно назвать 8086. Имя архитектуры в общем случае обозначается как x86 или иногда x86-64
На вопрос RBX не является R2 . Действительный кодированный порядок равен AX, CX, DX, BX . И регистры часто (почти всегда) отсчитываются от нуля, поэтому RBX должен быть R3 , а AX, CX, DX будут R0, R1, R2 соответственно. В nasm вы также можете использовать эти пронумерованные регистры с %use altreg
5.1 altreg: альтернативные имена регистров
Стандартный пакет макросов altreg
предоставляет альтернативные имена регистров. Он предоставляет числовые имена регистров для всех регистров (не только R8 – R15), определяемые Intel псевдонимы R8L – R15L для младших байтов регистра (в отличие от стандартных имен NASM / AMD R8B – R15B) и имена R0H– R3H (по аналогии с R0L – R3L) для AH, CH, DH и BH.
https://nasm.us/doc/nasmdoc5.html
К вашему сведению, в intel-8080 регистры кодируются так:
000 0 B
001 1 C
010 2 D
011 3 E
100 4 H
101 5 L
111 7 A
также не в алфавитном порядке
См. Почему первые четыре георадара x86 названы в таком не интуитивном порядке?