lwl,lwr
lwl,lwr,swl,swr中的指令后缀r(right),l(left)都是相对寄存器而言,load操作是把取到的部分数据,置入寄存器的left或者right,store操作时将寄存器中的数据的 left或者right部分写入目标地址。无论时大端和小端寄存器的格式都是固定的,即 寄存器中的有端时数据的低位,左端时数据的高位。非对齐访问的解决都是将原来的一条(对齐访问)完成的事分两步完成:首先取始地址addr到下一个对齐地址处的部分数据,按一定的顺序,置入寄存器的适当位置;然后取从该对齐地址到addr+len-1处的部分数据,按一定的顺序,置入寄存器的适当位置。
lwr:
对于大端:从所指位置(地址)向低地址方向取数直至地址对齐,且按从低地址至高地址的顺序将数据排序,将排序好的数据存放在寄存器的低位。
对于小端:从所指位置(地址)向高低址方向取数直至地址对齐,且按从高地址至低地址的顺序将数据排序,将排序好的数据存放在寄存器的低位。
lwl:
对于大端:从所指位置(地址)向高地址方向取数直至地址对齐,且按从低地址至高地址的顺序将数据排序,将排序好的数据存放在寄存器的高位。
对于小端:从所指位置(地址)向低地址方向取数直至地址对齐,且按从高地址至低地址的顺序将数据排序,将排序好的数据存放在寄存器的高位。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步