用机器指令和汇编指令编程

2023-09-20

预备知识: Debug的使用

命令的快捷使用方式

d ds : 0   ;查看ds:0开始的内存区间中的内容


d cs : 0   ;查看当前代码段中的指令代码


d ss : 0   ;查看当前栈中的内容


;以上方式同样可以用 E, A 
U 命令实现.

中断机制

1.暂不分析.
2. 了解: Debug的 T 命令再执行修改寄存器 SS 的指令时, 紧接着的下一条指令 会被自动执行 .

实验任务

任务一

用机器指令和汇编指令编程 (https://ic.work/) 物联网 第1张

1.写入指令
2.设置 CS:IP 地址

用机器指令和汇编指令编程 (https://ic.work/) 物联网 第2张

3.r 命令寄存器状态, 并使用 t 命令执行

用机器指令和汇编指令编程 (https://ic.work/) 物联网 第3张

4.查看地址单元 ds : 0 8区间的数据

用机器指令和汇编指令编程 (https://ic.work/) 物联网 第4张

5.操作ax, bx寄存器部分结果

用机器指令和汇编指令编程 (https://ic.work/) 物联网 第5张

6.查看栈空间的内存数据

用机器指令和汇编指令编程 (https://ic.work/) 物联网 第6张

7.操作栈空间部分结果1. 内存部分截图丢失.

用机器指令和汇编指令编程 (https://ic.work/) 物联网 第7张

8.操作栈空间部分结果2.
用机器指令和汇编指令编程 (https://ic.work/) 物联网 第8张

任务二

用机器指令和汇编指令编程 (https://ic.work/) 物联网 第9张

用机器指令和汇编指令编程 (https://ic.work/) 物联网 第10张

1.分析后发现当前程序执行了前三条指令.(Debug的 T 命令再执行修改寄存器 SS 的指令时, 紧接着的下一条指令 会被自动执行 .)

用机器指令和汇编指令编程 (https://ic.work/) 物联网 第11张

2.为什么命名没有操作栈, 栈空间的内存发生了变化?
查阅资料发现: t 命令实际是引发了 单步中断 ,执行中断例程时,CPU会将一些中断例程使用的的寄存器变量自动压栈到栈中。

文章推荐

相关推荐