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

前言

这些笔记主要是记录自己在学习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。

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

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值