飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 808|回复: 3

[求助] 大神们进来帮我解惑下,谢谢

[复制链接]
  • TA的每日心情
    无聊
    昨天 11:38
  • 签到天数: 88 天

    [LV.6]常住居民II

    发表于 2024-6-21 19:59:38 | 显示全部楼层 |阅读模式
    大神们进来帮我解惑下,谢谢

    下面代码的意思
    cmp dword ptr ds:[eax+0x58c],ebx
    lea edi,dword ptr ds:[eax+0x58c]
    能详细些,或者有实例最好,万分谢谢
    PYG19周年生日快乐!
  • TA的每日心情

    昨天 17:07
  • 签到天数: 1597 天

    [LV.Master]伴坛终老

    发表于 2024-6-21 20:32:43 | 显示全部楼层
    以下回答来自AI,仅供参考!

    这两条汇编指令分别执行了不同的操作。

    cmp dword ptr ds:[eax+0x58c],ebx
    这条指令执行一个比较操作。它将ds段中,由eax寄存器值加上偏移量0x58c所指向的4字节(dword)双字与ebx寄存器的值进行比较。比较操作本身并不产生结果,而是设置处理器的状态标志,如ZF(零标志)、SF(符号标志)等,以便后续的跳转指令(如je, jg等)可以根据这些标志来决定跳转与否。

    lea edi,dword ptr ds:[eax+0x58c]
    这条指令执行一个加载有效地址(Load Effective Address)操作。它将ds段中,由eax寄存器值加上偏移量0x58c所指向的地址加载到edi寄存器中。注意,这里只是加载了地址,并没有加载该地址处存储的数据。lea指令通常用于计算复杂地址或用于指针运算。

    总结一下,第一条指令比较了一个内存地址处的值与ebx寄存器的值,而第二条指令则将这个内存地址加载到edi寄存器中。这两条指令在功能上有所不同,但它们的操作都涉及到eax寄存器和一个固定的偏移量0x58c。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    昨天 16:08
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2024-6-21 23:16:27 | 显示全部楼层
    关于这一点,我推荐你去看小迪的课程,这里有

    https://www.bilibili.com/video/B ... 5693e7da82662db2aae
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    发表于 2024-9-26 16:59:05 | 显示全部楼层
    模模糊糊看不懂
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表