教材实验4(P121)
实验任务(1)和(2) 首先,在t1.asm中写入源程序。 然后,进入虚拟Dos进行编译和连接,并没有警告错误和必须改正的错误。 这是编译和连接产生的目标文件以及可执行文件。用debug对可执行文件进行调试。首先进行反汇编。 先用t命令单步调试代码段前四条语句,在开始对0:200~0:22f内存单元进行修改之前查看0:200~0:22f内存单元的值。然后用g命令运行程序,运行到076A:0011之前。再查看0:200~0:22f内存单元的值。结果显示传送成功。实验任务(3) 应该将对应的机器码分别存储到指定的内存单元。由于我个人的虚拟Dos默认 CS = 076A,所以第一空应该填写 076A或者CS ,根据对所有指令的机器码的统计,在mov ax,4c00h 指令之前总共有24个字节,所以循环计数寄存器cx 的值为24。并进行了接下来的操作来验证我的推断。 首先在t2.asm 写入源程序。
然后,进入虚拟Dos进行编译和连接,并没有警告错误和必须改正的错误。 先进行反汇编,查看机器码的个数。 用t命令单步调试到循环执行之前,查看0:200 后面若干内存单元的值。再用g命令执行指令到076A:0018之前结束,并再次查看0:200 后面若干的内存单元的值,发现已经被修改并用u命令对0:200后面的内存单元进行反汇编,发现指令被成功复制!
实验教材5(P133-137)
实验任务(5) 首先是程序的源代码。以及编译、连接形成的文件 用u命令进行反汇编,并通过反汇编的内容得知a,b,c段的段地址。并分别查看a,b,c的8个字节的内容。 用g命令执行指令到076D:001C之前,并用d命令查看c的8个字节。达到了预期的目标! 实验任务(6) 首先是程序的源代码。以及编译、连接形成的文件 用u命令进行反汇编,可知a段和b段对应的段地址,并用d命令查看在push操作之前每个段的8个字单元。 用g命令运行程序到076D:001b之前,并用d命令查看逻辑段b的8个字单元,发现并被正确复制进去。新闻热点
疑难解答
图片精选