r命令
1.查看寄存器的内容
2.修改寄存器的内容
d命令
查看内存中的内容
1.格式一:-d 直接查询地址,默认是cs:ip的起始单元内存
2.格式二:-d 段地址:偏移地址 ,查询指定单元的内存
3.格式三 -d 段地址:开始偏移偏移地址~ 结尾偏移地址 ,可以查看指定范围的内存内容
e命令
改写内存中的内容
1.向内存中写入数据或写入字符串
输入字符,会自动转换为ASCII码
2.向内存中写入机器码(本质上还是向内存单元写入数据,只不过特定的数据组合在一起就形成了对应的汇编指令)
机器码 对应的汇编指令
b80100 mov ax,0001
b90200 mov cx,0002
01c8 add ax ,cx
u命令
将用e命令写入的机器码编译成汇编指令,见上图所示
a命令
写入汇编指令
t命令
执行一条机器指令
jmp 指令
修改cs,ip的值
jmp好像和mov,add,sub是一类的指令,我把它归类在这好像不太妥,但是写都写了,就放着吧(微笑)
提出问题:如何修改cs,ip指令?
方法一:debug中的r命令可以修改寄存器的值
注:debug是调试指令,并非程序方式(不推荐)
方法二: 用指令修改
mov CS,2000
mov IP,1000
这是不可行的,电脑机器没有提供这样的功能
方法三:转移指令 jmp
格式一:jmp 段地址(CS):偏移地址(IP)
格式二:jmp 某一合法寄存器 ,功能为:用寄存器的值修改ip
如:jmp ax 本质上为 mov ip,ax
jmp ax
指令执行前:ax=0000,cs=073f,ip=0100
指令执行后:ax=0000,cs=073f,ip=0000