Lab 2: Базовые команды и кодирование для процессора #2

Merged
mrqiz merged 21 commits from labs/02 into main 2024-09-22 18:15:51 +03:00
8 changed files with 302 additions and 0 deletions
Showing only changes of commit 3e6a77c710 - Show all commits

View File

@ -125,7 +125,7 @@ SIB байт состоит из 2 битов SS, которые предста
*Интересный факт, в качестве index не может использоваться rsp* *Интересный факт, в качестве index не может использоваться rsp*
Не буду много повторяться. Instruction `lea r/m16`. Opcode `FF /0`. `/0` означает, что в ModR/M в поле reg нужно записать 3 нуля. Остальное адрессуется как обычно, поэтому самое время обсудить вот какую вещь. Если нам необходимо опустить базу, то в SIB байте мы поставим в поле base 101. Однако для этого в mod нужно поставить 00 и автоматически придется записать 4 байта смещения. Не буду много повторяться. Instruction `inc r/m16`. Opcode `FF /0`. `/0` означает, что в ModR/M в поле reg нужно записать 3 нуля. Остальное адрессуется как обычно, поэтому самое время обсудить вот какую вещь. Если нам необходимо опустить базу, то в SIB байте мы поставим в поле base 101. Однако для этого в mod нужно поставить 00 и автоматически придется записать 4 байта смещения.
[ 0110 0110 ] [ 1111 1111 ] [ 00 000 100 ] [ 01 110 101 ] [ 0001 1111 ] [ 0000 0000 ] [ 0000 0000 ] [ 0000 0000 ] [ 0110 0110 ] [ 1111 1111 ] [ 00 000 100 ] [ 01 110 101 ] [ 0001 1111 ] [ 0000 0000 ] [ 0000 0000 ] [ 0000 0000 ]