汇编实验3

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

实验结论

任务1

  • 编写汇编源程序t1.asm
    进入edit,编写程序
    1492634-20181117192421925-193372139.png
    1492634-20181117192500008-777870259.png
  • 编译、连接
    进入masm
    1492634-20181117192518175-1131144770.png
    本题中分步进行编译、连接
    编译:
    1492634-20181117191842577-883326863.png
    1492634-20181117191900642-222075523.png
    连接
    1492634-20181117191934567-1938599965.png
  • 运行可执行文件
    1492634-20181117192011528-416494242.png
    程序输出:36
  • 修改dl的值
    将 line4中dl 的值修改为8
    1492634-20181117193217152-1028933521.png
    重新编译、连接、运行
    1492634-20181117193111261-1523114717.png
    1492634-20181117193301817-1541296032.png
    输出结果为86,刚好依次是修改后line4,line9的dl的值
    将line4的dl改回3,line9的dl改成9
    1492634-20181118095543150-1837178132.png
    编译连接执行
    1492634-20181118095559293-366561279.png
    输出39,可确定
    将line4,line9的dl修改成1,6
    1492634-20181118095739145-19053777.png
    1492634-20181118095741850-309946403.png
    输出16,可确定输出结果总为先后赋给dl的值
    将dl改回初始的3、6然后跟踪
    1492634-20181118100120207-325276467.png
    1492634-20181118100124121-1083353131.png
    cx值为16,即程序的长度,cs=15dah,ds=15cah,满足(cs)=(ds)+10H的关系
    1492634-20181118101012734-203013447.png
    程序段前缀确为cd 20
    反汇编得到源代码
    1492634-20181118101108595-2147470182.png
    然后再单步执行(注意遇到int命令使用p命令)
    1492634-20181118101245277-2041634796.png
    1492634-20181118101255944-1609620619.png
    1492634-20181118101314885-147429974.png

    任务2

  • 编写源程序
    1492634-20181118101447902-1403129773.png
  • 编译连接执行
    1492634-20181118101515695-834232017.png
    1492634-20181118101526456-134992312.png
    如老师给出的情况相同,必须清空屏幕,才能显示字符
    1492634-20181118101537336-310732372.png
    1492634-20181118101559936-1469638104.png
  • 在debug下查看
    1492634-20181118101723810-1966482449.png
    不好意思我疯了...这是什么鬼...
    查看一些资料,大概是因为传入常数所以单位无法确定,debug下会报错
  • 修改源代码
    将line7的0433h改为0432h, line10 的 0436h改为0439h, 然后重新汇编、连接
    1492634-20181118102017829-385285060.png
    惊奇的发现数字变为红色29,私以为[bx]最后一位确定数字
    恢复原代码,再将源代码中line7的0433h→0333h, line10 的 0436h→0336h, 然后重新汇编、连接
    1492634-20181118102342473-475636600.png
    出现了蓝色的36!!!
    个人认为该地址指示与显示相关的内容,第一次修改的最后一位对应输出数字,第二次修改的值代表颜色

实验总结

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

转载于:https://www.cnblogs.com/Shaoeeee/p/9975266.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值