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