1
1
从你的陈述中,这意味着你一次只能读32位单词,不能读16位或8位,这也意味着你不必思考/谈论对齐。 就像支持字节可寻址内存的处理器一样,如果您有一个地址0x1002,并且您有一些24位的项,那么您可以用同样的方式实现它 0x1002=0B00010000000000010低位描述单词中的字节,高位描述单词编号/地址0B000100000000000 0b10,因此单词地址0x400以字节2开头(endianness当然是一个因素,假设很少)。您还知道,4-0b10=2意味着这个单词还剩下两个字节,如果需要第三个字节,则从下一个单词的偏移量0开始。 因此,您可以执行以下未经测试的代码:
在另一个答案中,您可以采用基于字节的方法,但您必须确保编译器知道基于单词的内存限制,不能允许它进行字节读取(这取决于体系结构),也不能进行未对齐的访问(取决于体系结构)。 您可以尝试基于表格
或基于跳转表
|
2
0
我真的不明白你的意思 下一节 , 可扩展边界 和 它可以移动 . 忽略以下代码应该用于读取数据:
我们的想法是不要太在意单词和按字节工作。 |