预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共19页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2.1显示程序实验 实验目的 掌握在PC机上以十六进制形式显示数据的方法。 掌握部分DOS功能调用使用方法。 熟悉Windows集成操作软件Tdpit的操作环境和操作方法 实验设备 PC微机一台、TD-PITD实验系统一套。 3.实验步骤和结果 (1)编辑源代码 STACK1SEGMENTSTACK DW256DUP(?) STACK1ENDS DATASEGMENT MESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,'$' MES1DB'Show34Hashex:',0AH,0DH,'$' SDDB15H DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATA START:MOVAX,DATA MOVDS,AX MOVDX,OFFSETMES MOVAH,09H INT21H MOVDX,OFFSETMES1 MOVAH,09H INT21H MOVSI,OFFSETSD MOVAL,DS:[SI] ANDAL,0F0H MOVCL,4 SHRAL,CL CMPAL,0AH JBC2 ADDAL,07H C2:ADDAL,30H MOVDL,AL MOVAH,02H INT21H MOVAL,DS:[SI] ANDAL,0FH CMPAL,0AH JBC3 ADDAL,07H C3:ADDAL,30H MOVDL,AL MOVAH,02H INT21H KEY:MOVAH,1 INT16H JZKEY MOVAX,4C00H INT21H CODEENDS ENDSTART (2)实验结果图所示: 2.2数据传送实验 1.实验目的 1.掌握与数据有关的不同寻址方式。 2.继续熟悉实验操作软件的环境及使用方法。 2.实验设备 PC微机一台、TD-PITD实验系统一套。 3.实验内容 本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏 幕上。参考实验程序如下。 实验程序清单(例程文件名:A2.ASM) DDATASEGMENT;定义源数据段 MSRDB"HELLO,WORLD!$" LENEQU$-MSR DDATAENDS EXDASEGMENT;定义附加数据段 MSDDBLENDUP(?) EXDAENDS MYSTACKSEGMENTSTACK;定义堆栈段 DW20DUP(?) MYSTACKENDS CODESEGMENT;定义代码段 ASSUMECS:CODE,DS:DDATA,ES:EXDA START:MOVAX,DDATA MOVDS,AX;装载数据段寄存器 MOVAX,EXDA MOVES,AX;装载附加数据段寄存器 MOVSI,OFFSETMSR;设置SI MOVDI,OFFSETMSD;设置DI MOVCX,LEN NEXT:MOVAL,[SI];开始传输数据 MOVES:[DI],AL INCSI INCDI DECCX JNZNEXT PUSHES POPDS;将附加段寄存器指向的段值赋给数据段寄存器 MOVDX,OFFSETMSD MOVAH,9 INT21H KEY:MOVAH,1;判断是否有按键按下? INT16H;(为观察运行结果,使程序有控制的退出) JZKEY MOVAX,4C00H;结束程序退出 INT21H CODEENDS ENDSTART 将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示。 MOVBX,0 MOVCX,LEN NEXT:MOVAL,MSR[BX] MOVES:MSD[BX],AL INCBX LOOPNEXT 4.实验步骤 (1)编辑源代码 将程序源代码编辑完成之后修改文件名为A2.asm保存在目录E:\masm5.0\MYCODE下。 (2)编译A2.asm文件 进入DOS系统打开MASM5.0所在目录,并编译A2.asm文件,直到编译无错误。如图2-2-2所示。 (3)连接A2.obj文件 使用LINK命令连接A2.obj文件,生成A2.exe文件。运行A2.exe文件,查看运行结果。如图所示: 运行程序后,屏幕显示“HELLO,WORLD!”。说明程序运行正确。下面通过调试查看内存数据来了解数据的传输过程。 (4)DEBUG调试 输入命令E:\masm5.0>debuga2.exe回车可进入调试系统,首先对a2.exe进行反汇编,如图所示: 从反汇编的程序上可以看出,原字符串存放的段地址为0,13E5,偏移地址为0x0000,复制字符串的母的地址为0x13E6,偏移地址为0x0000,字符串的长度为0x0D。下面通过内存查看命令源地址和目的地址的数据情况,如图所示: 从此图可以直接看出原地址所存放的数据位“HELLO,WORLD!”,目