永发信息网

单片机中的运算:&和<<是哪个比较快

答案:2  悬赏:10  手机版
解决时间 2021-02-28 02:32
  • 提问者网友:沉默菋噵
  • 2021-02-27 06:48
就是说是&还是<<或者>>的指令周期比较少
按位与和左移右移
最佳答案
  • 五星知识达人网友:英雄的欲望
  • 2021-02-27 08:11
在51单片机中,用keil编译二者,反汇编后分别对应AND ** , **和LR的循环,&始终是双周期执行,而在进行一位移位时,由于LR指令是单周期,因此更快。但是移位数较多时,用& 实现更快。
全部回答
  • 1楼网友:蓝房子
  • 2021-02-27 08:32
add只是两个数相加,忽略以前加法运算的进位。 addc把进位也算进去了 你给的程序 mov a,#25h a=?将0x25给寄存器a mov 40h, #1ah 40h=?将0x1a给ram中地址0x40所对应的空间 mov r2,#33h r2=? 将0x33给r2寄存器 clr c c=? 清除c add a,r2 a=? a和r2相加,0x25+0x33=0x58,并不产生进位,此时a为0x58 addc a,40h a=? a和地址为0x40的数相加,0x58+0x1a+0x0=0x72(前面并没有进位);也没有进位 mov r0,#40h r0=? 将0x40给r0寄存器 addc a, @ro a=? 这一举和addc a,40h是一样的。0x72+0x1a+0x0=0x8c ,还是没有进位
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