我正在开发一个简单的程序来使用 MASM6 更改旧 x86 16 位 PC 的内存组配置。
目前,当我从主内存执行代码时,它挂断了。似乎是因为代码本身在主内存中。当代码被执行时,由于内存配置的改变,代码本身就被破坏了。
因此,我想将代码从主内存移动到视频内存,并希望从视频内存中执行它。
请给我有关以下代码的建议,以将代码从主内存移动到视频内存并执行它。执行以下代码仍然会使系统挂起。
.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