王爽-汇编语言第二版学习-day1
学习日记day1
查看CPU和内存,用机器指令和汇编指令编程
版本:Windows XP 5.1.2006
R命令查看、改变CPU寄存器的内容
CS = 0AE1
IP = 0100
也就是说,内存0AE1:0100处的指令为CPU当前要读取和执行的指令。并且CS:IP所指向的内存单元为0AE1:0100,此处存放的机器码为DF998916,对应的汇编指令为FISTP WORF PTR,【BX+DI+1689】
R命令改变寄存器的内容
CS:IP的内容仅与本身内容有关,自然不会受到其他寄存器的影响。
D命令查看内存中的内容
d段地址:偏移地址,Debug将列出从指定内存单元开始的128个内存单元的内容,全0的可能是虚拟机下CPU与内存并不实际交换内容,从而保证内存始终为初始状态,我们查看FF00:0地址的内容,结果如下
因此,如有需要,我们将FF00:0替换到原书上的1000:0,另外,偏移地址是十六进制的,无论如何不要忘记这一点。因此,使用dFF00:9会显示:
那么,类似的 dFF00:F为
一进入Debug,用d命令直接查看,会列出预设的地址处的内容
在使用d段地址:偏移地址之后,接着使用d命令,可列出后续内容
采用d段地址:起始偏移地址 结尾偏移地址可指定d命令的查看范围
注意,因为从0开始,所以是10个数,就和0,1有两个数一样,之后的三个段地址:偏移地址也是这样
E命令改写内存中的内容
e 起始数据 数据 数据 数据…
也可采用提问的方式
可以用E命令向内存中写入字符
甚至可以
用E命令可以向内存中写入机器码
U命令将内存单元中的内容翻译为汇编指令
T命令执行指令
A命令直接以汇编指令的形式在内存中写入机器指令
其实光折腾VMware和网络就耗了我一个多小时,下次讲一下怎么快速设置完毕,网络问题也可以谈一谈,汇编其实也不太需要虚拟机的网络,XP系统总是让我回忆起了童年,贴几个图好啦,摸鱼快乐!