数据传送程序设计

数据传送程序设计

ID:44754993

大小:128.51 KB

页数:5页

时间:2019-10-28

数据传送程序设计_第1页
数据传送程序设计_第2页
数据传送程序设计_第3页
数据传送程序设计_第4页
数据传送程序设计_第5页
资源描述:

《数据传送程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据传送程序设计一、实验目的:1)学习数据传送的用法以及与数据有关的不同寻址方式。2)熟悉汇编语言程序的上机运行过程。3)学会使用DEBUG命令调试程序。二、实验仪器:1)仪器:英特尔586配置以上电脑一台,内存512MB以上,windowsxp操作系统。2)软件:MASM5.0汇编软件或者EMU8086三、实验内容:1)将40个字母A的字符串从源缓冲区传送到目的缓冲区。2)将26个小写英文字母存放到数据段1偏移地址为2000H单元开始的内存中,然后转换成大写字母并传送到数据段2以3000H单元开始的存储区。四、实验步骤:1)点击电脑的“开始”—》“运行”,输入“CMD”,打开

2、DOS系统界面2)通过CD命令进入MASM软件目录3)使用edit命令编辑程序(程序清单见)C:MASM>EDITfilename.ASM(enter)(filename可以自己随意命名)4)使用masm和link命令对程序进行汇编,连接。C:MASM>MASMfilename.asm(enter)C:MASM>linkfilename.obj(enter)5)使用Debug命令调试程序,观察调试过程中数据传输指令执行后各寄存器及数据区的内容。C:MASM>DEBUGfilename.EXE屏幕上出现一个短划线。为了确定我们所要设定的断点地址,常常用到反汇编命令,反汇编

3、命令格式如下:--U;从当前地址开始反汇编用G命令来设置断点。比如想把断点设置在301CH处,则如下打入命令:—G301C;程序在0120H处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言,可以从显示的寄存器的内容来了解程序运行是否正确。对于某些程序段,单从寄存器的内容看不到程序运行的结果,而需要观察数据段的内容,此时可用D命令,使用格式如下:—DDS:0000;从数据段的O单元开始显示128个字节—t单步执行—R查看寄存器的值—Q;退出五、程序清单:程序1:datasegment;数据段的定义source_buff

4、erdb40dup('A')dataends;**************extrasegment;附加段的定义dest_bufferdb40dup(?)extraendscodesegmentorg0100h;程序首地址assumecs:code,ds:data,es:extrastart:pushdssubax,axpushaxmovax,datamovds,axmovax,extramoves,axleasi,source_bufferleadi,dest_bufferCldmovcx,40repmovsbmovah,4chint21hcodeendsendstart程序

5、2:data1segment;定义数据段1org2000h;变量存放至数据段2000h单元source_bufferdb26dup(?);预留26个字节单元data1endsdata2segmentorg3000hdest_buffer1db26dup(?)data2endsextrasegmentdest_buffer2db26dup(?)extraendscodesegmentorg0100hassumecs:code,ds:data1,ds:data2,es:extrastart:movax,data1movds,axleasi,source_buffermovax,'a

6、'movcx,26xiao:mov[si],axincsiincaxloopxiaoleadi,dest_buffer2cldmovcx,26movax,extramoves,axleasi,source_bufferda1:lodsb;源串DS:SI中数据送axsubax,20h;将字符串转换为大写字母stosb;ax内容送ES:DIloopda1movax,data2movds,axleadi,dest_buffer1leasi,dest_buffer2movcx,26da2:movax,es:[si]mov[di],axincsiincdiloopda2movax,mov

7、ah,4chint21hcodeends程序2流程图endstart六、实验结果及分析:图1程序1实验结果图2程序2实验结果实验结果分析:图1中字母送入数据段及附加段以0000H为偏移段首址的同时,在以1459:0030段开始的数据段也送入了相同的数据,这是因为1459:0030与145C:0000对应相同的物理地址,即14590H+0030H=145C0H+0000H=145C0H。图2中显示大写字母与小写字母存放在不同数据段,这是因为程序中先将小写字母送入以偏移地址为2000H单元开始的

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

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

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