周末没事正好练习下。 前边-r原以为是只查看cpu寄存器内容,原来还有修改的意思。只用r即查询,用r 寄存器,则是修改该寄存器 不只是可以修改ax,可以修改其他寄存器 d 段地址:偏移地址 查看内存内容 最左边是每行的起始地址。 中间是从指定内存单元开始的128个内存单元的内容,比如,上图的073F:0–073f:7F指定的内容,用十六进制格式输出,每行从16的整数倍的地址开始,最多输出16个单元的内容。 右边是每个内存单元中的ascii码字符。 比如要查看这个>,拿不准是073f:1还是073f:2的,查看下
往后错位时,最后查看的内存地址也错位,保持128个内存单元, 可见073f:1是个空格,073f:1才是>,这些“."都严格对齐着。
如果不放心,按照d 段地址起始偏移地址:结尾偏移地址,这里只看一个 可见,>确实在073f:2内存里
如果再接着输入d命令,则列举出后续128个单元的内容
接下来用E命令改写内存 1,改写单个内存 E 段地址:偏移地址 可见地址1000:5所在的位置内存已经改为10
如果想一下子想在连续内存填充N个数据,则用 e 起始地址 数据1 数据2…数据N 也可以输入字符,从而能看到它们的ASCII值 也可以直接填写字符串 当然,也可以直接输入机器码,并用-U翻译成汇编指令,格式是:指令地址+机器指令+机器指令翻译成的汇编指令 执行时要把cs:ip指向要执行的命令,再按-t执行,这里cs:ip要指向10000:40
很明显,这样太麻烦了,用-a直接向内存里写汇编指令