Я пытаюсь записать исходный код машинного кода в виде 0 и 1 в текстовый файл и выполнить его как через BIOS.Как определить значения кода операции x86 на основе действительных смещений и адресации в режиме реального времени?
У меня есть некоторые проблемы с пониманием того, как адресация, умножение, смещение, адресация, операнды и инструкции работают в комбинаторных устройствах, то есть разница между MOV AL, 07
и MOV BL, AL
.
Я имею в виду, что это имеет смысл в Assembly, но в машинный код становится очень сложно получить представление о параметрах.
Итак, что я хочу знать, так это: Как я могу лучше понять это? Нет никаких учебников, которые я нашел, которые точно объясняют/описывают 0 и 1 из инструкций комбинаторных корреляций или соединений между передачей данных, MMIO, режимами адресации, арифметикой и т. П.
На этом сайте http://ref.x86asm.net/coder32.html#x00 он пытается, но я этого не понимаю.
ПРИМЕР: Скажем, я хочу переместить 5 в AL ... Я бы указал буквенный символ «5» в двоичном формате как часть кода операции в двоичном префиксе, закованном в цепочку с инструкцией AL/MOV, или я бы установил один фиксированный двоичный код для каждой команды, независимо от значения? Это то, что я хочу знать ... как понять, как написан машинный код.
http://wiki.osdev.org/X86-64_Instruction_Encoding#ModR.2FM_and_SIB_bytes –
Неясно, мой друг. –