汇编语言ASCII字符串排序

时间:2018-10-04 13:27:31

标签: assembly ascii endianness msp430 code-composer

我是第一次将MSP430与Code Composer结合使用,我正在做一个实验室作业,其中编写了简单的指令。

我执行了以下指令:

mov.w #'ABC', R9

结果,我在#0x4241中获得了R9

我知道引号'ABC'中的上述内容是ASCII字符串,并且在转换时,A = 41 B = 42 C = 43,并且由于仅存储了一个单词而将C踢出,因此存储了A和B。

我不明白的是:
为什么是4241而不是4142
因为A41,而B42

1 个答案:

答案 0 :(得分:3)

一句话:endianness

您的单词的存储顺序为:最低有效字节:0x4241。

在“大型Endian”计算机上,它将存储为0x4142。

  

字节序是指字节排列的顺序   存储在存储器中或传输时,转换为较大的数值   通过数字链接。字节序在计算机科学中很有趣   因为通常使用两种冲突且不兼容的格式:   单词可以大端或小端格式表示,   取决于是否订购了位或字节或其他组件   从大端(最高有效位)到小端(最低端)   有效位)。

     

采用大端格式,无论何时寻址内存或发送/存储   字节字,最高有效字节-包含最高字节的字节   有效位—首先存储(具有最低地址)或发送   首先,然后以递减的方式存储或发送以下字节   有效顺序,具有最低有效字节(一个包含)   最低有效位-最后存储(具有最高地址)或   最后发送。

     

小尾数格式颠倒了这个顺序:序列   首先地址/发送/存储最低有效字节(最低   地址)和最后一个最高有效字节(最高地址)。最   计算机系统喜欢所有数据使用单一格式;使用   系统的本机格式是自动的。但是当读取内存或   从其他计算机系统接收传输的数据,它是   通常需要在首选对象之间处理和转换数据   本机字节序格式与相反格式。

enter image description here