assembly - 比较 x64 汇编中的寄存器值
问题描述
我试图根据程序集注册表中的现有值找出一个谜题。
我一直在这条线上遇到麻烦
cmp %sil,0x12(%rdi)
jne ...
当我在调试器中检查它们时,第 12 个偏移量%rdi
实际上%sil
包含相同的值,但程序仍然会跳转,因为这些值被认为不相等。
我唯一能想到的是,之前的比较是使用cmpb
而不是,cmp
并且%sil
作为 1 字节版本%rsi
正在与 8 字节值进行比较。
有人可以告诉我我是否正确地考虑了这一点吗?如果是这样,解决方案的输入是一个字符串,那么我将如何更改输入以适应这个?
解决方案
0x12(%rdi)
十进制的十六进制表示不是偏移量本身
推荐阅读
- android - 我的 AdMob 测试设备 ID 已更改(Android)
- ios - How to Hide MPCommandCenter manually?
- amazon-web-services - AWS / Quicksight / AWS4Signer / Signature Mismatch
- php - How to batch update multiple records using CodeIgniter query builder?
- python - What is the best way to read a JSON file and obtain the values without the invisible characters in Python?
- selenium - Trying to perform selenium testing using chrome driver but facing issue with below error while executing in cli as headless browser
- python - 将值从表单传递到另一个页面
- sql - Recursive SQL Query with Postgres Ranges To Find Availability
- android - How to make firebase storage reference to a certain bucket?
- amazon-web-services - 为什么我的 AWS Congito 用户在使用 Auth.currentAuthenticatedUser() 时能够登录,但“未通过身份验证”?