Декодирование инструкций, когда инструкции имеют переменную длины

Вот некоторые инструкции и их соответствующие кодировки:

55                      push   %ebp
89 e5                   mov    %esp,%ebp
83 ec 18                sub    $0x18,%esp
a1 0c 9f 04 08          mov    0x8049f0c,%eax
85 c0                   test   %eax,%eax
74 12                   je     80484b1 <frame_dummy+0x21>
b8 00 00 00 00          mov    $0x0,%eax
85 c0                   test   %eax,%eax
74 09                   je     80484b1 <frame_dummy+0x21>
c7 04 24 0c 9f 04 08    movl   $0x8049f0c,(%esp)

Сегодняшние микропроцессоры часто бывают 32- или 64-битными, и я предполагаю, что они обычно читают данные из памяти кусками по 4 или 8 байтов. Однако инструкции могут иметь переменную длину. Как микропроцессор декодирует эти инструкции и почему они не имеют постоянной длины, чтобы упростить реализацию?

11
задан Martin 21 November 2011 в 09:29
поделиться