寄存器(CPU工作原理)2

151 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

检测点2.3

image.png 四次

1.读取mov ax,bx后

2.读取sub ax,ax后

3.读取jmp ax 后 先读取后执行

4.执行jmp ax修改IP

最后IP的值 0000H。

 

实验一

image.png

  image.png

image.png -r 查看CPU寄存器内容

image.png -r XXX(寄存器名) 修改寄存器的内容

 

-d 查看内存中的内容

image.png

-d 138c:0100

指定段地址与偏移地址

 

-a 以汇编指令的格式在内存中写入机器指令

image.png

 

-u 138C:0100 将内存中机器指令翻译成汇编指令

image.png

先将CS IP指向自己想要执行的代码段再-t执行一条机器命令

image.png

-e 改写内存中的内容

实验任务3:

image.png

image.png 右侧为翻译成ASCII码后的内容

无法修改

image.png

-d fff0:0 ff(范围) 从fff0:0开始一次查看0~ff范围内的内容

  image.png

关于无法写入的原因

image.png

刻录在主板的BIOS 只读存储器

rom存储器中的单元内容无法被修改

实验任务4:

image.png

image.png image.png 运行结果

image.png  

注意屏幕右上方显示的emoji

由于写入的内存地址位于显存地址空间中,所以写入数据后会在显示器中显示出来

-e b810:0 01 01 02 02 03 03 04 04

小结

汇编指令是机器指令的助记符,同机器指令一一对应。

 

任何一个程序 exe可执行文件中是一大堆机器指令 通过ida 、od等反编译软件将二进制代码转化为汇编指令

 

每一种CPU都有自己的汇编指令集。

 

CPU可直接使用的信息在存储器(CPU的缓存)中存放。

 

在存储器中指令和数据没有任何区别,都是二进制信息。

 

一个存储单元可以存储8个bit(用做单位写成“b”)

image.png

 

1.1检测点

image.png

(1)一根地址总线传送一位二进制数据

image.png

2^x=8*1024
x=13

image.png

存储器被划分成若干存储单元,每个存储单元从0开始顺序编号

在计算机中最小的信息单位是bit,也就是一个二进制位。一个存储单元可存储一个字节。

1024个存储单元
0-1023

image.png

8192
1024

image.png

 

image.png

 

64 1 16 4

image.png

1B=1Bytes

1
1
2
2
4    

image.png

1024/2=512
1024/4=256
二进制

image.png

一根数据线传送一位

16根总共传送16位数据