王爽汇编语言第三版实验3
目录
- 王爽汇编语言第三版实验1
- 王爽汇编语言第三版实验2
- 王爽汇编语言第三版实验3
- 王爽汇编语言第三版实验4
- 王爽汇编语言第三版实验5
- 王爽汇编语言第三版实验6
- 王爽汇编语言第三版实验7
- 王爽汇编语言第三版实验8和9
- 王爽汇编语言第三版实验10和11
- 王爽汇编语言第三版实验12
- 王爽汇编语言第三版实验13
- 王爽汇编语言第三版实验14
实验任务
- 将下面的程序保存为t1.asm,将其生成可执行文件t1.exe
用Vscode编写源程序t1.asm
用脚本一键生成可执行文件t1.exe
成功运行
查看资源管理器,成功生成T1.obj与t1.exe文件‘
用
debug
跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容同样用脚本一键调试程序
用u
命令验证一下,指令是否写入程序
用t命令逐步执行
这里要注意的是当遇到int 21终止指令的时候,要使用p
命令而不是用t命令
这里第一次做因为没有使用t
命令,导致程序并没有正常退出
根据上面的运行结果,得出各个寄存器的值是
- PSP的头两个字节是CD20,用
Debug
加载t1.exe,查看PSP的内容
通过r
命令查看cs与ds的内容
刚好相差256字节,由此可以判断出psp的起始地址为0e14:0000,检查一下:
可以看到起始地址的前两个字节是CD 20,由此可以判断该处是PSP的起始地址,没错。
- 将
0FFFF0~0FFFFFH
中的8个字,逆序复制到00200H\~0020FH
中
运行下面的指令即可解决该题
1 | assume cs:codesg |
执行程序之前:
执行程序后:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 木人舟的博客!
评论
ValineDisqus