首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 请教 [已结贴,结贴人:browningblue]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • browningblue
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-05-09 12:25:32 楼主
    菜鸟提问,请各位帮忙:
    sall $31, %eax
    sarl $31, %eax
    xor %ebx, %eax

    这段代码含义.

    多谢!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wesleyluo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-09 13:21:401楼 得分:2
    移位操作
     
      先给出移位量,然后是待移位的对象。
      可以进行算术和逻辑移位。

      左移指令sall和shll的效果一样。
      右移指令sarl执行算术移位(填符号位),而shrl执行逻辑移位(填0)。

    XOR是異或運算。

    剩下的自己想吧!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cnzdgs
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 5

      2

      13

    发表于:2008-05-09 13:31:272楼 得分:2
    如果eax的最低位为0,则保持ebx的值不变,如果为1则将ebx取反。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jennyvenus
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      5

      5

    发表于:2008-05-09 15:19:123楼 得分:2
    更详细一点就是

    如果开始eax的最低位为0,那么eax为全0
    如果开始eax的最低位为1,那么eax为全1
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • browningblue
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-09 15:31:154楼 得分:0
    我的问题是:
    sall $31, %eax
    sarl $31, %eax
    xor %eax, %ebx

    对ebx中值会产生什么作用?
    最好能有相应的C程序.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cnzdgs
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 5

      2

      13

    发表于:2008-05-09 17:19:565楼 得分:4
    C/C++ code
    int eax; int ebx; eax <<= 31; eax >>= 31; ebx ^= eax;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • browningblue
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-10 21:00:026楼 得分:0
    多谢你们的回答了,可能是我没有表达清楚.我不明白这段代码想表达的意义.每条汇编我知道.更确切来说,我不明白在什么情况下用这段代码.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jennyvenus
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      5

      5

    发表于:2008-05-10 21:27:577楼 得分:0
    我不明白有了2楼的回复楼主还有什么不明白的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • browningblue
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-12 09:51:098楼 得分:0
    比如:

    mov $000000FF, %eax ;
    and %eax, %ebx

    这两条汇编组合的意思:取最低字节。

    我的问题是:我不明白那三条汇编组合的意思。
    不好意思,比较笨。


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jennyvenus
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      5

      5

    发表于:2008-05-12 11:04:079楼 得分:10
    if ( eax & 0x01 )
      ebx ~= -1;

    相当于这句话。

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • browningblue
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-12 11:52:1910楼 得分:0
    to jennyvenus :

    有点明白, 不过我认为应:
    if ( eax & 0x01 )
      ebx ^= -1;
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved