通用寄存器

本文介绍了计算机中的寄存器概念,包括寄存器作为CPU内存区域的作用,通用寄存器如EAX、ECX等的用途和工作原理。通过实例展示了如何在汇编语言中操作寄存器,如EAX的8位和16位部分以及不同指令对寄存器的影响。
摘要由CSDN通过智能技术生成

什么是寄存器

寄存器就是CPU内存区域,与内存里面的存储介质没有区别。

寄存器的功能是存储二进制代码。

三十二位通用寄存器

寄存器的用途不是固定的,但是通常使用如同命名规范一般约定俗成的使用方法,这样可以提高工作效率并且不容易出错。

对于初学者来说不容易记住,所以建议在实践过程中按照规范使用慢慢记住。

EAX

0

累加器

ECX1计数
EDX2

I/O指针

EBX3DS段指针
ESP4堆栈指针
EBP5SS段指针
ESI6源指针
EDI7目标指针

十六位寄存器与八位寄存器

16位寄存器
AX0
CX1
DX2
BX3
SP4
BP5
SI6
DI7
8位寄存器
AL
CL
DL
BL
AH
CH
DH
BH

其中16位寄存器是32寄存器的一部分,8位寄存器是16位寄存器的一部分

8位寄存器的L意为low(低位),H意为high(高位)

案例

利用OD打开一个exe程序

我们可以看到右侧8个通用寄存器与他们所存储的数据

下面的EIP也是一个寄存器,代表当前程序运行到哪个位置,点击F8会运行到下一个位置。

尝试输入汇编语言向寄存器EAX输入数据

注意到右侧EAX数值变为1

在输入指令mov eax,0xAAAAAAAA后,EAX变为AAAAAAAA

在输入指令mov ax,0xBBBB后,EAX变为AAAABBBB

在输入指令 mov ah,0xCC后,EAX变为AAAACCBB

在输入指令mov al,0xDD后,EAX变为AAAACCDD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值