Я использую NASM для сборки кода на ассемблере. Код, который я собрал, выглядит так:
[BITS 32]
[ORG 0]
jmp 07c0h:start
testvar db 0, 0, 0, 0, 0, 0, 4, 8, 15, 16, 23, 42
start:
mov byte [testvar], 47
hang:
jmp hang
times 510-($-$$) db 0
dw 0AA55h
У меня были проблемы с другим фрагментом кода, я заметил, что не могу изменить память, поэтому я написал этот фрагмент кода, чтобы проверить, так ли это на самом деле. Это было! Я скопировал собранный машинный код в первый сектор дискеты, программа запустилась (я использовал MS VirtualPC). Я проверил оперативную память, выделенную для Virtual PC, и искал числа 4 8 15 16 23 42, чтобы я мог найти, куда был скопирован двоичный код. Первый байт данных не был затронут. Почему это так?