东北大学汇编实验_第1页
东北大学汇编实验_第2页
东北大学汇编实验_第3页
免费预览已结束,剩余14页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程编号:BO汇编语言程序设计实验报告姓名学号班级指导教师实验名称数据传送、分支与循环结构程序设计实验开设学期2014-2015第一学期开设时间第1周第10周报告日期2014年11月6日评定成绩评定人评定日期东北大学软件学院实验1数据传送指令1、实验目的:了解和掌握MOVPUSHPOPXCH四条指令的作用和在编程中的用法。2、实验要求:(I) 采用立即数寻址方式将19E0H3F56H,0AF37H,9A81H分别送给EAXEBXECXEDX9个寄存器。记录:操作前EAX=75C59191、EBX=7FFDE000、ECX=0OOOOOOO、EDX=00401000操作后EAX=000019E0

2、、EBX=00003F56、ECX=OOOOAF37、EDX=OOOO9A81操作过程中所用到的指令:INCLUDE.codemainPROCcallDumpRegsmoveax,19EOHmovebx,3F56Hmovecx,OAF37Hmovedx,9A81HcallDumpRegsexit(H)采用采用寄存器寻址方式将19E0H送给EBXECXED)三个寄存器。记录:操作前EAX=75C59191、EBX=7FFDE000、ECX=0OOOOOOO、EDX=00401000操作后操作后EAX=000019E0、EBX=000019E0、ECX=000019E0、EDX=000019E0操

