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

在线预览结束,喜欢就下载吧,查找使用更方便

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

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

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

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

计算机科学与技术实验报告 实验五指令格式和寻址方式 实验目的 1.了解汇编语言的编辑、汇编、连接、运行的过程。 2.掌握指令格式和寻址方式。 二、实验环境 1.PC机一台。 2.MASM软件。 三、实验内容: 1.开机 进入MS-DOS方式(从开始>运行>cmd) 2.在DOS提示符下进行汇编、连接、动态调试等操作。 例如:对源文件EXAMPLE.ASM进行的操作 E:\MASM5>EDITEXAMPLE.ASM编辑(输入)源程序操作 E:\MASM5\MASMEXAMPLE汇编源程序操作 E:\MASM5\LINKEXAMPLE连接并生成扩展名为.EXE的可执行文件 E:\MASM5\DEBUGEXAMPLE.EXE对可执行文件进行调试 3.调试命令(在DEBUG中使用的命令) a:U-反汇编命令 用法:-U代码段地址:起始偏移地址 b:D-显示内存中的数据命令 用法:-D数据段地址:存放数据的偏移地址如:-DDS:0020 c:T-单步执行程序命令 用法:-T要执行的指令条数如:-T3 d:G-连续执行程序命令 用法:-G=代码段地址:指令的起始偏移地址指令的结束偏移地址 如:-G=CS:100106 注意:结束地址一定要是操作码的所在地址 e:R-查看和修改寄存器数据命令 用法:-R回车如:-RAX Q-退出”DEBUG“应用程序命令 4.应用例子-EXAMPLE 源程序:X、Y为字节数,把它们相加,结果放在Z中。 编辑(输入)源程序 E:\MASM5\EDITEXAMPLE.ASM DATASEGMENT XDB12H YDB34H ZDB? DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATA MAIN:MOVAX,DATA MOVDS,AX MOVAL,X ADDAL,Y MOVAH,00 ADCAH,00 MOVBL,2 DIVBL MOVZ,AL MOVAH,4CH INT21H CODEENDS ENDMAIN 4.修改汇编代码,当输入大写字母时会输出对应的小写字母。(尝试输入小写字母时对应输出大写字母) 汇编源程序操作: 1>E:\MASM5\MASMEXAMPLE Microsoft(R)MacroAssemblerVersion4.00 Copyright(C)MicrosoftCorp1981,1983,1984,1985.Allrightsreserved. 50860Bytessymbolspacefree 0WarningErrors 0SevereErrors 连接并生成扩展名为.EXE可执行文件的操作: 2>E:\MASM5\LINKEXAMPLE; Microsoft(R)8086ObjectLinkerVersion3.05 Copyright(C)MicrosoftCorp1983,1984,1985.Allrightsreserved. 3>D:\MASM5\EXAMPLE 对可执行文件进行调试的操作: D:\MASM5\DEBUGEXAMPLE.EXE - (1)-U;用反汇编命令”U代码段地址:起始偏移地址“显示出程序的表示符” (2)观察内存中的数据: -DDS:0000;用显示内存中的数据命令命令”D数据段地址:存放数据的偏移地址“显示内存中的数据 (3)连续执行程序命令 -G=CS:0000??;代码段地址:指令的起始偏移地址指令的结束偏移地址 执行程序后观察内存中的数据(结果): -DDS:0000;用显示内存中的数据命令命令”D数据段地址:存放数据的偏移地址“显示内存中的数据 (4)-RIP;修改IP寄存器中的数据 (5)-T;单步执行程序命令(执行一条指令) -T3;执行3条指令 (6)-R;查看寄存器数据命令 -RAX;查看和修改寄存器数据命令 (7)-Q;退出”DEBUG“应用程序命令 四、实验结论及总结 写出程序EXAMPLE.asm的最前两条指令和最后两条指令指针IP(PC)、指令代码、汇编语言指令: 汇编语言指令指令IP指令代码movax,data0000B8AB08movds,ax00038ED8Movah,4ch0018B44Cint21h001ACD21 写出指令movds,ax;movah,4ch;ADDAL,Y源操作数的寻址方式。 指令源操作数的寻址方式movds,ax寄存器寻址movah,4ch立即数寻址ADDAL,Y直接寻址写出单步执行完成第四条指令时,各个寄存器的值。 第四条指令为:ADDAL,Y AX=0812BX=0000CX=0080DX=0000SP=0000BP=0000SI=0000DI=0000 DS=08ABES=089BSS=08ABCS=08AC 程序运行后数据段DS中