学习笔记(符号扩展指令:SXTB和SXTH)

您所在的位置:网站首页 汇编LSL指令的作用 学习笔记(符号扩展指令:SXTB和SXTH)

学习笔记(符号扩展指令:SXTB和SXTH)

2024-06-26 17:46| 来源: 网络整理| 查看: 265

前言

这些笔记主要是记录自己在学习CM3汇编中的一些问题(因为我们老师上stm32的嵌入式课是从基础汇编开始讲的,CM3汇编在网上能查到的例子讲解有点少,哭!),其中可能借鉴过网上一些大佬的文章,如果造成不良影响请联系本人。本人菜鸡小白一枚,希望抱各位大佬的大腿(哈哈)。我是第一次写文章,目的:一是就是作为一个学习笔记保存;二是希望和各位道友一起交流学习。

符号扩展指令:SXTB和SXTH。

编译环境:keil5,window10系统。

符号扩展指令:SXTB和SXTH。符号扩展顾名思义就是将字节或者将半字的最高符号位进行扩展,最后都扩展到32位。(CM3的通用寄存器一共13个,从R0到R12)

;符号扩展指令 MOV R0,#0X00000080;将R0赋初值为0x00000080 MOV R1,#0X00000070;将R1赋初值为0x00000070 MOV R2,#0X00008000;将R2赋初值为0x00008000 MOV R3,#0X00007000;将R3赋初值为0x00007000 SXTB R4,R0;将R0按带符号数低字节扩展到32位存入R4 SXTB R5,R1;将R1按带符号数低字节扩展到32位存入R5 SXTH R6,R2;将R2按带符号数半字扩展到32位存入R6 SXTH R7,R3;将R3按带符号数半字扩展到32位存入R7

 将R0,R1,R2,R3寄存器赋值后:

 

 进行符号扩展后R4,R5,R6,R7寄存器的值为:

 

 从运行结果可以看出,0x80字节换成二进制是:1000 0000,最高符号位是1,所以扩展就是将1依次向高位扩展,最后R4就成了0xFFFF FF80;

0x70写成二进制就是:0111 0000,最高符号位是0,所以就是将0往高位扩展,最后R5为0x0000 0070。

半字的分析跟字节是一样,此处就不再赘述啦。 



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3