1

我正在开发一个简单的程序来使用 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
4

0 回答 0