Я работаю над простой программой для изменения конфигурации банка памяти старого 16-битного ПК x86 с MASM6.
В настоящее время, когда я выполняю код из основной памяти, он зависает.Кажется, это потому, что сам код находится в основной памяти.Когда код выполняется, сам код уничтожается из-за изменения конфигурации памяти.
Поэтому я хочу переместить код из основной памяти в видеопамять и выполнить его из видеопамяти.
Пожалуйста, дайте мне советы о следующих кодах, чтобы переместить код из основной памяти в видеопамять и выполнить его.Выполнение следующего кода по-прежнему приводит к зависанию системы.
.MODEL SMALL
.STACK 100H
.DATA
MSG DB ' Bank Configuration is Successfully Changed',0DH,0AH,'$'
.CODE
MAIN PROC
MOV CX,OFFSET T_HERE - OFFSET F_HERE
MOV SI,OFFSET F_HERE
MOV DI,0B800H
REP MOVSB
JMP T_HERE
F_HERE:
MOV AX,@DATA
MOV AX,0B800H
MOV DS,AX
MOV DX,03872H
MOV AX,0DH
OUT DX,AX
MOV AH9
LEA DX,MSG
INT 21H
MOV AH,4CH
INT 21H
T_HERE:
MAIN ENDP
END MAIN