汇编语言——寄存器
寄存器
程序的本质#
- 软件/程序的执行过程
- 硬盘中程序或者软件打开后,会被装载到内存中,由CPU进行读取内存中的机器指令,再由CPU控制计算机进行相应操作
- CPU组成
- 寄存器:信息存储
- 运算器:信息处理
- 控制器:控制其他器件进行工作
寄存器与内存#
- 通常,CPU会先将内存中的数据存储到寄存器中,然后在对寄存器中的数据进行运算
- 假设内存中有块红色内存空间值是3,现在想把它的值加1,并将结果存储到蓝色内存空间中
- CPU首先会将红色内存空间的值放到EAX寄存器:mov eax, 红色内存空间
- 然后让EAX寄存器与1相加: add eax, 1
- 最后将值赋值给蓝色内存空间: mov 蓝色内存空间, eax
x64汇编——寄存器#
- RAX\RBX\RCX\RDX 通用寄存器 (64bit)
- 一个寄存器可以存储8Byte数据(8个字节)
- 32位:EAX\EBX\ECX\EDX 通用寄存器
- 16位:AX\BX\CX\DX 通用寄存器
- x64向下兼容32位甚至更老的16位寄存器
x64汇编中,低位(后32位)兼容32位的寄存器
- 也就是说,在x64汇编中, mov eax , 10 实际上操作的也是RAX寄存器
- 一般规律
- R开头的寄存器是64bit的,占8字节
- E开头的寄存器是32bit的,占4字节
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示