- Joined
- Feb 3, 2010
- Messages
- 429
- Reaction score
- 81
Здравейте Започнах да се занимавам с някакво съпер ниско ниво на С понеже ми дадоха такова домашно ... и ми стана интересно, но нещо немога да се оправя :S
Все още съм на Hello World и за момента проблема е при принтиране. Компилирам към corei7 и четох, че там са малко по различни регистрите от тези на 8086(за който ми обясняваха как бачка ...) Затова започнах нещо и успях да принтирам нещо от масив ,но когато пусках масива да се принтира от цикъл и .... всичко умря ...
Ето го кода който драснах
а ето и грешката
gcc -c -g -Os -march=corei7 -ffreestanding -Wall -Werror test.c -o test.o
Моля ако някой може да помогне
Все още съм на Hello World и за момента проблема е при принтиране. Компилирам към corei7 и четох, че там са малко по различни регистрите от тези на 8086(за който ми обясняваха как бачка ...) Затова започнах нещо и успях да принтирам нещо от масив ,но когато пусках масива да се принтира от цикъл и .... всичко умря ...
Ето го кода който драснах
__asm__(".code16\n");
__asm__("jmpl $0x0000, $main\n");
void printChar(unsigned int thechar){
__asm__("int $0x10" : : "a"(0x0e00| thechar), "r"(0x0007));
}
void main() {
char string[] = "Hello World";
// printChar(string[0]);
int i = 0;
while(string != '\0'){
printChar(string);
i++;
}
// printChar(string[1]);
}
а ето и грешката
за да компилирам ползвам/tmp/ccVOgan8.s: Assembler messages:
/tmp/ccVOgan8.s:40: Error: `movabs' is only supported in 64-bit mode
/tmp/ccVOgan8.s:41: Error: bad register name `%rsp)'
/tmp/ccVOgan8.s:50: Error: bad register name `%rax'
/tmp/ccVOgan8.s:51: Error: bad register name `%rsp)'
/tmp/ccVOgan8.s:54: Error: bad register name `%rdx'
/tmp/ccVOgan8.s:57: Error: bad register name `%rdx)'
make: *** [test] Error 1
gcc -c -g -Os -march=corei7 -ffreestanding -Wall -Werror test.c -o test.o
Моля ако някой може да помогне
Last edited: