资源描述:
《组成实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、上海理工大学光电信息与计算机工程学院《计算机组成》实验报告专 业计算机科学与技术姓名 陈晓阳学 号1512480225年 级2015级指导教师邬春学成绩:教师签字:目录实验一汇编实验一4实验二汇编实验二7实验三汇编实验三12实验一汇编实验一一、实验目的1)掌握汇编的基本语法二、实验环境MicrosoftWindows7MasmV2.2三、实验内容编程计算表达式x=axb+c-d/(e+f)其中x、a、b、c、d、e、f均为双字节整数。地址分别为X、A1、B1、C1、D1、E1、F1四、实验代码及截图1)datasegment;inputdatasegment
2、codehereA1DB2B1DB1C1DB3D1DB4E1DB1F1DB4X1DB?dataendsstacksegment;inputstacksegmentcodeherestackendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovds,ax;inputcodesegmentcodeheremovAL,A1MULBLADDAL,C1SUBAL,D1MOVBL,E1ADDBL,F1DIVBLMOVX1,ALmovah,4chint21hcodeendsendstart1)实验二汇编实
3、验二一、实验目的学习间接寻址、数组和转移指令的用法二、实验环境MicrosoftWindows7MasmV2.2三、实验内容1)一个由3个元素组成的整数数组,已经存放在主存的连续存储单元中,数组的起始地址为AS。设AS{10h,20h,30h}。编程实现:将数组AS中的元素向右循环移动一个位置,例如移位后变成{30h,10h,20h}。编程实现:将AS中最大元素和最小元素分别存于Max和Min中。2)将字符串source中的内容复制到target中,并显示输出。四、实验代码及截图1)datasegmentASDW10H,20H,30H;inputdatasegme
4、ntcodehereMAXDW0MINDW0;数据初始dataendsstacksegment;inputstacksegmentcodeherestackendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovds,ax;将data给dsmovcx,0;cx赋初始值0movsi,offsetas;将data偏移地址存到simovax,[si];data内容给axaddsi,2;si加2Li:movbx,[si]mov[si],axmovax,bxaddsi,2addcx,1cmpcx,2JN
5、ZLisubsi,6mov[si],ax;将30移位到第一位movax,[si]movMIN,axmovMAX,ax;初始化MIN,MAXaddsi,2movbx,[si]cmpbx,axJLL1;bx=ax,把bx值存入MAXaddsi,2;si后移一个数据movdx,[si]cmpbx,dxJGL4movMAX,dx;如果bx>dx则执行L4,否则将dx存入MAXL1:addsi,2movbx,[si]cmpbx,axJLL2;bx6、X,bxL4:cmpax,dxJGL5L5:movMIN,dx;将dx存入MINL2:movbx,[si]subsi,2movax,[si]cmpbx,axJGL3;bx大于ax则跳转L3,否则将bx存入MINmovMIN,bxL3:movMIN,ax;此时ax为10,将其存入MINmovah,4chint21hcodeendsendstart2)datasegmentsourcedb'Helloworld$'dataendsdata1segmenttargetdb30dup(?)data1endsstacksegment;inputstacksegmentcod
7、eherestackendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovds,ax;data存入dsmovax,data1moves,ax;data1存入esleasi,source;source地址存到sileadi,target;target地址存到dimovcx,2std;DF=1repmovsb;将si中字符串复制到di中leadx,targetmovah,9int21h;输出复制得到的字符串movah,4chint21hcodeendsendstart1)2)实验三汇编实验三一、
8、实验目的1