Сборка x86: как переместить код в видеопамять и выполнить код? - PullRequest
1 голос
/ 14 марта 2019

Я работаю над простой программой для изменения конфигурации банка памяти старого 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...