assembly - VC++编译器在汇编中取模
问题描述
有人可以解释一下模数(最好是一步一步)在汇编中的工作原理。这段代码的结果是这样的:
var = *(_DWORD *)(addrBase + 0x18);
if ( (signed int)var <= 5 || (_DWORD)var == 10 * ((signed int)var / 10) )
cmp r9d, 5
jle short loc_62714B
mov eax, 66666667h
imul r9d
sar edx, 2
mov eax, edx
shr eax, 1Fh
add edx, eax
lea ecx, [rdx+rdx*4]
add ecx, ecx
cmp r9d, ecx
jnz short loc_62718B
我怎么能把它改成:
if ( (signed int)var <= 5 || (_DWORD)var == 30 * ((signed int)var / 30) )
谢谢!
解决方案
推荐阅读
- r - Slurm + drake:空闲作业数组工作者的免费资源用于动态分支
- sql - 如何比较两个查询的执行时间是 SQL Developer?
- javascript - 有没有办法用文本输入验证行并使用javascript选择字段
- python - 缩放 cartopy 图时更新纬度/经度轴
- dataframe - Spark中基于优先级存储的数据
- r - 基于 SelectiveInput R Shiny 渲染箱线图
- math - 贴花的感知宽度取决于墙壁的旋转角度
- angular - 从角度应用程序拨打电话时无法识别 Cookie
- excel - 奇怪的 ActiveX 组合框和按钮行为
- macos - 在 m1 MAC OS 上构建 Bitcoind 时出错