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:
codice:
#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.