• 实验三


    一、实验结论

    1.实验内容练习1

    (1)编写汇编源程序(此为用记事本写的汇编源程序)

    (2)对源程序 t1.asm 进行汇编、连接、运行、调试

    汇编

     连接与运行

     

    ①输出结果为36;

    ②将 line4和line9种寄存器dl 的值分别修改为 0~9 中任何一个数字,重新汇编→ 连接→运行,观察结果的变化。

    汇编连接运行

    结果为57

    可以得出该运行结果为输出以line4的dl值为十位和line9dl值为个位的十进制数

    (3) 用debug对生成的可执行文件 t1.exe 进行调试。

    查看寄存器值:观察寄存器 cx=0016;ds=15c9;cs=15d9,满足关系(cs)=(ds)+10H。

    查看内存单元:PSP的头两个字节为CD 20;符合之前猜测。

    用u进行反汇编,观察到反汇编得到的源代码与记事本中写入的相同。

     2.练习2

    第1步,编写汇编源程序t2.asm

     用cmd命令行进行编译和连接

    尝试运行

    运行失败,使用masm集成操作系统进行调试(报错)

    根据错误信息进行更改汇编源代码

    再次运行

    将源代码中line7的0433h→0432h, line10 的 0436h→0439h, 然后重新汇编、连接,得到可执行文件 t2.exe,使用cls命令清屏后,再次观察程序运行结果。

     

    试将源代码中line7的0433h→0333h, line10 的 0436h→0336h, 然后重新汇编、连接,得到可执行文件 t2.exe,观察运行结果。

    运行结果如上图

    二、总结与体会

    1.本次实验内容,我分别用dos和masm进行了汇编源程序的编译与运行。我发现,相对于dos操作系统而言,masm编写汇编程序更加便捷,对于某些程序错误也能正确的

    检测出来,适合用来快速编写汇编源程序。dos平台更适合进行程序的分析,能在分步调试的过程中发现程序本身是如何来实现的。两者各有各的优点,要学会在适宜的环

    境下运用相应的软件

    2.在dos平台下的分步调试中,我还意识到了t命令和p命令的区别

    ①t命令是分步调试,单步跟踪,即使是进入子程序也是如此

    ②p命令也是分步调试,单步跟踪,但是p命令在调试子程序时,可以将子程序一步执行结束,不需要进入子程序当中,亦可以用来快速执行循环程序。

    3.在最后一个实验中,我们通过汇编源程序,成功输出了不同颜色的不同数字,根据之前的实验,可能是我们更改了显存内存单元中的信息实现的,但是具体的数字与内存

    单元的内容之间的关系,还是对它不了解,希望我在后面的学习中能找到答案

  • 相关阅读:
    一道经典的JavaScript面试题
    模拟学信网登录,Cookie 序列化,在反序列化之后不能用的问题
    EF搜索数据自动将表名变复数问题
    EF查看sql的方法
    查看当前正在被执行的sql
    mmsql查看最近操作日志
    查询存储过程里面的含有的关键字
    mmsql 查询每个分类的前3条数据
    C# checked关键字当属性
    windows2012 IIS8.5 不能在此路径中使用此配置节
  • 原文地址:https://www.cnblogs.com/xihongqing/p/9964705.html
Copyright © 2020-2023  润新知