Я написал очень простое ядро, которое загружается внутри QEMU с помощью GRUB. У меня, вероятно, проблема с вычислением указателя, но я не могу понять, что не так.Ошибка определения местоположения памяти видеопамяти BIOS
Следующий код работает должным образом, он печатает данный символ.
char* video = 0xb8000 + 0;
char* color = 'A';
*video++ = c;
*video++ = color;
Однако при изменении вычисления указателя видео к этому он не работает, на экране ничего не появляется:
int pos = 0;
char* video = 0xb8000 + pos;
Но когда я делаю позы переменным без знака Int, он работает uncorrectly, но когда Я делаю это 1, он работает как первый, но почему он должен быть 1?
unsigned int pos = 1;
char* video = 0xb8000 + pos;
Мои C флаги: CFLAGS = -std=c99 -pedantic -Wall -nostdlib -ffreestanding -g
это не должно быть 'символ цвета =«A'' (вместо указатель)? –
Да, вы правы! – Mustafa