【实验报告】汇编语言程序设计.doc

【实验报告】汇编语言程序设计.doc

ID:60787919

大小:403.50 KB

页数:7页

时间:2020-12-18

【实验报告】汇编语言程序设计.doc_第1页
【实验报告】汇编语言程序设计.doc_第2页
【实验报告】汇编语言程序设计.doc_第3页
【实验报告】汇编语言程序设计.doc_第4页
【实验报告】汇编语言程序设计.doc_第5页
资源描述:

《【实验报告】汇编语言程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一.实验目的与内容目的:1)进一步熟悉汇编语言程序的编辑、宏汇编、链接、运行基本概念;2)熟练掌握动态调试程序TD/DEBUG的常用命令或窗口功能,学会用TD/DEBUG调试程序,修改数据和寄存器等环境;3)熟悉掌握汇编语言程序的典型数据结构设计、典型程序流控制方法,了解DOS/BIOS功能调用的基本方法。内容:(1)编写程序实现如下功能:①从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其他字符不变)并按原顺序将这些字符在屏幕上显示出来。②从键盘输入在0~6

2、5535之间的十进制数,将其转换为16进制数并在屏幕中显示出来,要求判断输入字符串是否为在0~65535之间的十进制数。(2)复习TD各种操作,并用DEBUG调试程序,学会基本命令操作,并通过单步、设置断点等方法观察中间结果,完成正常运行。命令行方式下直接键入debugmyfile.exe回车(myfile为待调试可执行程序),进入调试方式(显示-),键入H回车显示全部命令、格式和功能。常用命令有:U(反汇编)、A(汇编输入指令程序)、R(寄存器显示/修改)、I(端口输入)、O(端口输出)、D(显示

3、数据)、E(修改数据)。除资源修改管理功能外,重点应用T(单步)、Tn(执行n步)、P(过程/指令)、G××××(从当前CS:IP执行到断点××××)或G=××××1××××2(从××××1执行到××××2断点)调试实验程序。程序流程图:1.2.三.方案实现与测试1)实验一的基本实验内容和要求①编写代码完成功能要求,文件格式为.asm文件(如文件名为add.asm),将文件放入带汇编工具的文件夹中,即含有汇编工具(MASM/TASM.EXE)和链接工具(LINK/TLINK.EXE)的文件夹。②全屏

4、启动命令行模式,进入上述文件夹输入:tasmadd.asm或masmadd回车后编译产生add.obj文件再输入:tlinkadd.obj或linkadd回车后链接产生add.exe文件如果程序有错误,编译时会产生错误提示,指出错误的位置和错误类型及错误码,改正错误后再重新编译链接。③启动TD并载入add.exe,在代码段可以看到程序指令,部分符号已被实际地址或数值替换表示。④直接运行:运用TD功能键F9,运行结果如下图所示由图可以看出,在数据区13B3:0000到13B3:0005分别存放的是da

5、ta1,data2两个加数和data3和的数据,且运行结果正确,在运行结束之后,寄存器器中的值恢复到随机值。⑤单步运行:使用TD功能键F7,当单步运行完movcx,0002这条指令后,程序的运行结果如下图所示⑥断点运行,比如在指令mov[si+0004],alzhetiao指令上设置断点后,程序的运行结果为:⑧直接在代码区添加代码,如在指令movsi,00000后添加指令movax,100.程序结果2)汇编语言程序设计实验内容(1)从键盘输入任意字符串后,存入自定义存储单元,判断处理后将小写字母转换

6、为大写字母(其他字符不变)并按原顺序将这些字符在屏幕上显示出来。①主要算法:dispprocnearxorcx,cx;给CX中的数据进行清零movcl,input[1];将输入的字符数付给cl,循环次数movsi,2;input[2]开始为实际输入的ASCII码again:movdl,input[si]cmpdl,61h;判断是否为小写字母jbnextcmpdl,7ahjanextsubdl,20h;将小写字母转换为大写字母next:movah,02h;显示字符int21hincsi;SI指向下一个

7、字符loopagainretdispendp②调试程序:使用单步运行的方法,输入字符串“123abc”,程序运行到调用子程序,单步运行指令movcl,[0001]后,发现此时CX中的数值变为6,符合我刚才输入的字符总数。程序第一次执行指令cmpdl,61,可以发现CF=1,此时程序跳转到显示字符程序段,符合我刚才输入的第一个字符1的情况。当CX=0003时,此时程序判断输入的字符a是否为小写字母,单步运行指令subdl,20h后,小写字母a被转换为A,程序运行结果正确。当子程序运行结束之后,回到主程

8、序,当运行结果提示“Doyouwanttocontinue(y/n)”,此时如输入y,重复程序操作,如输入n,程序结束。最终程序运行结果如下图所示:(2)从键盘输入在0~65535之间的十进制数,将其转换为16进制数并在屏幕中显示出来,要求判断输入字符串是否为在0~65535之间的十进制数。①主要算法:changeprocnearclcxorax,axxorbx,bxxordx,dxmovcl,input[1]movsi,2again:movbl,input[si]c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。