资源描述:
《实验一汇编语言编程基础》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验报告课程名称汇编语言程序设计实验项目实验一、汇编语言编程基础实验仪器微机系统、汇编调试环境系另y计算机科学与技术专业计算机科学与技术班级/学号计科H03/201101H11学生姓名星整实验日期2013/5/18成绩胡信裕指导教师实验一汇编语言编程基础一、实验目的1.熟练掌握汇编语言程序格式2.熟悉汇编语言源程序的编辑和汇编、A标模块的连接以及可执行程序的调试3.熟悉80x86CPU的基本指令系统4.熟悉并掌握x86汇编语言基本结构程序设计与调试二、实验要求1.Windows操作系统并具有命令提示符操作界而的计算机,且系统内安装有汇编语言编程环境
2、。2.在开始本实验之前,复习教科书的相关内容,并预先写出相应的源程序。3.通过DEBUG上机调试,注意观察,并记录下现象。三、实验内容(一)MASM和DEBUG应用使用任何一个文本编辑器编辑下面给出的源文件(例如EDIT,记事本,PWB等),在编辑过程中注意及时保存文件,建议新建文件后即予以保存,保存文件时务必加上.Asm。本实验可使用两种格式的源程序:•釆用完整段定义格式的源程序:DatasegmentXIdb?,1,23HX2db$-xl,,a,,,b,,,cdef,X3dw10,100,1000,10000X4db2DUP(3DUP(1,2,
3、3))DataendsCodesegmentMainprocfarAssumeds:data,cs:codeStart:Movax,data;氺1Movds,ax;氺2Moval,xl;*3Movbl,x2;*4Movex,x3;*5Movdx,x3+4;*6Movax,4c00h;*7Int21h;*8MainendpCodeendsEndmain•釆用简化段定义格式编写上述源程序,汇编、连接、调试:.modelsmall.stack100h•dataXIdb?,1,23HX2db$-xl,,a,,,b,,,cdef,X3dw10,100,100
4、0,10000X4db2DUP(3DUP(1,2,3)).codeMainprocMovax,@dataMovds,axMoval,xlMovbl,x2Movex,x3Movdx,x3+4Movax,4c00hInt21hMainendpEndmain注释:db伪指令用于分配一个字节单元的存储空间,dw伪指令用于分配一个字单元的存储空间。操作步骤如下:(1)执行masm.exe对源程序进行汇编,生成.obj文件和.1st文件。(2)执行连接Link生成.exe文件。(3)利用debug调试程序:(4)分别用T命令和g命令执行程序。【思考题】:(1)
5、记录程序处于初始执行程序状态时(尚未执行时)寄存器的值和单步执行过程屮寄存器的值,哪些寄存器的值发生了变化?变化的原因是什么?(2)寄存器IP的变化有什么意义?(3)用T命令跟踪执行程序直到“INT21U”指令,内存单元X2和X4的逻辑地址是什么?寄存器CX和内存单元X4最终的值是什么?(4)为什么需要程序中的前两条指令movax,@data和movds,ax,它们的作用是什么?如果缺少这两条指令程序将会如何?(5)使用简化结构的点命令描述,上述程序还可作如何修改?【回答题】:(1)岡出数据段每个单元数据内容hD14B4Z000014B4:0000
6、000114B4:001014B4:0020^L4B4:003014B4:004014B4:005014B4:006014B4:0070—R03100203B8B48B16000000000000230327010102148E0F00000000000000616202030300D8A0B8000000000000006364-200102-030000—000000—8A4CCD-210000—000000-000000—0065660A006400E8..tt.abcdef0102030102030100000000000000IE0300
7、8B0E0B0000000000000000L.f..00000000000000...........0000000000000000000000000000fiX=4C00BX=0003S)S=i4B4ES=14A400A7:107C90CX=000ADX=03E8SP=FFFABP=0000SI=0000DI=0000SS=14B4C8=00A7IP=107CNUUPDIPLNZNAPONCNOPXIOOhOlh23hX203h61h62h20h63h64h65h66hX3OOhOahOOh6ehE8h03hlOh27hX4Olh02h03h
8、Olh02h03hOlh02h03hOlh02h03hOlh02h03hOlh02h03h(1)写出程序运行后AX、BX、