我正在try 为一台非常奇怪的机器创建(tinyc的新后台)一个c编译器.它唯一的可编址单元是16位字,即它不能在8位字节级别上编址.它的自然int大小也是16.
据我所知,c标准规定char必须至少为8位,Short必须至少为16位.但没有任何内容表明sizeof(char)不能= sizeof(Short).
即使是思考这样的系统也感觉很奇怪,我们都有一个很强的心理模型来了解ram中的chars和短裤等的样子.
我的替代方案是在数据类型上保持"正常",并通过提取单词并将其分割来模拟8位行为.我的问题是,没有位移或旋转指令,所以做起来要花费very美元(为了对一个字节进行字提取而模拟右移,甚至需要至少32条指令,测试和设置每个位,或者进行长时间的左旋转).感觉我的very MHz fpga会以2 MHz的速度运行