实验三:编程、编译、连接、跟踪

 实验任务一:编写、汇编、连接、运行、调试汇编程序t1.asm

第一步:记事本中编写汇编源程序t1.asm

再将记事本所 输入的源程序保存在masm的目录下。

第二步:对源程序进行汇编截图如下:

可以看出在cmd下打出C盘目录下的masm编译环境对源程序t1.asm进行编译没有错误和警告,则编译通过,可以看出此时的

文件后缀变为了t1.obj,这是程序默认要生成的文件名,直接回车生成文件t1.asm。

第三步:对源程序进行连接截图如下:

对源程序进行连接所用操作符为link,非常明了,最后出现一个警告:没有栈段,这个警告可以不用理会,可以看出此时的文件

后缀变为了t1.exe,与编译一样,默认生成可执行文件t1.exe,直接回车生成文件即可到下一个操作完成连接。

第四步:对源程序运行截图如下:

运行操做只需打出文件前面的名称即可,可以看出该源程序的运行结果为36

实验任务二:将源程序中的line4和line9中的寄存器dl的值分别改为0~9中的任何一个数字观察运行结果

第一步:我这里line4中的dl值改为9,line9中dl的值改为3,在masm环境下重新汇编、连接、运行的截图:

可以看出此时的值变为了9.

实验任务三:用debug对生成的可执行文件t1.exe进行调试

第一步:使用r命令查看寄存器的值截图如下:

观察出寄存器cx的值为0016,寄存器cs=15d9,ds=15c9,看出cs=ds+10h

第二步:验证psp的头两个字节是否为CD 20截图如下:

可以看出头字节确实为CD 20,验证psp的内容为CD  20

第三步:用u命令对t1.exe进行反汇编截图如下:

截图所示即为反汇编所得到的源程序编码。

第四步:用t命令和p命令单步调试查看结果截图如下:

截图所示为单步调试结果,遇到int类型时改用p命令单步调试

实验任务三:编写源代码t2.asm

运行源代码截图如下:

可以看出没有运行结果,在masm环境下运行结果为空,老师说可以在debug环境下调试运行,但我弄了之后还是看不到有红色的36。

总结:

这次的实验让我接触了汇编的源程序编写以及调试和运行,让我知道了汇编怎样运行程序以及怎样调试程序,以及编写汇编程序的方法

感觉汇编程序的编写和java一样,都是独立编译调试环境去编写的,然后追踪连接来运行源程序,首次接触到masm编译环境,书上后面说

编译和连接可以简化,我尝试了但是只能连接简化,编译简化就是报错,希望看到我问题的同学或老师可以解惑。

转载于:https://www.cnblogs.com/nxdzy/p/9954891.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值