滴水逆向 P7(通用寄存器、内存读写)

目录

一、通用寄存器

​1、寄存器结构

2、 寄存器使用

3、汇编指令类型:

1)ADD指令

2)SUB指令:​

3)AND(&)指令:

4)OR(||)指令:

二、内存读写

1、寄存器与内存区别:

2、内存:

3、编写指令要求:


一、通用寄存器

1、寄存器结构

1、分割的主要原因是:寄存器的发展需要兼容

2、寄存器位数不同是因为对空间合理利用的需求

3、16位——>8位:AX-->【AH(A HIGH)-------AL (A LOW)】

4、对汇编的理解:在内存---寄存器、寄存器----寄存器之间不断地移动数据,程序的复杂源于移动的复杂

5、程序单步运行图(debug)

MOV(操作码)含义:将源操作数(0x~~~)的值移到目标操作数【(eg:eax)(eax:32位寄存器)】中,源操作数的数据宽度可以小于所用寄存器宽度

要求:

 -------------------------------------------------------------------------------------------------------------------------------

1)源操作数与目标操作数的宽度必须一致,

2)如果  立即数/寄存器  宽度小于目标操作数宽度,则在多于位置补0

举例:

执行:MOV CX,1

 结果:AAAAEEEE------->AAAA0001

3)如果  立即数寄存器   宽度大于目标操作数宽度,则多余的高位被舍去

------------------------------------------------------------------------------------------------------------------------分界线

F8--->执行第二步:MOV AX,0xBBBB

AAAAAAAA----->AAAABBBB

 证明:AX是EAX的一部分

F8:执行:MOV AH,0xDD

AAAABBBB------>AAAADDBB

AX的高位是AH,地位是AL

 F8:执行:MOV AL,0xEE

AAAADDBB----->AAAADDEE

2、 寄存器使用

 举例:

 执行2:MOV AX,DX

结果:

3、汇编指令类型:

1)ADD指令


2)SUB指令:

原结果:  EAX 0000 0003 

F8执行:SUB EAX,2

结果:EAX 0000 0003 -------->EAX 0000 0001

 

3)AND(&)指令:

执行:AND EAX,3

计算分析如下:

结果:

------------------------------------------------------------------------------------------------->

4)OR(||)指令:

   ------------------------------------------------------------------

执行 :    OR EAX,3

结果:

 --------------------------------------------------------------------------------------------->                 

二、内存读写

1、寄存器与内存区别:

 只要是32位计算机,那么最多是别的内存是4G,这种说法对吗?

答:正常情况下没错,但是不包括改变寻址范围情况

 -----------------------------------------------------------------------------------------------------------------------------

2、内存:

 计算机如何区别   立即数与内存编号呢?    //  内存编号表示:【内存编号】

 涉及到内存读写的一定要指定内存宽度

3、编写指令要求:

 -----------------------------------------------------------------------------------------------------------------------------

 一个程序所占用的内存空间并不都是可以访问的,但是 ESP中的地址编号一定可以访问

 0012FFC4代表内存编号---------------------------7C82F23B代表当前内存中存储的值

一个内存编号存一个字节,但是编号是以4个字节为单位命名

 读取内存:

 

执行结果:

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值