对于PIC16芯片中有符号扩展的优化

问题来源

举个小栗子

市面上有很多种芯片,其中对应的指令集也很丰富,可是不同的指令集对于各种基本功能的支持力度是不同的,以PIC16芯片和X86芯片相比较,举出一个很简单的例子,就是乘法,比如实现c = a * b
在X86中,实现如下:

movl b, %eax
mul b

这里不敢说乘法指令的全部操作只需要一条指令,但是乘法的本身还是只需要一条指令的,即mul b,但是在PIC16中会变成什么样子呢,代码如下:

movf a, w
movf mul.atmp, f
movf b, w
movf mul.btmp, f
call mul.i8
movf mul.result, w
movf c, 1

这里可能写的不规范,但是总体的意思是,将变量ab 分别放到乘法库函数定义的符号mul.atmpmul.btmp的符号里面,然后调用乘法库函数mul.i8,最后从库函数预先设定的符号里面取值,放到符号c中,如果觉得不好理解,可以先看成下面的高级函数形式的声明:

char mul.i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值