资源描述:
《微机原理与接口技术_软件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一指令与汇编语言基础一、实验目的(1)了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点;(2)掌握汇编语言程序指令编辑、宏汇编、连接、运行基本概念;(3)熟练常握动态调试程序TD的常用命令和窗口功能,学会用TD调试程,修改环境;(4)学会利用DEBUG或TD检查认识指令功能的正确方法。二、实验任务及内容(1)掌握进入全屏命令行方式、修改环境的方法;启动开始菜单里的运行选项,键入cnxl,即可启动命令行方式,在其属性栏中按图3.1・1圈中所示设置可进入全屏命令行方式:(2)确定源程序的存放目录,构建个人实验环境(3)建立、编辑汇编源程序,选择程序样本,构建典型的汇编程
2、序框架,包括基本的数据段、堆栈段和代码段,编写程序实现如下功能:在datal和血负2两个存储单元屮分别存放两个16进制数,将它们相加后所得值存入血ta3中。(4)用汇编工具(MASM/TASM.EXE)汇编源程序产生OBJ目标文件将所要编译的源程序文件(add.asm)放到带汇编工具的文件夹中,在全屏命令行模式下,进入该文件夹,输入tasmadd.asm,冋车后即叫编译产生OBJ目标文件。(5)用链接程序(LINK/TLINK.EXE)产生EXE可执行文件产生OBJ目标文件后,继续输A:tlinkadd.obj,回车后即可产生EXE可执行文件。(6)用调试工具软件(TD.EXE/Deb
3、ug.com)调试执行程序用编辑软件,输入以下汇编语言源程序:;将datal和data2中的两个四位16进制数相加datasegmentdataldb12H,34H;加数1data2db56H,78H;加数2data3db2dup(?);和dataendsstackssegmentstackdb256dup(?)stacksendscodesegmentassumecs:code,ds:data,ss:stacksmainprocfarstart:movax,datamovds,axmovax,stacksmovss,axmovsi,0movex,2;设置循环次数looplimoval
4、,datal[si];取加数1movdata3[sij,almoval,data2fsil;取加数2adcdata3[si],alincsilooplooplmovah,4ch;程序结束返回int21hmainendpcodeendsendstart三、用tasmadd.asm生成obj文件,用tlink生成exe文件,再用TD打开。用TD将可执行文件调入,并进行调试;四、①在Windows中启动TDa.仅启动TD而不载入要调试的程序双击TD.EXE文件名,Windows就会打开一个DOS窗口并启动TD。启动TD后会显示一个版权对话框,这时按回车键即可关掉该对话框。b.启动TD并同时载
5、入要调试的程序把要调试的可执行文件拖到TD.EXE文件名上,Windows就会打开一个DOS窗口并启动TD,然后TD会把该可执行文件自动载入内存供用户调试。若建立可执行文件时未生成符号名表,TD丿口'动后会显水uProgramhasnosymboltablev的提示窗口,这时按回车键即可关掉该窗口。②观察CPU寄存器、存储器环境TD启动后呈现的是一个具有窗口形式的用户界面,见图3.1-2,称为CPU窗口。③单步、断点运行,观察中间结果,完成正常执行TD功能键F7为跟踪进入(对CALL指令将跟踪进入子程序),F8为单步跟踪(对CALL指令将执行完子程序返回后才停下),F2为在当前光标处设
6、置/清除断点。通过单步,断点运行中观察数据区、各个寄存器值的变化,以验证程序运行是否正确。④修改当前运行环境,直接编写程序片断,验证指令功能修改寄存器(AX、BX、CX、DX、SI、DI、BP、SP),并观察;修改段寄存器。b.修改存储器,并指定不同存储段。c.修改CS:IP,单步运行指定指令(F7或F8),观察指令运行结果。d.将光标放置在TD窗口的代码区右击,可显示代码区的局部菜单,见图3.1-3,选择相应功能进行操作。⑤重点解决段存储结构和数据变量的定义与访问访问数据段屮具体位置的值时,可将光标放置在数据区,右击产生数据区菜单。实验二汇编语言程序设计一、实验目的1、进一步熟悉汇编
7、语言程序的编辑、宏汇编、链接、运行基本概念;2、熟悉掌握动态调试TD/DEBUG的常用命令或窗口功能,学会用TD/DEBUG调试程序,修改数据和寄存器等坏境;3、熟悉掌握汇编语言程序的典型数据结构设计、典型程序流控制及方法,了解DOS/BIOS功能调用的基本方法。二、基本实验内容(1)编写程序实现如下功能:①从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其他字符不变)并按原顺序将这些字符在屏幕上显示出来