Accès mémoire Mode FLAT

Forthman Messages postés 23 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 9 janvier 2014 - 2 janv. 2014 à 12:52
Forthman Messages postés 23 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 9 janvier 2014 - 9 janv. 2014 à 09:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/100324-acces-memoire-mode-flat

Forthman Messages postés 23 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 9 janvier 2014
9 janv. 2014 à 09:14
Bonjour,

Arf! oui tu as raison, je n'ai pas indiqué pour quel OS est destiné ce code... (c'est corrigé)
Raté, c'est pas du Win$ mais du DOS, et le fichier compilé est un .COM
pour la documentation du code, il est tellement petit que je n'ai pas pensé cela utile...

merci
François
Scaq Messages postés 8 Date d'inscription lundi 7 octobre 2002 Statut Membre Dernière intervention 8 janvier 2014
8 janv. 2014 à 15:01
Hum, ça fait plus de 10 ans que j'ai pas touché à l'asm, mais ayant développé un squelette de système d'exploitation 16/32bit linéaire, j'aurais ajouté dans ta description que la source est pour windows (.exe ), et j'aurais plus commenté le code.

Voici un bout de mon code j'espère être utile :

INICS:

;INSTALL VESA
MOV AX,4F00h
MOV DI,VBE_INFO_VESA ;512 octets
INT 10h ;OUT: AX=Status

MOV AX,4F01h
MOV CX,[MODE]
MOV DI,VBE_INFO_MODE ;256 octets
INT 10h ;OUT: AX=Status
;LFB linear frame buffer video
MOV AX,4F02h
MOV BX,[MODE]
OR BX,4000h ;LFB enable
MOV DI,Pointer_CRTC_INFO
INT 10h

;Symbiose-BIOS
; masque interruption bios
CLI

; masque toutes les IRQ
MOV AL,0FFh
OUT 21h,AL
MOV AL,0FFh
OUT 0A1h,AL

; masque NMI
MOV AL,10000000b
OUT 70h,AL

;CODE 16bit REEL,MEMOIRE 32bit LINEAIRE

; A20 enable
IN AL,92h
OR AL,00000010b
OUT 92h,AL

; Reset Registres et flags
XOR EAX,EAX
MOV DS,AX
MOV ES,AX
MOV FS,AX
MOV GS,AX
MOV SS,AX
XOR EBX,EBX
XOR ECX,ECX
XOR EDX,EDX
XOR EDI,EDI
XOR ESI,ESI
MOV ESP,Stacks
MOV EBP,ESP
PUSH EAX
POPFD

SGDT [GDT16]
LGDT [GDT]

MOV EAX,CR0
INC EAX
MOV CR0,EAX

MOV BX,08h
MOV DS,BX
MOV ES,BX
MOV FS,BX
MOV GS,BX
MOV SS,BX

DEC EAX
MOV CR0,EAX

;INSTALL EXCEPTIONS
MOV EAX,EXCEPT00
MOV [0000h],EAX
MOV EAX,EXCEPT00
MOV [0008h],EAX
MOV EAX,EXCEPT00
MOV [0010h],EAX
MOV EAX,EXCEPT00
MOV [0018h],EAX
;INI_PIC
;INSTALL IRQs
;unmask NMI
XOR AX,AX
OUT 70h,AL
;PIC
MOV AL,11101100b ;activ IRQ,b4=com1,b1=clavier,b0=timer
OUT 21h,AL
STI
Rejoignez-nous