《实验四 数据块移动.doc》由会员分享,可在线阅读,更多相关《实验四 数据块移动.doc(4页珍藏版)》请在三一文库上搜索。
1、电工电子实验中心实验报告课程名称: 计算机硬件技术基础 实验名称: 数据块移动 姓名: 学号: 评定成绩: 审阅教师: 实验时间:2017.05.02南京航空航天大学一、 实验目的要求1) 进一歩掌握主程序、子程序设计方法。2) 掌握人机对话的设计方法。3) 进一歩熟悉 Tddebug 调试环境和 Turbo Debugger 的使用。二、 实验任务本实验要求将指定数据区的数据搬移到另一块内存空间中,并通过子程序调用的方法将搬移的数据显示在屏幕上。源数据块和目标数据块在存储中的位置可能有三种情况,如图 2-4-1 所示。对于两个数据块分离的情况,数据的传送从数据块的首地址开始,或者从数据块的末
2、地址开始均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分会因搬移而遭到破坏。所以搬移过程可以通过以下两个方式完成:当源数据块首地址目标块首址时,从数据块的首地址开始传送数据;当源数据块首地址目标块首址时,从数据块的末地址开始传送数据。三、 实验代码STACK1 SEGMENT STACKDW 256 DUP($)STACK1ENDSDATASEGMENTMES1DBThe data in buf2 are:,0AH,0DH,$BUF1DB 11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH,00HBUF2D
3、B 20H DUP(0)DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART: MOVAX,DATA MOVDS,AX MOVSI,OFFSET BUF1 MOVDI,OFFSET BUF2 CMP SI,DI;判断数据段的先后顺序,决定首端移动或是尾端移动 JG LABEL1 MOV CX,20H LOOPER: MOV BX,CX MOV CX,SIBX MOV DIBX,CX PUSH DIBX INC BX CALL PRINT LOOP LOOPER JMP LAST LABEL1: MOV BX,20H SUB BX,CX MOV CX,SI
4、BX MOV DIBX,CX PUSH DIBX DEC BX CALL PRINT LOOP LABEL1 JMP LAST LAST: RETPRINT PROC POP DIBX PUSH AX MOV DX,DI MOV AL,02H INT 21H POP AX RETPRINT ENDPCODE ENDSEND START四、 实验的运行数据及分析五、 实验讨论及心得体会子程序的使用使程序的各部分模块化,结构清晰明了,是编程中很重要的方法。通过编写这个程序,了解了C语言中print在汇编语言中需要用一个模块实现,熟悉了 Tddebug 调试环境和 Turbo Debugger 的使用。