滴水三期:day02.4-通用寄存器

本文详细介绍了32位通用寄存器的用途、编号及存储范围,强调了CPU中寄存器与内存的区别。通过实例展示了如何使用汇编指令如MOV、ADD、SUB等进行数据操作。同时,提到了寄存器的不同宽度类型,并探讨了在OD调试器中观察和修改寄存器值的方法。此外,还涵盖了逻辑运算指令如AND、OR、XOR和NOT的操作。

一、32位通用寄存器

  • 程序在计算的时候,需要用到数据,那么这些数据都需要地方来存储,寄存器和内存就是用来存储数据的容器

  • 计算机用来存储数据的有CPU中的寄存器和内存条中的内存。CPU中的寄存器虽然容量小,但是可以高速进行读写;内存虽然存取速度相对较慢一些,但是可以存储大量的内容

  • 我们今天学习的是CPU中常用到的数据宽度为32位的容器,称为32位通用寄存器

  • 32位通用寄存器:从上到下挨着顺序记,编号也记住后面硬编码要用

    什么是32位,就是下面的寄存器可以用32位来存储数据,通俗来说就是一个寄存器可以用32个0或者1来存数据。虽然当初设计时不同的寄存器建议存什么东西做什么运算,但是实际上自己想怎么用寄存器就怎么用,知道有哪些寄存器即可

    寄存器 编号 存储数据的范围
    EAX 0 0 - 0xFFFFFFFF
    ECX 1 0 - 0xFFFFFFFF
    EDX 2 0 - 0xFFFFFFFF
    EBX 3 0 - 0xFFFFFFFF
    ESP 4 0 - 0xFFFFFFFF
    EBP 5 0 - 0xFFFFFFFF
    ESI 6 0 - 0xFFFFFFFF
    EDI 7 0 - 0xFFFFFFFF
  • 寄存器的使用:

    MOV EAX,12345678     #MOV是汇编指令,EAX是寄存器,后面的数叫立即数,此指令的作用就是将立即数存在EAX中
    ADD EAX,1          #将1与EAX中已经存储的数做加法运算,结果再存储在EAX中
    MOV ECX,2
    ADD EAX,ECX       #将EAX与ECX中的值相加,将结果再放入EAX中
    SUB EAX,3         #用EAX中的值-3,再将结果放入EAX中
    

二、作业

1.使用OD查看寄存器并且使用MOV指令修改寄存器中值

  • 使用OD打开一个EXE程序,并找到寄存器窗口

    屏幕截图 2021-11-21 170337
  • 单步执行程序(F8)

    因为一个可执行程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值