当前位置: 首页 > news >正文

处理数组下标的代码

以下是某个Ada编译器生成的一段汇编代码:

    mov     ecx, eaxmov     ebx, eaxsar     ebx, 1Fhmov     edx, ebxsar     edx, 1Fhnot     edxmov     eax, edxsar     eax, 1Fhand     ecx, eax

    
以上代码相当于以下C代码:

    ecx = ((~(eax >> 62) >> 31) & eax);

    
根据分析,这段代码的作用相当于以下C代码:
 

   ecx = (eax >= 0) ? eax : 0;

    
根据上下文分析,此时eax的值是某个数组的下标。

以上代码在整个软件中多次出现,不像是从用户写的Ada源程序翻译过来的,很可能是Ada编译器自动添加的。

但本人目前没有尝试写一个Ada程序,来使某个Ada编译器生成这样的汇编代码。

http://www.lryc.cn/news/430326.html

相关文章:

  • 数学建模算法总结
  • 代码随想录算法训练营第五十五天 | 并查集理论基础、107. 寻找存在的路径
  • ROS_package 、CMakeLists.txt、package.xml、ROS_node之间的关系
  • 嵌入式学习----网络通信之TCP协议通信
  • 【信息学奥赛一本通】1007:计算(a+b)×c的值
  • Linux系统之部署俄罗斯方块网页小游戏(三)
  • XSS- - - DOM 破坏案例与靶场
  • Arco Design,字节跳动出品的UI库
  • 常用API:object
  • 【计算机三级-数据库技术】数据库后台编程技术
  • 线程的控制
  • WPS宏实现Sheet页拆分功能
  • 【图像超分】论文精读:AdaBM: On-the-Fly Adaptive Bit Mapping for Image Super-Resolution
  • 深信服应届生客户经理面试经验分享
  • 什么是应用交付控制器(ADC)
  • 旅游管理系统
  • AVI-Talking——能通过语音生成很自然的 3D 说话面孔
  • 走进虚拟机逃逸技术之VMware Escape漏洞CVE-2023-20872复现
  • leetcode118. 杨辉三角,老题又做
  • 进程(一)(22)
  • Excel“取消工作表保护”忘记密码并恢复原始密码
  • WPS关闭后,进程依然在后台运行的解决办法
  • SQL每日一练-0816
  • 直方图均衡化
  • Golang | Leetcode Golang题解之第342题4的幂
  • 数学建模学习(116):全面解析梯度下降算法及其在机器学习中的应用与优化
  • [mysql][sql]mysql查询表大小
  • 8.16 mysql主从数据库(5.7版本)与python的交互及mycat
  • 项目问题 | CentOS 7停止维护导致yum失效的解决办法
  • 【Docker】Docker Compose(容器编排)