欢迎来到天天文库
浏览记录
ID:9804373
大小:278.50 KB
页数:22页
时间:2018-05-10
《(东北大学)汇编实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、汇编语言程序设计实验报告实验名称汇编综合实验班级学号姓名日期成绩评阅人软件学院一、实验目的与意义了解和掌握MOV、PUSH、POP、XCHG四条指令的作用和在编程中的用法。了解和掌握并且能够简单的应用加、减、乘、除指令的在程序设计中的用法,了解和掌握并且能简单的应用移位指令,了解和掌握并且能简单应用循环控制类指令,掌握循环程序设计的方法。学习汇编语言输出输入语句的应用,能够简单的运用相关的编译软件,能够初步认识到计算机语言底层的操作。二、实验环境操作系统:windows7调试软件名称及版本号:MicrosoftVisualStudio2010三、实验的预习内
2、容预习的主要内容:预习了加减乘除指令,移位指令,循环指令的作用及方法,学习力函数的调用,在屏幕上打出指定字符和数字;实验思路:将寄存器赋值,然后对寄存器进行加减乘除,移位的运算,观察寄存器的数值变化,用逐语句观察循环语句中程序执行的顺序,了解循环的作用四、实验的步骤与调试方法1、实验的大致步骤:通过在.code中填入实验所给的数据,通过逐语句调试来观察各个寄存器的数值变化;在.code中对程序进行加减乘除,移位操作,观察寄存器的变化实验中遇到的问题及调试方法:在做9*9乘法表时,由于是32位的操作系统,无法用中断INT来进行回车换行,最后通过给eax赋值0a
3、h,直接打出回车2、在实验中遇到的问题及调试方法开始的时候没有采用逐语句调试的方法,由于没有输出,看不到结果,最后采用逐语句的调试方法,看到寄存器的变化在调试时报错,后来发现在目的操作数和源操作数之间忘加逗号了导致程序无法运行五.实验数据与实验结果实验一:(1)(I)采用立即数寻址方式将19E0H,3F56H,0AF37H,9A81H分别送给EAX、EBX、ECX、EDX四个寄存器。操作前:EAX=76A51102EBX=7FFD9000ECX=00000000EDX=01291005操作后:EAX=000019E0EBX=00003F56ECX=0000A
4、F37EDX=00009A81操作过程中所用到的指令::moveax,19E0H movebx,3F56H movecx,0AF37H movedx,9A81H(Ⅱ)采用采用寄存器寻址方式将19E0H送给EBX、ECX、EDX三个寄存器。操作前:EAX=76A51102EBX=7FFD3000ECX=00000000EDX=00F31005操作后:EAX=000019E0EBX=000019E0ECX=000019E0EDX=000019E0操作过程中所用到的指令:moveax,19E0H
5、 movebx,eax movecx,eax movedx,eax对EAX、EBX、ECX、EDX四个寄存器进行出入堆栈的操作。(2)(Ⅰ)将EAX、EBX、ECX、EDX四个寄存器的内容依次压入堆栈中,注意观察栈指针寄存器和堆栈内容的变化 记录:压入EAX前ESP=0020FCE4压入EAX后ESP=0020FCE0压入EBX前ESP=002AFD94压入EBX后ESP=002AFD90压入ECX前ESP=001EF818压入ECX后ESP=001EF814压入EDX前ESP=0035FD24压入EDX后ESP=
6、0035FD20操作过程中所用到的指令:pusheax pushebx pushecx pushedx(Ⅱ)将堆栈中的内容依次弹出到EAX、EBX、ECX、EDX四个寄存器,注意观察栈指针寄存器和堆栈内容的变化记录:弹出到EAX前ESP=002BF878弹出到EAX后ESP=002BF87C弹出到EBX前ESP=0021FB2C弹出到EBX后ESP=0021FB30弹出到ECX前ESP=0024FE88弹出到ECX后ESP=0024FE8C弹出到EDX前ESP=0022FDC8弹出到EDX后ESP=002
7、2FDCC操作过程中所用到的指令:popeax popebx popecx popedx(3)已知EAX=3F56H,ECX=4690H,利用交换指令交换这两个寄存器的内容。记录:操作前:EAX=00003F56 ECX=00004690操作后:EAX=00004690 ECX=00003F56操作过程中所用到的指令:moveax,3F56H movecx,4690H xchgeax,ecx实验二:在DEBUG系统状态下,分别编制、调试并记录以下逻辑指令
8、程序段的每一条指令的运行情况:(Ⅰ)moval,41
此文档下载收益归作者所有