ORG только сообщает компилятору, где ожидать, что код (и статические данные) будут в памяти. (поэтому mov ax, OFFSET my_label
можно собрать по правильному числовому адресу). Это не то, что вам нужно для этого, если вы не загружаете свой код по этому высокому адресу и не располагаете рядом расположенными данными с метками.
Вместо этого вы можете установить DS (и / илиES) к числовому значению и использовать смещение относительно этого к адресной памяти.
mov ax, 0x1400
mov ds, ax
mov byte ptr [0], cl
Хранит байт (от CL) до 1400:000
, который в реальном режиме является линейным адресом 0x14000
.
Если это не дает того, что вы хотите, значит, у вас также есть (виртуальная) аппаратная проблема, а не программная проблема . Возможно спросите об этой части на https://electronics.stackexchange.com/