01_寄存器(CPU工作原理)

寄存器(CPU工作原理):


X86CPU的寄存器都是16位的,可以存放两个字节。

AX,BX,CX,DX通常用来存放一般性数据被称为通用寄存器

一个16位寄存器可以存放的最大的数字是2的16次方减一。

AX的低8位(07)构成了AL寄存器,高八位(815)构成了AH寄存器
AH和AL都是可以独立使用的8位寄存器

几条汇编指令:
(汇编指令不区分大小写)

mov ax, 18  将8送入AX

mov ah, 78  将78送入A

add ax, 8   将寄存器AX中的数值加上8

mox ax, bx  将寄存器BX中的数据送入寄存器AX中

add ax, bx  将AX,BX中的内容相加,结果存在AX中

16位架构的CPU:

运算器一次最多可以处理16位的数据
寄存器的最大宽度位16位
寄存器和运算器之间的通路是16位的。

8086CPU读写内存时发生的事:
(CPU访问内存单元时,必须向内存提供内存单元的物理地址)

CPU中的相关部件提供两个16位的地址,一个称为段地址,一个称为偏移地址

段地址和偏移地址通过内部总线送入一个称为地址加法器的部件

地址加法器将两个16位的地址合并成一个20位的物理地址

CPU可以通过不同的段地址和偏移地址生成同一个物理地址

地址加法器的工作原理:

物理地址 = 段地址 * 16 + 偏移地址

段地址 * 16 的意义:

    一个数据的十六进制形式左移一位,相当于乘以16
    一个数据的十进制位左移一位,相当于乘以10
    一个数据的x进制位左移一位,相当于乘以x

CPU是分段的:

段地址 * 16 必然是16的整数倍,所以一个段的起始地址也一定是16的倍数

偏移地址为16位,16位地址的寻址能力位64k,所以一个段的长度最大也为64k

CS

CS和IP是8068CPU中最关键的寄存器,它们指示了CPU当前要读取指令的地址

CS为代码段寄存器

IP为指令指针寄存器

8086CPU工作的简要描述:

在8086CPU加电或者是复位后(即CPU开始工作后)
CS被设置为FFFFH,IP为0000H。
每次执行完CS指向的内存单元指令后,IP地址会自增。
并将自增之后的结果输入到CS中继续执行。

即CPU从内存FFFF0H单元中读取指令执行,FFFF0H单元是8086PC机开机执行的第一条指令

编写木马或者病毒时,可以在FFFF0H指令开始执行之前,找到杀毒软件启动的内存地址,
阻止启动或者屏蔽,或者放在内存启动杀毒软件之前执行你的程序。

修改CS,IP的指令

jmp 段地址:偏移地址

eg:jmp 2AE3:3
    jmp 3:0B16

暴力破解原理

使用CS:IP指令指向注册后面的汇编指令

查看CPU和内存,用机器指令和汇编指令编程

打开方式:
    cmd -> Debug(64位操作系统看下面)

认识Debug功能:
    Debug是Dos,windows都提供的实例模式(8086方式)程序的调试工具
    使用它,可以查看CPU中各种寄存器中的内容和内存的情况和在机器码
    级跟踪程序的运行。

Debug中的R命令:查看和改变CPU寄存器的内容。
    D           查看内存中的内容
    E           改写内存中的内容
    U           将内存中的机器指令翻译成汇编指令
    T           执行一条汇编指令
    A           以汇编指令的格式在内存中写入一条机器指令

64位操作系统中不自带由debug程序:需要自己手动配置

    下载DOSBox和debug.exe程序
    安装DOSBox,打开之后输入mount C + “debug.exe”所在目录
    输入C:->debug,进入debug模式

    配置文件:
        在DOSBox安装目录中有一个DOSBox 0.74-3 Options.bat
        打开后输入:
            mount C “debug.exe”所在目录

            C:debug
        完成

编写汇编程序解决2的8次方的值:

mov av, 1
add ax, ax
jmp 2000:3
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值