我是第一次将MSP430与Code Composer结合使用,我正在做一个实验室作业,其中编写了简单的指令。
我执行了以下指令:
mov.w #'ABC', R9
结果,我在#0x4241
中获得了R9
。
我知道引号'ABC'中的上述内容是ASCII字符串,并且在转换时,A = 41 B = 42 C = 43,并且由于仅存储了一个单词而将C踢出,因此存储了A和B。
我不明白的是:
为什么是4241
而不是4142
?
因为A
是41
,而B
是42
?
答案 0 :(得分:3)
一句话:endianness
您的单词的存储顺序为:最低有效字节:0x4241。
在“大型Endian”计算机上,它将存储为0x4142。
字节序是指字节排列的顺序 存储在存储器中或传输时,转换为较大的数值 通过数字链接。字节序在计算机科学中很有趣 因为通常使用两种冲突且不兼容的格式: 单词可以大端或小端格式表示, 取决于是否订购了位或字节或其他组件 从大端(最高有效位)到小端(最低端) 有效位)。
采用大端格式,无论何时寻址内存或发送/存储 字节字,最高有效字节-包含最高字节的字节 有效位—首先存储(具有最低地址)或发送 首先,然后以递减的方式存储或发送以下字节 有效顺序,具有最低有效字节(一个包含) 最低有效位-最后存储(具有最高地址)或 最后发送。
小尾数格式颠倒了这个顺序:序列 首先地址/发送/存储最低有效字节(最低 地址)和最后一个最高有效字节(最高地址)。最 计算机系统喜欢所有数据使用单一格式;使用 系统的本机格式是自动的。但是当读取内存或 从其他计算机系统接收传输的数据,它是 通常需要在首选对象之间处理和转换数据 本机字节序格式与相反格式。