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

寄存器的使用

寄存器需要在主程序和过程中使用时,在被过程使用前,需要先把它们的内容入栈保存。如果只在过程中使用时,程序可直接修改这些寄存器的值。在过程的结尾,压入栈中的数据要被恢复。

GCC为一个C过程产生的汇编代码的前部有下面的代码:

1、2、3和4行指令将三个寄存器(%ebx、%esi和%edi)的值保存到栈中。
第5行、第7行指令, %ebx作为指针使用,把其指向单元的数送%esi
第6行、第8行指令,%edi作为指针使用,把其指向单元的数送%eax
第9行、第10行指令,%edx作为指针使用,把其指向单元的数送%ecx

寄存器%ebx、%esi和%edi是主程序和过程均要使用的。寄存器%eax、%ecx和%edx是过程要使用的。

因此,在过程的末尾,寄存器%ebx、%esi和%edi的值要被恢复(没有显示出来)。

http://www.xdnf.cn/news/14419.html

相关文章:

  • Number.toFixed() 与 Math.round() 深度对比解析
  • 【SpringCloud】2.0 服务治理——nacos
  • LangGraph--设计一个给出标准提示词模板的聊天机器人
  • 探索RAGFlow:解锁生成式AI的无限潜能(2/6)
  • 蒸馏微调DeepSeek-R1-Distill-Qwen-7B
  • 大模型笔记3:通过插件增强大模型的能力
  • Iceberg与Hive集成深度
  • 【FreeRTOS-信号量】
  • LLM对话框项目 EventSource封装和MessageServiceClass流式展示封装
  • MFE微前端高级版:Angular + Module Federation + webpack + 路由(Route way)完整示例
  • vue相关爬坑总结
  • [windows工具]OCR多区域识别导出excel工具1.2版本使用教程及注意事项
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(四)
  • 深度神经网络学习
  • 设计模式-装饰器模式
  • React-router 路由历史的模式和原理
  • AI 神经网略小白学习笔记(一) -- 环境搭建
  • 【1】Redis 缓存穿透原理和解决方案
  • [AAAI Oral] 简单通用的公平分类方法
  • React-router 多类型历史记录栈
  • 《仿盒马》app开发技术分享-- 回收金提现安全锁校验(端云一体)
  • NodeJS中老生代和新生代和垃圾回收机制
  • Arduino入门教程:6、计时与定时
  • 阿帕奇基金会软件授权与公司贡献者许可协议(中英双语版)
  • (笔记)1.web3学习-区块链技术
  • Web3-代币ERC20/ERC721以及合约安全溢出和下溢的研究
  • EXCEL破解VBA密码 ( 仅供学习研究使用)
  • [VSCode] VSCode 设置 python 的编译器
  • 40-Oracle 23 ai Bigfile~Smallfile-Basicfile~Securefile矩阵对比
  • NodeJS里经常用到require,require的模块加载机制是什么