tiven1 2022-06-08 19:55 采纳率: 0%
浏览 22
已结题

umull之后判断结果的高32位是否为0这种汇编是怎样的逻辑?

下面是汇编代码:

MOV.W           R11, R3,LSL#1  //R3是一个unsigned int的入参
MOVS            R0, #0x44 ; 'D'
UMULL.W         R0, R1, R11, R0
MOVS            R2, #0
CMP             R1, #0
IT NE
MOVNE           R1, #1
CMP             R1, #0  
IT NE
MOVNE.W         R0, #0xFFFFFFFF
MOVS            R1, #0
BLX             j__Znajii ; operator new[](uint,int,int)

这段汇编对于R0来说是怎样的生成逻辑?
我知道先进行64位的乘法,然后判断结果的高32位是否为0,关键还判断了两次,这点令我疑惑。

  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-06-09 09:07
    关注

    单步调试

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月16日
  • 创建了问题 6月8日

悬赏问题

  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致