字、字长
字 :表示被处理信息的单位(X86,1字=16位)
字长 = 机器字长 : 计算机的位数 ,即 计算机一次能处理的二进制数的长度 。16位或者32位的机器,16 32即为字长。通常是指CPU内部用于整数运算的数据通路的宽度,因此字长等于CPU内部用于整数运算的 ALU的位数 和 通用寄存器宽度 , 机器字长和指令字长,存储字长,数据字长没关系 ,只是反应操作的效率。
指令字长 :一个指令字中包含的位数, 常取存储字长的整数倍
存储字长 :一个存储单元包含的位数, 等于MDR的位数
数据字长 / 数据总线的宽度 :是数据总线一次所能并行传送信息的位数, 可以不等于MDR的位数 ,一般 与 CPU 内部总线的宽度相同 ,数据总线位数代表cpu单次交换数据量。其中数据总线的宽度可能和MDR有关,如果和MDR不一样,那么就代表传一个数据要传多次。
操作系统的位数 : 操作系统可寻址的位数,与机器字长不同
MAR :其位数对应于 存储单元的个数 , 地址总线和MAR宽度一样 ,应该和物理地址的位数是相同的
小端存储
对于STM32,如果要把下图数据使用按字编程的函数fmc_state_enum fmc_word_program(uint32_t address, uint32_t data)
【字=被处理信息的单位】 ,即要把这些字节的数据先装入32bit的临时数组Temp中,但因为数据存储是小端模式,所以Temp[0]=0x20 00 98 D8
要把低地址数据D8
放在Temp的低地址上