欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    数据传送程序设计.docx

    • 资源ID:1114495       资源大小:129.35KB        全文页数:6页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据传送程序设计.docx

    数据传送程序设计一、实验目的:1)学习数据传送的用法以及与数据有关的不同寻址方式。2)熟悉汇编语言程序的上机运行过程。3)学会使用DEBUG命令调试程序。二、实验仪器:1)仪器:英特尔586配置以上电脑一台,内存512MB以上,Windowsxp操作系统。2)软件:MASM5.0汇编软件或者EMU8086三、实验内容:D将40个字母A的字符串从源缓冲区传送到目的缓冲区。2)将26个小写英文字母存放到数据段1偏移地址为2000H单元开始的内存中,然后转换成大写字母并传送到数据段2以3000H单元开始的存储区。四、实验步骤:1)点击电脑的“开始”一“运行”,输入“CMD”,翻开DOS系统界面2)通过CD命令进入MASM软件目录3)使用edit命令编辑程序(程序清单见)C:MASM>EDITfiIename.ASM(enter)(filename可以自己随意命名)4)使用masn和Iink命令对程序进行汇编,连接。C:MSM>MSMfilename,asm(enter)C:MASM>linkfilename,obj(enter)5)使用Debug命令调试程序,观察调试过程中数据传输指令执行后各存放器及数据区的内容。CMASM>DEBUGfilename.EXE屏幕上出现一个短划线。为了确定我们所要设定的断点地址,常常用到反汇编命令,反汇编命令格式如下:-U;从当前地址开始反汇编用G命令来设置断点。比方想把断点设置在30ICH处,那么如下打入命令:-G301C;程序在012OH处停下,并显示出所有存放器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言,可以从显示的存放器的内容来了解程序运行是否正确。对于某些程序段,单从存放器的内容看不到程序运行的结果,而需要观察数据段的内容,此时可用D命令,使用格式如下:- DDS100OO;从数据段的0单元开始显示128个字节- t单步执行- R查看存放器的值- Q;退出五、程序清单:程序1:datasegment;数据段的定义source,bufferdb40dup(,)dataends;*extrasegment;附加段的定义dest_bufferdb40dup(?)extraendscodesegmentorgOlOOh;程序首地址assumecs:code,ds:data,es:extrastart:pushdssubax,axpushaxmovax,datamovds,axmovax,extramoves,axleasi,source_bufferleadi,dest_bufferCldmovex,40repmovsbmovah,4chint21hcodeendsendstart程序2:datalsegment;定义数据org2000h;变量存放数据段2000h单元source_bufferdb26dup(?);预留26个节单元datalendsdata2segmentorg3000hdest_bufferldb26dup(?)data2endsextrasegment将附加段教据送入数据段2dest_buffer2db26dup(?)extraendscodesegmentorgOlOOhassumecs:code,ds:datal,ds:data2,es:extrastart:movax,datalmovds,axxiao:leasi,source_buffermovax,a,movex,26movsi,axdal:incsiincaxloopxiaoleadi,dest_buffer2cldmovex,26movax,extramoves,axleasi,source_bufferIodsb;源串DS:Sl中数据送axsubax,20h;将字符串转换为大写字母stosb;ax内容送ES:DIda2:loopdalmovax,data2movds,axleadi,dest_bufferlleasi,dest_buffer2movex,26movax,es:sicodemovdi,axincsiincdiloopda2movax,movah,4chint21hendsendstart程序2流程图六、实验结果及分析:SaC:Windov/s$y$tem32cmd.exedebugxp.e×e145F:011ECD21-g011eINT21AX=4C5CBX=00CX=0000DX=000SP=FFFCDS=1459ES=145CSS=1459CS=145FIP=011E145F:011ECD21-dds:00001459:00001459:00101459:00201459:00301459:00401459:00501459:00601459:0070-des:0000145C:0000145C:0010145C:0020145C:0030145C:0040145C:0050145C:0060145C:00704141414141410OO41414141414141414141414100000000414141000000000041414141414100000000000000000000INT414141414141414141414141414141414141000000000000414141414141414141000000000000000000000000000000214141-414141-414141-004141-414141-414141-000000-000000-004141-414141-414141-000000-000000-000000-00000-000000-004141004141000000414100000000000041410041410000004141000000000000BP0SI=0028DI=0028NVUPEIPLZRNAPENC4141414141414141414100000000004141414141414141414100000000000000000000000000000041414141414141414141000000000000000000000000000000000000000000000000000000000000图1程序1实脸结果araaaaaraaaaarraaaaaAAAAAAAASBCAWindowssyitem32cmd.exe-debug22.exe-g0148AX=4C5A BX=0000 CX=00 DX=00 SP=00DS=1663 ES=1965 SS=1461 CS=1967 IP=01481967:0148 CD21-d ds:3000 1663:3000 41 1663:3010 51 1663:3020 41 1663:3030 51 1663:3040 00 1663:3050 00 1663:3060 00 1663:3070 00-d 1461:2000 1461:2000 611461:2010 71 1461:2020 001461:2030 00 1461:2040 001461:2050 00 1461:2060 001461:2070 00INT 21BP=0000 SI=001A DI=301ANV UP EI PL NZ NA PO NC42 43 52 5342 43 52 53 00 00 00 00 00 OO 00 0062 63 72 73 00 00 00 OO 00 OO 00 00 00 00 00 00AA 54 44 54 00 00 00 0064 74 00 00 00 00 00 0045 4655 5645 4655 5600 0000 0000 0000 0065 6675 7600 0000 0000 0000 OO00 0000 0047 48-49 4A 4B57 58-59 5A 00 47 48-49 4A 4B57 58-59 5A 00 00 00-00 00 00 00 00-00 00 00 00 00-00 00 00 00 00-00 00 0067 68-69 6A 6B77 78-79 7A 0000 00-00 00 00000000000000-0000-0000-0000-0000-0000 0000 0000 0000 0000 004C 4D 00 004C 4D00 0000 0000 0000 0000 OO6C 6D00 0000 0000 0000 OO00 0000 0000 004E AF 5000 00 004E 4F 5000 00 0000 00 0000 00 0000 00 0000 00 006E 6F 7000 00 0000 00 0000 00 0000 00 0000 00 0000 00 0000 00 00Obcdefghijklmnop qrstuvwxvz ABCDEFGHlJKLMNOP QRSTUVWXVZabcdefghijklmnop qrstuvwxvz图2程序2实险结果实验结果分析:图1中字母送入数据段及附加段以OOOOH为偏移段首址的同时,在以1459:0030段开始的数据段也送入了相同的数据,这是因为1459:0030与145C:OoOO对应相同的物理地址,即14590H+0030H=145C0H+0000H=145C0Ho图2中显示大写字母与小写字母存放在不同数据段,这是因为程序中先将小写字母送入以偏移地址为2000H单元开始的数据段1,此时该数据段段基址为1461H,然后编写程序将小写字母转换成大写字母送入附加段中暂存,最后将附加段中的数据传送至偏移地址为300OH开始的数据段2,此时的段基址为1663H。七、实验思考与总结:思考:如果不用串操作指令,该如何修改程序?图3思考题实验结果思考题采用传送指令与循环控制语句实现了字符串的传送操作,这种方法相比串操作指令简单容易理解,但是不适合大批量无规律数据操作。实验总结:本次数据传送实验验证了数据的段间传送、字符的转换、循环等操作方法的实现并在此根底上进行了数据传送程序的设计,在实险过程中,我发现自己对指令的理解不够透彻,相关的使用方法也掌握得不是很牢固,本次实验使我更加熟悉了数据传送、循环控制、字符串操作等指令的使用方法,从而使理论与程序设计实践相结合,稳固了理论知识的学习。

    注意事项

    本文(数据传送程序设计.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开