一、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程序,并找到寄存器窗口
-
单步执行程序(F8)
因为一个可执行程序

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

1225

被折叠的 条评论
为什么被折叠?



