资源描述:
《实验四 数据块移动》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、南京航空航天大学电工电子实验中心实验报告课程名称:计算机硬件技术基础实验名称:数据块移动姓名:学号:评定成绩:审阅教师:实验时间:2017.05.02南京航空航天大学南京航空航天大学一、实验目的要求1)进一歩掌握主程序、子程序设计方法。2)掌握人机对话的设计方法。3)进一歩熟悉Tddebug调试环境和TurboDebugger的使用。二、实验任务本实验要求将指定数据区的数据搬移到另一块内存空间中,并通过子程序调用的方法将搬移的数据显示在屏幕上。源数据块和目标数据块在存储中的位置可能有三种情况,如图2-4-1所示。对于两个数据块分离的情况,数据的传送从数据块的首地址开始,或者从数据块的末地址开始
2、均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分会因搬移而遭到破坏。所以搬移过程可以通过以下两个方式完成:当源数据块首地址>目标块首址时,从数据块的首地址开始传送数据;当源数据块首地址<目标块首址时,从数据块的末地址开始传送数据。三、实验代码STACK1SEGMENTSTACKDW256DUP($)STACK1ENDSDATASEGMENTMES1DB'Thedatainbuf2are:',0AH,0DH,'$'BUF1DB11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH,00HBUF2DB20HDUP(
3、0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA南京航空航天大学START:MOVAX,DATAMOVDS,AXMOVSI,OFFSETBUF1MOVDI,OFFSETBUF2CMPSI,DI;判断数据段的先后顺序,决定首端移动或是尾端移动JGLABEL1MOVCX,20HLOOPER:MOVBX,CXMOVCX,SI[BX]MOVDI[BX],CXPUSHDI[BX]INCBXCALLPRINTLOOPLOOPERJMPLASTLABEL1:MOVBX,20HSUBBX,CXMOVCX,SI[BX]MOVDI[BX],CXPUSHDI[BX]DECBXCA
4、LLPRINTLOOPLABEL1JMPLASTLAST:RETPRINTPROCPOPDI[BX]PUSHAXMOVDX,DIMOVAL,02HINT21HPOPAXRETPRINTENDPCODEENDSENDSTART南京航空航天大学一、实验的运行数据及分析二、实验讨论及心得体会子程序的使用使程序的各部分模块化,结构清晰明了,是编程中很重要的方法。通过编写这个程序,了解了C语言中print在汇编语言中需要用一个模块实现,熟悉了Tddebug调试环境和TurboDebugger的使用。