本文已参与「新人创作礼」活动,一起开启掘金创作之路。
检测点2.3
四次
1.读取mov ax,bx后
2.读取sub ax,ax后
3.读取jmp ax 后 先读取后执行
4.执行jmp ax修改IP
最后IP的值 0000H。
实验一
-r 查看CPU寄存器内容
-r XXX(寄存器名) 修改寄存器的内容
-d 查看内存中的内容
-d 138c:0100
指定段地址与偏移地址
-a 以汇编指令的格式在内存中写入机器指令
-u 138C:0100 将内存中机器指令翻译成汇编指令
先将CS IP指向自己想要执行的代码段再-t执行一条机器命令
-e 改写内存中的内容
实验任务3:
右侧为翻译成ASCII码后的内容
无法修改
-d fff0:0 ff(范围) 从fff0:0开始一次查看0~ff范围内的内容
关于无法写入的原因
刻录在主板的BIOS 只读存储器
rom存储器中的单元内容无法被修改
实验任务4:
运行结果
注意屏幕右上方显示的emoji
由于写入的内存地址位于显存地址空间中,所以写入数据后会在显示器中显示出来
-e b810:0 01 01 02 02 03 03 04 04
小结
汇编指令是机器指令的助记符,同机器指令一一对应。
任何一个程序 exe可执行文件中是一大堆机器指令 通过ida 、od等反编译软件将二进制代码转化为汇编指令
每一种CPU都有自己的汇编指令集。
CPU可直接使用的信息在存储器(CPU的缓存)中存放。
在存储器中指令和数据没有任何区别,都是二进制信息。
一个存储单元可以存储8个bit(用做单位写成“b”)
1.1检测点
(1)一根地址总线传送一位二进制数据
2^x=8*1024
x=13
存储器被划分成若干存储单元,每个存储单元从0开始顺序编号
在计算机中最小的信息单位是bit,也就是一个二进制位。一个存储单元可存储一个字节。
1024个存储单元
0-1023
8192
1024
64 1 16 4
1B=1Bytes
1
1
2
2
4
1024/2=512
1024/4=256
二进制
一根数据线传送一位
16根总共传送16位数据