PDA

Visualizza la versione completa : [C/assembly] memoria video in c


theboss11
15-05-2010, 15:28
salve, sono nuovo del forum e avrei bisogno di un piccolo aiuto.
sono un programmatore dilettante, conosco il c e le basi di assembly.
in assembly possibile indirizzare la cella di memoria 0b800, contenente la matrice della finestra del prompt dei comandi.
volevo sfruttare questa cosa anche dal c, ma per fare ci necessario ricorrere all'assembly.
ho quindi provato a buttare gi questo codice, giusto per vedere se poteva funzionare:

#include <stdio.h>
#include <conio.h>
main(){
asm("mov $0x0b800, %ax");
asm("mov %ax, %es");
asm("mov $2500, %bx");
asm("mov $49, %al");
asm("movb %al, %es:(%bx)");
getch();
}
tuttavia, quando cerco di caricare es con l'indirizzo 0b800 ottengo una violazione di memoria che impedisce il proseguimento del programma.
come ambiente di lavoro uso dev-cpp.
potete spiegarmi perch mi da questo errore, nonostante traducendolo con la sintassi intel e assemblandolo col tasm restituisce l'effetto desiderato?
nel caso questo metodo non si possa usare, mi potete suggerire un metodo alternativo?
grazie a tutti coloro che risponderanno.

Loading