资源描述:
《东北大学汇编实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、课程编号:B080103020《汇编语言程序设计》实验报告姓名学号班级指导教师实验名称数据传送、分支与循环结构程序设计实验开设学期2014-2015第一学期开设时间第1周——第10周报告日期2014年11月6日评定成绩评定人评定日期东北大学软件学院实验1数据传送指令1、实验目的:了解和掌握MOV、PUSH、POP、XCHG四条指令的作用和在编程中的用法。2、实验要求:(Ⅰ)采用立即数寻址方式将19E0H,3F56H,0AF37H,9A81H分别送给EAX、EBX、ECX、EDX四个寄存器。记录:操作前EAX=75C59191、EBX=7FFDE000、ECX=000
2、00000、EDX=00401000操作后EAX=000019E0、EBX=00003F56、ECX=0000AF37、EDX=00009A81操作过程中所用到的指令:INCLUDEIrvine32.inc.codemainPROCcallDumpRegsmoveax,19E0Hmovebx,3F56Hmovecx,0AF37Hmovedx,9A81HcallDumpRegsexitmainendpENDmain(Ⅱ)采用采用寄存器寻址方式将19E0H送给EBX、ECX、EDX三个寄存器。记录:操作前EAX=75C59191、EBX=7FFDE000、ECX=000
3、00000、EDX=00401000操作后EAX=000019E0、EBX=000019E0、ECX=000019E0、EDX=000019E0操作过程中所用到的指令:INCLUDEIrvine32.inc.codemainPROCcallDumpRegsmoveax,19E0Hmovebx,eaxmovecx,ebxmovedx,ecxcallDumpRegsexitmainendpENDmain(2)对EAX、EBX、ECX、EDX四个寄存器进行出入堆栈的操作。(Ⅰ)将EAX、EBX、ECX、EDX四个寄存器的内容依次压入堆栈中,注意观察栈指针寄存器和堆栈内容的
4、变化。记录:压入EAX前ESP=0018FF90,(ESP)=75C5919F压入EAX后ESP=0018FF8C,(ESP)=00000000压入EBX前ESP=0018FF8C,(ESP)=00000000压入EBX后ESP=0018FF88,(ESP)=00000000压入ECX前ESP=0018FF88,(ESP)=00000000压入ECX后ESP=0018FF84,(ESP)=00000000压入EDX前ESP=0018FF84,(ESP)=00000000压入EDX后ESP=0018FF80,(ESP)=FFFFC000操作过程中所用到的指令:INCL
5、UDEIrvine32.inc.codemainPROCcallDumpRegsmoveax,[esp]callDumpRegspusheaxcallDumpRegspushebxcallDumpRegspushecxcallDumpRegspushedxcallDumpRegsexitmainendpENDmain(Ⅱ)将堆栈中的内容依次弹出到EAX、EBX、ECX、EDX四个寄存器,注意观察栈指针寄存器和堆栈内容的变化。记录:弹出到EAX前ESP=0018FF90,(ESP)=00000000弹出到EAX后ESP=0018FF94,(ESP)=00000000弹
6、出到EBX前ESP=0018FF94,(ESP)=00000000弹出到EBX后ESP=0018FF98,(ESP)=00000000弹出到ECX前ESP=0018FF98,(ESP)=00000000弹出到ECX后ESP=0018FF9C,(ESP)=E18A40B7弹出到EDX前ESP=0018FF9C,(ESP)=E18A40B7弹出到EDX后ESP=0018FFA0,(ESP)=FFFFF801操作过程中所用到的指令:includeIrvine32.inc.codemainprocmovesi,[esp]callDumpRegspusheaxmovesi,[
7、esp]callDumpRegspushebxmovesi,[esp]callDumpRegspushecxmovesi,[esp]callDumpRegspushedxpopedxmovesi,[esp]callDumpRegspopecxmovesi,[esp]callDumpRegspopebxmovesi,[esp]callDumpRegspopeaxmovesi,[esp]callDumpRegsexitmainendpendmain(3)已知EAX=3F56H,ECX=4690H,利用交换指令交换这两个寄存器的内容。记录:交换前EAX=00003F5