• 滨海湾新区要变“湾区明珠” 2019-05-21
  • 孙杨、宁泽涛扛起中国游泳大旗 2019-05-11
  • 那你就写个帖子驳呀!告诉你,我是普通老百姓就是错了也没有啥,你可是论坛“真理化身”呀! 2019-05-11
  • 守住青山不放松 护好绿水不辞难——在渝全国人大代表聚焦“共抓大保护、不搞大开发”专题调研记略 2019-05-10
  • 巴厘岛被爆众多海域垃圾成灾 潜水常被塑料瓶塑料袋包围 2019-05-04
  • 两个不能否定,怎会是停留在30年前? 2019-04-27
  • 国际在线:向世界报道中国,向中国报道世界 2019-04-27
  • 【理上网来喜迎十九大】外媒记者:稳步推进生态文明建设的中国更加美丽 2019-04-26
  • 董卿海霞李思思康辉撒贝宁 央视名嘴童年照谁更萌 2019-04-26
  • “龙江二号”微卫星传回地月合影 2019-04-18
  • 中国驻泰国大使考察合艾国光中学孔子课堂 2019-04-18
  • 【清园20年】感恩大回馈!半价!半价! 2019-04-18
  • 中央纪委紧盯节点 4年来通报曝光问题近4000起 2019-04-13
  • 2013环球企业领袖宁夏圆桌会议嘉宾云集 2019-04-13
  • 《魔兽世界》未解之谜 那些仍不能被玩家们踏足的领地 2019-04-11
  • 打印

    广东11选5的号码推荐: [8/16位单片机] XC16 意外的编译输出

    [复制链接]
    319|4
    跳转到指定楼层
    楼主
     楼主 | 2018-11-12 09:34 | 只看该作者 |退出气泡模式 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 无善无恶心之体 于 2018-11-12 09:38 编辑

    128:               unsigned int iX=0x1234,iY=0x5678;
      0360  212342     mov.w #0x1234,0x0004
    129:               unsigned long lZ;
    130:               
    131:                          while(1)
    132:                  {        cAmpInv=lZ>>24;
      0364  DE0848     lsr 0x0002,#8,0x0000
      0366  B7E804     mov.b 0x0000,0x0804
    133:                          ++iX,
      0368  E80102     inc.w 0x0004,0x0004
    134:                          lZ=iX*iY;
      0362  256783     mov.w #0x5678,0x0006
      036A  B99003     mul.ss 0x0004,0x0006,0x0000
      036C  200001     mov.w #0x0,0x0002
      036E  37FFFA     bra 0x000364
    申请了两个uint iX, iY. 将两个相乘后的结果存入 ulong变量lZ。
    有两处疑问:
    1. 为何用mul.ss 而不用 mul.uu
    2. 为何将积的高16位清零
    沙发
    | 2018-11-14 13:31 | 只看该作者
    你倒是说说mul.ss和 mul.uu有什么区别,另没看出高16位清零
    板凳
     楼主 | 2018-11-15 22:29 | 只看该作者
    mul.ss和 mul.uu 分别用于有符号和无符号数相乘。

    036C  200001     mov.w #0x0,0x0002  积低16位存放在0x0000, 高16位放0x0002. 用立即数#0x0填充0x0002是什么意思?
    地板
    | 2018-12-14 13:51 | 只看该作者
    本帖最后由 bellstudio 于 2018-12-14 15:22 编辑

    哈哈,我也不是很理解。
    不过这个你大概要手动提升类型才会得到想要的结果。
    例如:
    1. lZ=(unsigned long)iX*iY;
    复制代码


    回完你的帖子我想明白了,这就是一个类型提升的问题。 XC16认为等号的右边手动提升类型,所以计算结果的高字是没有用的,虽然最后结果赋值给了一个更高级别类型,但是不影响编译器对于右边部分的理解。 这个在编译器的处理上是合理的,编译器要求用户做显式类型提升,而不是由编译器来做自动提升。C规范应该是没有强制要求提升,不过自动提升也许对用户更好些

    评论

    bellstudio 2018-12-14 15:19 回复TA
    回完你的帖子我想明白了,这就是一个类型提升的问题。 XC16认为等号的右边没有提升类型,所以计算结果的高字是没有用的,虽然最后结果赋值给了一个更高级别类型,但是不影响编译器对于右边部分的理解。 这个在编译器的处理上是合理的,编译器要求用户做显式类型提升,而不是由编译器来做自动提升。C规范应该是没有强制要求提升,不过自动提升也许对用户更好些 
    扫描二维码,随时随地手机跟帖
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    我要发帖 投诉建议 创建版块 申请版主

    快速回复

    您需要登录后才可以回帖
    登录 | 注册
    高级模式

    论坛热帖

    快速回复 广东快乐十分走势图 返回列表
  • 滨海湾新区要变“湾区明珠” 2019-05-21
  • 孙杨、宁泽涛扛起中国游泳大旗 2019-05-11
  • 那你就写个帖子驳呀!告诉你,我是普通老百姓就是错了也没有啥,你可是论坛“真理化身”呀! 2019-05-11
  • 守住青山不放松 护好绿水不辞难——在渝全国人大代表聚焦“共抓大保护、不搞大开发”专题调研记略 2019-05-10
  • 巴厘岛被爆众多海域垃圾成灾 潜水常被塑料瓶塑料袋包围 2019-05-04
  • 两个不能否定,怎会是停留在30年前? 2019-04-27
  • 国际在线:向世界报道中国,向中国报道世界 2019-04-27
  • 【理上网来喜迎十九大】外媒记者:稳步推进生态文明建设的中国更加美丽 2019-04-26
  • 董卿海霞李思思康辉撒贝宁 央视名嘴童年照谁更萌 2019-04-26
  • “龙江二号”微卫星传回地月合影 2019-04-18
  • 中国驻泰国大使考察合艾国光中学孔子课堂 2019-04-18
  • 【清园20年】感恩大回馈!半价!半价! 2019-04-18
  • 中央纪委紧盯节点 4年来通报曝光问题近4000起 2019-04-13
  • 2013环球企业领袖宁夏圆桌会议嘉宾云集 2019-04-13
  • 《魔兽世界》未解之谜 那些仍不能被玩家们踏足的领地 2019-04-11
  • 6场半全场玩法 p3开机号彩宝网近10期 土期福彩中奖号 大乐透走势图500期 重庆时时彩开奖 7星彩18019开奖 排列三试机号今天 pk10走势软件 任选7复式投注列表 时时彩缩水软件网页版 幸运赛车赔率 昆明福利彩票中心地址 pc蛋蛋兑奖有限制吗 快乐8官网 南国彩票七星彩规律 时时彩走势图后一