lwl,lwr

lwl,lwr,swl,swr中的指令后缀r(right),l(left)都是相对寄存器而言,load操作是把取到的部分数据,置入寄存器的left或者right,store操作时将寄存器中的数据的 left或者right部分写入目标地址。无论时大端和小端寄存器的格式都是固定的,即 寄存器中的有端时数据的低位,左端时数据的高位。非对齐访问的解决都是将原来的一条(对齐访问)完成的事分两步完成:首先取始地址addr到下一个对齐地址处的部分数据,按一定的顺序,置入寄存器的适当位置;然后取从该对齐地址到addr+len-1处的部分数据,按一定的顺序,置入寄存器的适当位置。

lwr:
    对于大端:从所指位置(地址)向低地址方向取数直至地址对齐,且按从低地址至高地址的顺序将数据排序,将排序好的数据存放在寄存器的低位。
       对于小端:从所指位置(地址)向高低址方向取数直至地址对齐,且按从高地址至低地址的顺序将数据排序,将排序好的数据存放在寄存器的低位。

lwl:
    对于大端:从所指位置(地址)向高地址方向取数直至地址对齐,且按从低地址至高地址的顺序将数据排序,将排序好的数据存放在寄存器的高位。
       对于小端:从所指位置(地址)向低地址方向取数直至地址对齐,且按从高地址至低地址的顺序将数据排序,将排序好的数据存放在寄存器的高位。
 



原文地址:https://www.cnblogs.com/openix/p/2508864.html