C51里的左移与汇编里的左移的区别,求指点

[复制链接]
 楼主| 雷影少年 发表于 2012-6-25 09:47 | 显示全部楼层 |阅读模式
C51里的_crol_,_irol_,_lrol_使用时是不是仅仅针对不同的数据类型?与"<<"有什么区别?与汇编里的RL和RLC又有什么区别?
 楼主| 雷影少年 发表于 2012-6-25 10:34 | 显示全部楼层
原来学的是汇编,RL、RLC用着挺顺手的,现在学C就纠结了
 楼主| 雷影少年 发表于 2012-6-25 17:44 | 显示全部楼层
没人愿意回答下吗?
NE5532 发表于 2012-6-25 18:43 | 显示全部楼层
C的移位其实就是转成汇编移位来做的啊,只是C没有带进位移位罢了。楼主如果是汇编入门的,可以写个简单的C程序,看反汇编,一目了然。

评分

参与人数 1威望 +1 收起 理由
雷影少年 + 1 O(∩_∩)O谢谢

查看全部评分

 楼主| 雷影少年 发表于 2012-6-25 19:35 | 显示全部楼层
反汇编,这个倒是没想到,
不过C里带进位左移要怎么表示?
NE5532 发表于 2012-6-25 19:45 | 显示全部楼层
无此语句,自己多写几句话来实现。
 楼主| 雷影少年 发表于 2012-6-25 20:29 | 显示全部楼层
无此语句,自己多写几句话来实现。
NE5532 发表于 2012-6-25 19:45

哦!继续百度去
wukunshan 发表于 2012-6-26 08:25 | 显示全部楼层
C51里的_crol_,_irol_,_lrol_使用时是不是仅仅针对不同的数据类型,移位后的值与"<<"有区别:C51里的_crol函数移位后补上来的是“1”,而用“<<”运算符移位后补上来的是“0”。
 楼主| 雷影少年 发表于 2012-6-26 09:54 | 显示全部楼层
经过NE5532的提醒,昨晚看了下反汇编程序大致明白了左移函数的执行过程,就8条汇编指令,
_crol_是8位二进制数循环左移,每次左移执行一次RL指令
"<<"运算符移位是补零
sedatefire 发表于 2012-6-26 11:16 | 显示全部楼层
NE5532回答得好
 楼主| 雷影少年 发表于 2012-6-26 11:29 | 显示全部楼层
恩恩!高手呀~
以后遇到类似的我都直接反汇编:D
学了汇编就是好:lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:高明的设计不在于是否用了最新的技术,在于是否能用最小的成本做出可靠的东西来。

11

主题

714

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部