Tag: 独立

自定义内存分配器用于实模式DOS .COM(独立式) – 如何调试?

首先是一个小背景:在这篇博文上磕磕绊绊,我了解到有可能用GNU链接器创建DOS .COM文件,它甚至不是火箭科学。 使用clang和-m16开关(通过相应地为32位指令加前缀来创建实模式兼容的32位代码),这非常好。 所以我有想法尝试实现足够的运行时来获得我最近写的一个小诅咒游戏 ,编译成.COM并在实模式 DOS 下运行。 游戏足够小,所以压缩64KB的所有内容(文本,数据,bss,堆,堆栈)似乎是可行的。 当然,它使用malloc() 。 所以我不得不想出自己的实现。 这就是它的样子: typedef unsigned short size_t; /* from stddef.h */ typedef struct hhdr hhdr; struct hhdr { void *next; int free; }; extern char _heap; static char *hbreak = &_heap; static hhdr hhead = { &_heap, 0 }; static void *newchunk(size_t size) { char *stack; […]