3、作过程中所用到的指令:INCLUDE.codemainPROCcallDumpRegsmoveax,19E0Hmovebx,eaxmovecx,ebxmovedx,ecxcallDumpRegsexitmainendpENDmain(2) 对EAXEBXECXEDX5个寄存器进行出入堆栈的操作。(I)将EAXEBXECXEDX5个寄存器的内容依次压入堆栈中,注意观察栈指针寄存器和堆栈内容的变化。记录:压入EAX前ESP=0018FF90,(ESP=75C5919F压入EAX后ESP=0018FF8C(ESP=00000000(ESP=00000000(ESP=00000000压入EBX前ESP

4、=0018FF8C压入EBX后ESP=0018FF88,=00000000=00000000=00000000=FFFFC000压入EC前ESP=0018FF88,(ESP压入ECX后ESP=0018FF84,(ESP压入EDX前ESP=0018FF84,(ESP压入EDX后ESP=0018FF80,(ESP操作过程中所用到的指令:INCLUDE.codemainPROCcallDumpRegsmoveax,espcallDumpRegspusheaxcallDumpRegspushebxcallDumpRegspushecxcallDumpRegspushedxcallDumpRegsexi

5、t器和堆栈内容的变化。记录:弹出到EAX前ESP=0018FF90,(ESP=00000000弹出到EAX后ESP=0018FF94,(ESP=00000000弹出到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=0018FFAQ(ESP=FFFFF801操作过程中所用到的指令:include.codem

6、ainprocmovesi,espcallDumpRegspusheaxmovesi,espcallDumpRegspushebxmovesi,espcallDumpRegspushecxmovesi,espcallDumpRegspushedxpopedxmovesi,espcallDumpRegspopecxmovesi,espcallDumpRegspopebxmovesi,espcallDumpRegspopeaxmovesi,espcallDumpRegsexitmainendpendmain(3) 已知EAX=3F56HECX=4690H,利用交换指令交换这两个寄存器的内容。记录:

7、交换前EAX=00003F56ECX=00004690交换后EAX=00004690ECX=00003F56操作过程中所用到的指令:Include.codemainPROCmoveax,3F56Hmovecx,4690HcallDumpRegsxchgeax,ecxcallDumpRegsexitmainENDPENDmain实验二逻辑指令、跳转指令与分支程序设计1、实验目的:了解和掌握逻辑指令、比较指令、无条件有条件转移类指令的功能和作用,以及此类指令的使用方法。2、实验要求:具体了解和掌握逻辑指令、比较指令、无条件有条件转移类指令的使用和在使用时应注意的问题,学习分支型程序设计的一般方法。

8、(1)在DEBU系统状态下,分别编制、调试并记录以下逻辑指令程序段的每一条指令的运行情况:oral,20Ial=3DHmoval,66al=42Handal,Odfal=00H(出)movEAX,5678EAX=0000162EHxorEAX,EAXEAX=00000000H(W)movEAX,0ff00EAX=0000FF00HnotEAXnotEAXEAX=FFFF00FFH(V)test指令的作用是将原操作数与目的操作数相与,但结果不送会目的操作数,只改变标movEAX,1234IEAX=000004D2HtestEAX,1IEAX=000004D2HSF=0ZF=1OF=0testEA

9、X,2IEAX=000004D2HSF=0ZF=0OF=0testEAX,4IEAX=000004D2HSF=0ZF=1OF=0testEAX,8IEAX=000004D2HSF=0ZF=1OF=0testEAX,10IEAX=000004D2HSF=0ZF=0OF=0testEAX,20IEAX=000004D2HSF=0ZF=0OF=0testEAX,40IEAX=000004D2HSF=0ZF=1OF=0testEAX,80IEAX=000004D2HSF=0ZF=0OF=0志位,并不修改操作数。(2)已知DATA单元开始存放三个带符号数,编制程序,检查三个数据是否同号,若同时为正,则在

10、显示器上显示“+”;同时为负,则显示“-”;否则显示空格“”。要求:分别用三组数据(同时为正,同时为负,异号)调试程序,验证程序的正确性。include.datainterraysdword23h,23h,-23h.codemainprocmovedi,OFFSETinterraymoveax,ediandeax,hpusheaxmoveax,edi+4andeax,hpusheaxmoveax,edi+8andeax,hpusheaxpopeaxpopebxpopecxjnzL1cmpeax,ebxjneL2cmpeax,ecxjneL2moval,'+'callWriteC

11、harexitL1:cmpeax,ebxjneL2cmpeax,ecxjneL2moval,'-'callWriteCharexitL2:moval,''callWriteCharexitmainendpendmain实验三算术运算类指令、移位指令及循环程序设计1、实验目的:了解和掌握加、减、乘、除指令的在程序设计中的用法和应注意的问题,了解和掌握移位指令的功能、作用和方法。了解和掌握循环控制类指令的功能、作用和方法。学会循环程序设计的方法。学习汇编语言输出输入语句的设计。2、实验要求:具体了解和掌握算术类指令、移位指令和循环控制类指令的使用,以及在使用时应注意

12、的问题,学习循环程序设计的一般方法。(1)在DEBU系统状态下,分别编制、调试并记录以下加、减程序段的每一条指令的运行情况,查看寄存器的结果:(I)MOVEAX,2389|EAX=00000955HMOVEBX,0CEDFHADDEAX,EBX(n)MOVEAX,2389MOVEBX,0CEDFHSUBEAX,EBX(川)MOVEAX,2389MOVEBX,0CEDFHADDAH,BHADDAL,BL(w)MOVEAX,2389MOVEBX,0CEDFHADDAH,BHADCAL,BLIEBX=OOOOCEDFHIEAX=0000D834HEBX=OOOOCEDFHIEAX=00000955H

13、IEBX=0000CEDFHIEAX=FFFF3A76HEBX=0000CEDFHIEAX=00000955HIEBX=0000CEDFHAH=D7BH=CEAL=34BL=DFIEAX=00000955HIEBX=0000CEDFHAH=D7BH=CEAL=34BL=DFEFL=00000213(2)在DEBU系统状态下,分别编制、调试并记录以下乘、除程序段的每一条指令的运行情况:(I)MOVAL,23MOVBL,0CEHMULBL(n)MOVAX,2389MOVBX,0CEDFHAL=17HBL=CEHAX=1282HOV=1AX=0955HBX=CEDFHMULBXDX=078AHAX=

14、870BHCF=1MOVAX,2389MOVBL,0CEHDIVBL(W)MOVAX,2389MOVDX,0856MOVBX,0CEDFHDIVBXAX=0955HBL=0CEHAH=7BHAL=0BHAX=0955HDX=0358HBX=CEDFHAX=0423HDX=44D8H(3)在DEBU系统状态下,分别编制、调试并记录以下移位指令程序段的每条指令的运行情况:(I)movEAX,420shlEAX,1(n)movEAX,240|movcl,4|shlEAX,cl|(川)movEAX,8000|movcl,4|shrEAX,cl|(W)movEAX,8000|movcl,4|EAX=00

15、0001A4HCF=0EAX=00000348HEAX=000000F0HCL=04HCF=0EAX=00000F00HEAX=00001F04HCL=04HCF=0EAX=000001F4HEAX=00001F04HCL=04HCF=0EAX=000001F4HsarEAX,cl|movEAX,8086EAX=00001F96HCL=O4Hmovcl,4rolEAX,clCF=0EAX=00001F96HmovEAX,8086EAX=00001F96HCL=04Hmovcl,4rorEAX,clCF=0EAX=60001F9HO)movEAX,8086EAX=00001F96Hmovcl,4

16、CL=04HrclEAX,clCF=0EAX=0001F960H(W)movEAX,8086EAX=00001F96HCL=04Hmovcl,4rcrEAX,clCF=0EAX=C00001F9Hrol与rcl、ror与rcr的区别在于rol和ror是将寄存器中的内容直接进行移位,而rcl和rcr是将寄存器中的内容与CF中的内容一起进行移位,因此参加移位的数据比原来的数多一据位数CNT单元存放。编制程序,CNT单元存放。编制程序,(5)已知DATA单元开始存放一组无符号的字节数据,数据长度在检查该组数据中是否存在数据100,若存在,则在显示器上显示“Y”,否则显示“N'。include

17、.dataayword1,4,8,100cntword4.codemainprocmovcx,cntL1:movax,0pushaxmovbx,ay+axcmpbx,0064hjeL2moval,'N'callWriteCharjmpquitL2:moval,'Y'callWriteCharjmpquitquit:popaxaddax,4LOOPL1exitmainendpendmain(6)编制在屏幕上显示九九表的程序。include.codemainprocmovedx,0L1:callCrlfmovebx,1incedxL3:pushedxmoveax,e

18、dxmulebxmovesi,eaxpopedxmoveax,ebxcallWriteDecpushedxmoval,'*'callWriteCharpopedxmoveax,edxcallWriteDecpushedxmoval,'='callWriteCharpopedxmoveax,esicallWriteDecpushedxmoval,''callWriteCharpopedxcmpebx,9jzL2cmpebx,edxjzL1incebxjmpL3L2:callCrlfexitmainendpendmain1*1=1234s-6222222345=M一IT*2*3«4眄*£11il-L234s-6222222345=M一IT*2*3«4眄*£11il-L1*7=71*S=BITT2*7=142*8=162*?=183*3=93«4-124«4=16I3-5=153*6=1H3#7=213*9=243"?=2?4*5=205*5=254

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论