汇编实验3

汇编实验3 编程、编译、连接、跟踪

实验结论

任务1

  • 编写汇编源程序t1.asm
    进入edit,编写程序

  • 编译、连接
    进入masm

    本题中分步进行编译、连接
    编译:


    连接
  • 运行可执行文件

    程序输出:36
  • 修改dl的值
    将 line4中dl 的值修改为8

    重新编译、连接、运行


    输出结果为86,刚好依次是修改后line4,line9的dl的值
    将line4的dl改回3,line9的dl改成9

    编译连接执行

    输出39,可确定
    将line4,line9的dl修改成1,6


    输出16,可确定输出结果总为先后赋给dl的值
    将dl改回初始的3、6然后跟踪


    cx值为16,即程序的长度,cs=15dah,ds=15cah,满足(cs)=(ds)+10H的关系

    程序段前缀确为cd 20
    反汇编得到源代码

    然后再单步执行(注意遇到int命令使用p命令)


任务2

  • 编写源程序
  • 编译连接执行


    如老师给出的情况相同,必须清空屏幕,才能显示字符

  • 在debug下查看

    不好意思我疯了...这是什么鬼...
    查看一些资料,大概是因为传入常数所以单位无法确定,debug下会报错
  • 修改源代码
    将line7的0433h改为0432h, line10 的 0436h改为0439h, 然后重新汇编、连接

    惊奇的发现数字变为红色29,私以为[bx]最后一位确定数字
    恢复原代码,再将源代码中line7的0433h→0333h, line10 的 0436h→0336h, 然后重新汇编、连接

    出现了蓝色的36!!!
    个人认为该地址指示与显示相关的内容,第一次修改的最后一位对应输出数字,第二次修改的值代表颜色

实验总结

这次实验的趣味性依然很强,输出是直观能看到的代码效果,能带来对汇编的学习兴趣,但是有些东西自己一个人会想不通,基本得靠参考网上的资料,希望随着实验的深入我能对汇编语言掌握的更好

posted @ 2018-11-18 10:31  Shaoeeee  阅读(170)  评论(1编辑  收藏  举报