桂 林 理 工 大 学
实 验 告
班级 软件工程16-1班 学 3162052051116 姓名 张识虔 同组实验者
实验名称 数据传送实验 日期 2018年 11 月13 日
一、实验目的:
1. 掌握与数据有关的不同寻址方式。
2. 继续熟悉实验操作软件的环境及使用方法。
二、实验环境:
实验设备 PC 微机一台。
三、实验内容:
本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目 标字符串到屏幕上。
程序设计要点:获取数据源的段地址和偏移地址,将源地址的数据一个一个 的复制到目的地址上去,直到字符串复制完成。传送数据的程序流程图如图 2-2-1 所示。
图 2-2-1 数据传送流程图 根据上述流程图编写实验程序(例程文件名:A2.ASM)
2.2.4 实验步骤
(2) 编译 A2.asm 文件 进入 DOS 系统打开 E 盘 MYCODE 文件夹所在目录,并编译 A2.asm 文件, 知道编译无错误。如图 2-2-2 所示。
图 2-2-1 生成 A2.obj 文件
(3) 链接 A2.obj 文件 使用 LINK 命令链接 A2.obj 文件,生成 A2.exe 文件。运行 A2.exe 文件,查 看运行结果。如图 2-2-3 所示。
图 2-2-3 生成 A2.exe 文件
运行程序后,屏幕显示“HELLO,WORLD!”。说明程序运行正确。下 面我们通过调试查看内存数据,来了解数据的传输过程。
(4) DEBUG 调试
输入命令 E:masm5.0>debug a2.exe 回车可进入调试系统,首先对 a2.exe 进行
反汇编,如图 2-2-4 所示。
图 2-2-4 a2.exe 反汇编
从反汇编的程序上可以看出,原字符串存放的段地址为 0x076A,偏移地址 为 0x0000,复制字符串的目的地址的段地址为 0x076A,偏移地址为 0x0000, 字符串的长度为 0x0E。下面通过内存查看命令查看源地址和目的地址的数据情 况,如图 2-2-5 所示。
图 2-2-5 源地址与目的地址的数据
从图 2-2-5 可直接看出原地址所存放的数据为“HELLO,WORLD!”,目的地 址存放的数据全部为 0。现将程序运行至 0CDA:001B 处,程序运行到此处时, 可完成一个字节的数据传输,查看目的地址的内存数据。如图 2-2-6 所示。
图 2-2-6 传输一个字节后目的地址的数据
传输一个字节后可在目的地址的第一个数据位 0x48,其 ASCII 码为‘H’。 同时也可观察 AX 寄存的低 8 位也为 0x48。将程序运行至 0CDA:001D 处,此时 程序已经跳出了数据传送的循环,数据的传送工作已将完成。查看目的地址的内 存数据,如图 2-2-7 所示。
图 2-2-7 数据传送完成后目的地址的数据
由图 2-2-7 可直接看出数据传送完成之后目的地址存放的数据与源地
四、心得体会:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!