共5页
院系:计算机科学学院专业:计算机科学与技术年级:级课程名称:汇编语言学号:100XXXX1103姓名:张XX指导教师:雷XX年级级班号计科四班学号100XXXX1103专业计科姓名张XX实验名称计算总评成绩实验类型设计型综合型创新型实验目的或要求实验一:实验要求:从键盘中输入一同学的期中成绩,实验成绩,期末成绩和他们在总评成绩中分别占的百分比,计算得到改同学的总评成绩,并显示出来.实验原理(算法流程);E_ampleassemblylanguageprogram-addstwonumbers;Author:zhang;Date:revised润发7.
XXX,dwE_itCode:DWORDINCLUDEio.h;headerfileforinpuutputcrEQU0dh;carriagereturncharacterLfEQU0ah;XXX;reserve4096-bytesXXX;reservestoragefordatagrade1DWORD?grade2DWORD?grade3DWORD?sum1DWORD?prompt1BYTEEnterfirstgrade:,0prompt2BYTEEnterthepercentoffirstgrade:,0prompt3BYTEEntersecondgrade:,0prompt4BYTEEnterthepercentofsecondgrade:,0prompt5BYTEEnterthirdgrade:,0prompt6BYTEEnterthepercentofthirdgrade:,0stringBYTE40DUP(?)label1BYTEcr,Lf,ThesumissumBYTE11DUP(?)BYTEcr,Lf,0实验原理(算法流程).CODE;startofmainprogramcode_tart:outputprompt1;promptforfirstscoreinputstring,40;readASCIIcharactersatodstring;converttointegermovgrade
1,ea_;storeinmemoryoutputprompt2;promptforfirstpercentinputstring,40;readASCIIcharactersatodstring;mulgrade1;grade1_ea_movsum
1,ea_;moveea_tosum1outputprompt3;inputstring,40;atodstring;movgrade2,ea_;outputprompt4;inputstring,40;atodstring;mulgrade2;grade2_ea_addsum
1,ea_;addea_tosum1outputprompt5;inputstring,40;atodstring;movgrade3,ea_;outputprompt6;inputstring,40;atodstring;mulgrade3;grade3_ea_addsum
1,ea_;addea_tosum1movea_,sum1;movesum1toea_movsum
1,100;move100tosum1divsum1;ea00dtoasum,ea_;outputlabel1;outputsumINVOKEE_itProcess,0;e_itwithreturncode0PUBLIC_tart;makeentrypointpublicEND;endofsourcecode实验结果分析及心得体会实验结果:成绩评定年级级班号计科4班学号100XXXX1103专业计科姓名张名扬实验名称大小写字母字符互换实验类型设计型综合型创新型实验目的或要求实验二:实验要求:从键盘输入一个字符,如果该字符是回车符,直接退出程序,如果是小写字母,则转换为大写字母并显示;如果是大写字母,则转换为小写字母并显示;如果是非字母字符,则显示提示信息,并等待用户重新输入字符。实验原理(算法流程);-字母字符转换-DATASSEGMENT;此处输入数据段代码prompt1db0dh,0ah,pleaseInputacharacter:,$prompt2db0dh,0ah,youInputnotacharacter,pleaseInputacharacter,$prompt3db0dh,0ah,uppercaseletterConverttolowercaseletter:,$prompt4db0dh,0ah,lowercaseletterConverttouppercaseletter:,$DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENT;此处输入代码段代码ASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVA_,DATASMOVDS,A__nput:lead_,prompt1MOVAH,09HINT21HMOVAH,01HINT21HMOVBL,ALcmpBL,0dhje_nd_owcase:cmpBL,a实验原理(算法流程)jl_ppercasecmpBL,zjg_ppercaseSUBBL,20Hlead_,prompt4MOVAH,09HINT21HMOVDL,BLMOVAH,02hINT21Hjmp_nput_ppercase:cmpBL,Ajl_arncmpBL,Zjg_arnaddBL,20hlead_,prompt3MOVAH,09HINT21HMOVDL,BLMOVAH,02hINT21Hjmp_nput_arn:lead_,prompt2MOVAH,09HINT21Hjmp_nput_nd:MOVAH,4CHINT21HCODESENDSENDSTART实验结果分析及心得体会成绩评定年级级班号计科4班学号100XXXX1103专业计科姓名张名扬实验名称显示九九乘法表实验类型设计型综合型创新型实验目的或要求实验三:实验要求:以九行九列的形式显示九九成法表显示下三角格式也可以显示上三角格式实验原理(算法流程);E_ampleassemblylanguageprogram-addstwonumbers;Author:zhang;Date:revised润发7.
XXX,dwE_itCode:DWORDINCLUDEio.h;headerfileforinpuutputcrEQU0dh;carriagereturncharacterlfEQU0ah;XXX;XXX;
(17)reservestoragefordatapromptBYTE-九九乘法表-,cr,lf,0rowWORD1DUP(?)colWORD1DUP(?)jizhiWORD1DUP(?)numBYTE6dup(?),0;num作为输出的ne_trowBYTEcr,lf,0mullabelBYTE_,0equlabelBYTE=,XXX;
(26)startofmainprogramcode_tart:outputprompt;movrow,1;outloop:mova_,row;
(30)此处要用a_寄存器movcol,1;实验原理(算法流程)inloop:mulcol;col_almovjizhi,a_;(33)此处要用a_寄存器mova_,row;itoanum,a_;outputnum;outputmullabel;mova_,col;先把col的值放到a_寄存器中去itoanum,a_;再把a_中的值转换为ascII值并放到num中outputnum;这里输出COL的字符形式outputequlabel;mova_,jizhiitoanum,jizhi;outputnum;inccol;mova_,row;不能直接cmpcol,row;因为二者都在存储器中cmpcol,a_;jleinloop;outputne_trow;incrow;cmprow,9;jleoutloop;原代码中这里和上在的跳转有错inputnum,12;jmpendpro;endpro:INVOKEE_itProcess,0;e_itwithreturncode0PUBLIC_tart;makeentrypointpublicEND;endofsourcecode实验原理(算法流程)实验结果:成绩评定年级级班号计科4班学号100XXXX1103专业计科姓名张名扬实验名称求给定整数的所有素因子实验类型设计型综合型创新型实验目的或要求实验四:实验要求:输入一个整数,求出所有的素因子,并表现为乘积方式,求因子的算法用子程序来实现。实验目的:掌握子程序的原理和方法,重点掌握子程序的编写和调用的过程以及堆栈操作和参数以及全局变量的概念。实验原理(算法流程);programtogetalltheprimenumbersofainteger;Author:XXX,dwE_itCode:DWORDINCLUDEio.h;headerfileforinpuutputcrEQU0dh;carriagereturncharacterLfEQU0ah;linefeedMA_EQU100;XXX;XXX;reservestoragefordatanumberDWORD?inde_DWORD?jDWORD?flag1BYTE?flag2BYTE?prompt0BYTEPleaseinputaninteger:,0prompt1BYTEcr,lf,cr,lf,Theresultis:,0countWORD?valueBYTE11DUP(?)BYTE0signBYTE?XXX;startofmainprogramcodePROCAPROCNEAR32;判断素数movflag
1,0;把0保存到flag1movinde_,1;把1保存到inde_实验原理(算法流程)FORA:incinde_;dec自加movea_,inde_;将inde_保存到ea_中去cmpea_,ec_;让ea_与ec_比较jnlENDA;如果大于,跳转到ENDAmovea_,ec_moveb_,inde_Cdq;扩展被除数diveb_cmped_,0jneFORA;如果不相等,跳转到FORAjmpENDAA;跳转到ENDAAENDA:movflag
1,1ENDAA:retPROCAENDP;子程序结束PROCBPROCNEAR32movflag2,0MORE:cmpnumber,1jeENDBAmovea_,numbercdqdivinde_cmped_,0jneENDBBmovnumber,ea_inccountcmpcount,1jePRINTNmovsign,_outputsignPRINTN:dtoavalue,inde_callPROCCjmpMOREENDBA:movflag2,1ENDBB:retPROCBENDP实验原理(算法流程)PROCCPROCNEAR32leaeb_,valueWHILEA:moval,byteptreb_inceb_cmpal,0jeENDCcmpal,20hjeWHILEAmovsign,aloutputsignjmpWHILEAENDC:retPROCCENDP_tart:outputprompt0;主函数开始inputvalue,11outputprompt1movsign,=outputvalueoutputsignatodvaluemovnumber,ea_movcount,0movj,1NF1:incjmovec_,jcallPROCAcmpflag
1,1jneNF1callPROCBcmpflag2,1jneNF1ENDFILE:INVOKEE_itProcess,0;e_itwithreturncode0PUBLIC_tart;makeentrypointpublicEND(写不完时,可另加附页。)实验结果分析及心得体会成绩评定教师签名:日期年级级班号计科4班学号100XXXX1103专业计科姓名张名扬实验名称字符串中指定字符的替换实验类型设计型综合型创新型实验目的或要求实验五:实验要求:输入一个字符实现替换功能将字符串中所有的A替换成a并输出新产生的字符串实验原理(算法流程)算法如下:;Thisprogramistogettheletterbeforeandaftertheoneyouputin;Author:_iangshiyuan.
XXX,dwE_itCode:DWORDINCLUDEio.h;headerfileforinpuutputcrEQU0dh;carriagereturncharacterLfEQU0ah;XXX;XXX;reservestoragefordataprompt1BYTEThisprogramewille_changeAtoaBYTEPleaseinputstring:,0prompt2BYTETheresultis:stringBYTE50DUP(?).CODE;startofmainprogramcode_tart:outputprompt1;prompt1是A替换a并输出所在的串inputstring,50;readASCIIcharactersleaeb_,string;findlengthofstring)实验原理(算法流程)a:cmpbyteptreb_,0dh;串中每个字符与回车字符比较jeend1;等于则输出结果cmpbyteptreb_,41h;串中每个字符与A字符的比较jechange;相等则转换b:inceb_;继续比较下一个字符jmpachange:movbyteptreb_,61h;转换为ajmpbend1:outputprompt2;输出结果INVOKEE_itProcess,0;e_itwithreturncode0PUBLIC_tart;makeentrypointpublicEND;endofsourcecode实验结果分析及心得体会实验结果:成绩评定年级级班号计科4班学号100XXXX1103专业计科姓名张名扬实验名称使用位操作指令实现双字类型数的高低字转换实验类型设计型综合型创新型实验目的或要求实验六:实验目的:掌握位指令的使用。实验要求:EA_寄存器中的数,设法将其高字和低字实现互换实验原理(算法流程);Author:zhang;Date:revised1润发XXX,dwE_itCode:XXX.STACK4____tApromptBYTEInputanumber:,0numberBYTE20dup(?)resultBYTEcr,Lf,The2scomplementrepresentationis:he_outBYTE8DUP(?),cr,Lf,0prompt2BYTEAftertheshift,cr,lf,XXX;He_sub:outputofa16-digithe_adecimalnumberpushea_leaeb_,he_out 7movec_,8movesi,ea_forcount:moved_,ea_anded_,XXXfh;28figuresontheleftsideofClear,andtheremainingunchangedcmped_,9jnleelseLetterored_,30h;ConvertedtoASCIIcodejmpendifDigitelseLetter:added_,A-10;Convertedtoletters实验原理(算法流程)endifDigit:movBYTEPTReb_,dldeceb_shrea_,4;右移位loopforcountoutputresultpopea_retHe_ENDP_tart:outputpromptinputnumber,16;输入一个数字atodnumbercallHe_;调用子程序He_rolea_,16;循环左移位outputprompt2;输出转换后的十六进制数callHe_INVOKEE_itProcess,0PUBLIC_tartEND实验结果分析及心得体会成绩评定教师签名:日期
举报
