逆向:通用寄存器——内存读写04

一、通用寄存器

 

         32位寄存器从中间分开,其中一半形成了16位寄存器,16位寄存器前四个再从中间分开,形成8个8位的寄存器,并不是说32位、16位、8位寄存器是分开来算的,而是包含关系,我只需要8位,那就只用到8位,我需要32位的,那我就用到32位。

二、汇编代码
所要学的内容:
1.MOV指令
2.ADD指令
3.SUB指令
4.AND指令
5.OR指令
6.XOR指令
7.NOT指令
各指令所在网址:https://www.bcdaren.com/video/videoPlay/330285640321339392


1.MOV指令
操作码 目标操作数  源操作数
MOV   EAX,OxAAAAAAAA
MOV   AX,OxBBBB
MOV   AH,OxCC
MOV   AL,OxDD

MOV的作用:拷贝源操作数到目标操作数(也就是将源操作数复制到目标操作数中)。
(1)源操作数可以是立即数、通用寄存数、段寄存器、或者内存单元。
(2)目标操作数可以是通用寄存器、段寄存器或者内存单元。
(3)操作数的宽度必须一样。
(4)源操作数和目标操作数不能同时为内存单元。
MOV指令:

MOV的语法:

三、内存读写

1.寄存器与内存的区别
(1)寄存器位于CPU内部,执行速度快,但比较贵
(2)内存速度相对较慢,但成本低,所以可以做的很大
(3)寄存器和内存没有本质区别,都是用于存储数据的容器,都是定宽的(即都是有边界的)。
(4)寄存器常用的有8个:EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI。
(5)计算机中的几个常用计量单位:BYTE,WORD,DWORD。

BYTE      字节    =   8BIT
WORD     字     =  16(BIT)
DWORD   双字     32(BIT)

1KB = 1024BYTE
1MB = 1024KB
1GB = 1024MB

2.内存的数量特别庞大,无法每个内存单元都起一个名字,所以用编号来代替,我们称计算机CPU是32位或者64位,有很多书上说之所以叫32位计算机是因为寄存器的宽度是32位,是不准确的,因为还有很多寄存器是大于32位的。
计算机内存的每一个字节会有一个编号(即内存编号的单位是字节),如下图:

3.内存格式


只要涉及内存读写的,一定要指定它的宽度

4.从指定内存中写入/读取数据

 图片等均来源于网络,如若侵权则删。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值