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

建筑设计师网站网站建设是什么部门

建筑设计师网站,网站建设是什么部门,网站开发公司谁家好,网站建设方案书写vs2022 x64 C/C和汇编混编 遇到的坑 遇到的问题二、问题复现1.出错代码2.问题分析2.1 堆栈对齐问题 3.解决方案 总结奇数和偶数个寄存器的影响为什么 sub rsp, 8 对奇数个寄存器有用#xff1f;结论 遇到的问题 0x00007FFFFAE24A29 (msvcp140.dll)处(位于 TestCompileConsole… vs2022 x64 C/C和汇编混编 遇到的坑 遇到的问题二、问题复现1.出错代码2.问题分析2.1 堆栈对齐问题 3.解决方案 总结奇数和偶数个寄存器的影响为什么 sub rsp, 8 对奇数个寄存器有用结论 遇到的问题 0x00007FFFFAE24A29 (msvcp140.dll)处(位于 TestCompileConsoleApp.exe 中)引发的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。 查阅资料发现异常 0xC0000005: Access Violation 表示程序试图访问一个无效的内存地址。在你的情况下读取地址 0xFFFFFFFFFFFFFFFF 发生了访问冲突。这通常意味着你试图访问一个无效的指针或未初始化的指针。 — # 一、pandas是什么 示例pandas 是基于NumPy 的一种工具该工具是为了解决数据分析任务而创建的。 二、问题复现 1.出错代码 代码如下示例 capp procsub rsp, 28h ; 为局部变量和寄存器保存空间; 保存所有需要的寄存器push raxpush rcxpush rdxpush r8push r9push r10push r11; 自定义代码mov rcx, 10 ; 将参数传递给RCX寄存器call hookFunc ; 调用hookFunc函数; 恢复所有寄存器pop r11pop r10pop r9pop r8pop rdxpop rcxpop raxadd rsp, 28h ; 恢复堆栈指针ret capp endp2.问题分析 2.1 堆栈对齐问题 在 x64 汇编中函数调用时堆栈指针RSP必须是 16 字节对齐的。如果你在调用函数前通过 push 指令保存了寄存器堆栈指针会减少 8 个字节这可能会导致堆栈不对齐。 3.解决方案 capp procsub rsp, 28h ; 为局部变量和寄存器保存空间; 保持堆栈对齐sub rsp, 8; 保存寄存器push raxpush rcxpush rdxpush r8push r9; 调用你的函数mov rcx, 10call hookFunc; 恢复寄存器pop r9pop r8pop rdxpop rcxpop rax; 恢复堆栈对齐add rsp, 8add rsp, 28h ; 恢复堆栈指针ret capp endp如果保存寄存器的数量是奇数个可以通过手动调整来保证堆栈对齐。例如使用 sub rsp, 8 手动调整堆栈指针使其对齐到 16 字节。 总结 在 x64 汇编中堆栈的对齐要求是函数调用时堆栈指针RSP必须是 16 字节对齐的。为了确保这一点我们需要根据保存的寄存器数量来决定是否要调整堆栈指针。 奇数和偶数个寄存器的影响 奇数个寄存器: 每个 push 指令都会将堆栈指针减少 8 个字节。如果你保存奇数个寄存器例如1、3、5个寄存器堆栈指针会减少一个不是 16 字节的倍数的值如 8、24、40 个字节。这时堆栈指针的对齐就会被破坏从而导致后续函数调用时堆栈不是 16 字节对齐的。 偶数个寄存器: 如果你保存偶数个寄存器例如 2、4、6 个寄存器堆栈指针减少的值会是 16 字节的倍数如16、32、48个字节。在这种情况下堆栈指针的对齐不会被破坏因此不需要进行额外的调整。 为什么 sub rsp, 8 对奇数个寄存器有用 当你保存奇数个寄存器时堆栈指针被推到一个不是 16 字节对齐的地址。通过在保存寄存器之前执行 sub rsp, 8你可以先手动将堆栈指针调整到一个不对齐的状态接下来每次 push 操作都会在最终使堆栈指针回到对齐的状态。 具体来说 sub rsp, 8 手动将 RSP 移动 8 个字节使其暂时不对齐。然后每次 push 操作都会进一步移动 RSP 8 个字节。如果你总共 push 奇数个寄存器RSP 将恢复到对齐的状态。 结论 奇数个寄存器: 你需要通过 sub rsp, 8 手动调整堆栈指针以确保保存和恢复寄存器后堆栈指针是 16 字节对齐的。偶数个寄存器: 由于堆栈指针在保存和恢复寄存器前后仍然是 16 字节对齐的所以不需要进行额外的调整。 这个技巧帮助你在函数调用时确保堆栈的对齐性从而避免潜在的问题。
http://www.dnsts.com.cn/news/149168.html

相关文章:

  • 工厂网站建设公司自己做音乐网站
  • c2c网站怎么做贵州建设职业技术学院招商网站
  • 网站服务器ip地址怎么查dedecms生成xml网站地图
  • 企业网站上线成都哪家公司做网站最好
  • 网站建设设计原则装饰网站建设的背景
  • 南漳网站开发外贸公司做网站
  • 电子商务网站规划与建设试题1688跨境电商平台
  • 江门住房城乡建设厅网站黄石规划建设局网站
  • nodejs 网站开发模块网站建设背景图片大小的修改
  • 大兴安岭商城网站开发设计网站运营经理岗位要求
  • 购物网站开发网站建设策划书事物选题
  • 自适应网站手机端简单介绍网站建设的一般流程
  • 优秀国外设计网站app电竞竞猜网站 建设
  • 网站 建设网站微信公众号怎么分享wordpress
  • 专业的网站公司到哪里找黔东南州两学一做教育网站
  • 株洲高端网站建设做期货与做网站的关系
  • 网站开发公司代理群发软件
  • 微信网站开发合同塘厦三局医院
  • 长春建设厅网站学校建设门户网站的好处
  • 河南高端建设网站设计师接单渠道
  • 做海报网站网站怎么做才能让更多平台展现
  • 快速提高网站权重家庭农场网站建设
  • 做网站除了域名还需要什么网站关键词排名突然没了
  • 茂名建设局网站wordpress不锈钢企业
  • 小红书关键词检测榆林市网站seo
  • 怎么才能创建个人网站华为企业解决方案
  • 郑州模板网站建设广州展厅设计公司排名
  • 深圳做网站优化工资多少做网站做系统一样么
  • 网站克隆下来了然后再怎么做做网站没流量
  • 常德网站建设多少钱企业邮箱是qq邮箱吗