Tag: 16位

实模式内核的16位C代码

我不知道如何为16位实模式编译我的C内核。 我试过各种编译器但没有运气。 我的引导加载程序只是从软盘(我的内核就在磁盘上的第一个扇区之后)加载原始扇区到物理内存地址1000h:0000h然后跳转到它。 如何编译我的C内核以16位实模式工作? 我的基本内核: void OSmain() { unsigned char *videoram = (unsigned char *) 0xb8000; videoram[0] = 65; /* character ‘A’ */ videoram[1] = 0x07; /* forground, background color. */ while( 0 ) { } } 我尝试过的编译器是GCC,tinyCC和DMC。 我的目标是得到一个平坦的二进制文件,我可以跳转到开始执行。

C 8位16位32位编译器之间的区别

这个问题可能是多余的,但我没有找到确切的答案。 C 8位16位32位编译器之间的区别是什么。 不同编译器为同一代码生成.exe的差异如何………..

在C中定义16位整数

我需要在C中声明一个大小为16位的整数。 我知道short和int size是依赖于机器的。 我试图使用”stdint.h”,但似乎他们只是这样做 typedef short int16_t 所以我的问题是: 我错过了什么,短型保证16位长度? 如果不是,是否有替代方案可以保证呢?