一、实验目的
1. 理解并掌握汇编源程序组成与结构
2. 掌握汇编语言源程序编写→汇编→链接→调试的工具和方法
3. 理解汇编源程序中地址表示、段寄存器的用法
4. 理解和掌握寄存器间接寻址方式[bx]
5. 通过汇编指令loop的使用理解编程语言中循环的本质
二、实验准备
1. 学习/复习第5章使用[bx]和loop实现循环的编程应用示例(教材5.5节,5.8节)
2. 复习第3章「栈」的知识
3. 结合第4章课件,复习完整汇编源程序编写→汇编→连接→运行→调试的方法
4. 复习8086汇编中内存单元地址的表示,以及段寄存器DS, SS, ES, CS的用途
三、实验结论
1.实验任务1 (1)给出ex1.asm源代码:
(2)给出使用masm、link工具汇编、链接的命令行及运行结果截图
(3)给出使用debug调试的截图
1)查看PSP的命令
2)使用u命令精确进行反汇编
3)使用g命令执行到line16退出执行之前
2.实验任务2
(1) 给出ex2.asm源代码
(2)给出使用masm、link工具汇编、链接的命令行及结果截图
(3)使用debug调试
1)使用u命令精确进行反汇编
2)灵活使用t命令、p命令、g命令,对ex2.exe进行调试
3)把ex2.asm中line9 mov cx,4改成 mov cx,8, 保存后重新汇编、链接、运行并观察结果。
3.实验任务3
(1)给出ex3.asm源代码
(2)运行结果截图
3)基于以下实验操作的发现和文字说明。
1)把填充的字数据,从0237H改成0239H,再次保存后,汇编、链接、运行,观察结果。
2)把填充的字数据,从0237H改成0437H,再次保存后,汇编、链接、运行,观察结果。
3)原因分析:
第一次高位字节不变,改变低位字节,结果为颜色不变内容改变;第二次改变高位字节,低位字节不变,结果为颜色改变内容不变。可推导出高位字节里存放的是颜色信息,低位字节里存放的是内容信息。
4.实验任务4
(1)综合使用[bx]和loop,给出ex4.asm源代码
(2)汇编、链接无误后,灵活使用debug的t命令、g命令、p命令调试,用d命令查看0:200~0:23F,确认是否将0~63传送至此段内存区域。
5.实验任务5
下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处
(1)填空ex5.asm源代码
(2)汇编连接后,灵活使用debug的t命令、g命令、p命令调试,用d命令查看0:200之后的若干字节,观察是否将mov ax,4c00h之前的指令复制到指定内存
原文:https://www.cnblogs.com/yfuyfyu/p/13944055.html