汇编程序baogaoWord文件下载.docx

上传人:b****6 文档编号:21314920 上传时间:2023-01-29 格式:DOCX 页数:26 大小:118.48KB
下载 相关 举报
汇编程序baogaoWord文件下载.docx_第1页
第1页 / 共26页
汇编程序baogaoWord文件下载.docx_第2页
第2页 / 共26页
汇编程序baogaoWord文件下载.docx_第3页
第3页 / 共26页
汇编程序baogaoWord文件下载.docx_第4页
第4页 / 共26页
汇编程序baogaoWord文件下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

汇编程序baogaoWord文件下载.docx

《汇编程序baogaoWord文件下载.docx》由会员分享,可在线阅读,更多相关《汇编程序baogaoWord文件下载.docx(26页珍藏版)》请在冰豆网上搜索。

汇编程序baogaoWord文件下载.docx

R.Detmer;

date:

revised9/97.386.MODELFLATExitProcessPROTONEAR32stdcall,dwExitCode:

DWORDINCLUDEio.hcrEQU0dh;

carriagereturncharacterLfEQU0ah;

linefeedcharacter.STACK4096;

reserve4096-bytestack.DATA;

reservestoragefordataPrompt1BYTECR,LF,ThisprogramwillconvertaFahrenheitBYTEtemperaturetotheCelsiusscale,cr,Lf,LfBYTEEnterFahrenheittemperature:

0ValueBYTE6DUP(?

)AnswerBYTECR,LF,ThetemperatureisTemperatureBYTE6DUP(?

)BYTECelsius,cr,Lf,0.CODE;

startofmainprogramcode_start:

Prompt:

outputPrompt1;

promptforFahrenheittemperatureinputValue,6;

readASCIIcharactersatoiValue;

converttointegersubax,32movbx,5imulbxaddax,4movbl,9idivblmovah,0itoaTemperature,ax;

converttoASCIIcharactersoutputAnswer;

outputlabelandresultPUBLIC_start;

makeentrypointpublicEND(写不完时,可另加附页。

)实验结果分析及心得体会心得体会:

通过写这个程序,我对汇编语言这门学科有了一个大致的了解:

1.确立了一个整体思想:

掌握了汇编语言程序设计的基本步骤,分析问题,确立算法,然后根据算法流程选择合适的指令来编制汇编源程序。

2.熟练掌握了一些简单的基本指令的操作,如加减乘除法的指令。

3.对程序的汇编,链接和运行也有了一个清晰地认识。

4.对其中的目的操作数和源操作数也初步有了一定的了解。

成绩教师签名:

评定年月日年级2010级班号一大班(3)小班学号10061065专业计算机科学与技术姓名徐丽实验名称分支程序设计实验类型设计型综合型创新型实验目的或要求1.题目:

计算立方值2.实验要求:

从键盘输入0到9中的任一个自然数x,求其立方值。

若输入的字符不是0至9之间的数字,则显示错误信息,并要求重新输入。

要求有信息提示用户按照要求输入字符串,三类字符的个数分别在三行显示,并指明是哪类字符。

实验原理(算法流;

Exampleassemblylanguageprogram-power;

Author:

Date:

revised7/97.386.MODELFLATExitProcessPROTONEAR32stdcall,dwExitCode:

DWORDINCLUDEio.h;

headerfileforinput/outputcrEQU0dh;

carriagereturncharacter程)LfEQU0ah;

linefeed.STACK4096;

reserve4096-bytestack.DATAprompt1bytecr,lf,pleaseenteranumber:

0valuebyte10dup(?

)answerbytecr,lf,thepowerispowerDWORD6DUP(?

)BYTECR,LF,0prompt2byteerror,pleaseinputanumberagain:

0.CODE_start:

prompt:

do:

outputprompt1inputvalue,10atoivaluecmpeax,0jlenddocmpeax,9jaenddomovebx,eaximulebx,eaximulebx,eaxdtoapower,ebxoutputanswerjmpexitenddo:

outputprompt2jmpdoexit:

INVOKEExitprocess,0PUBLIC_startEND(写不完时,可另加附页。

1.掌握了分支程序设计的原理和方法,掌握了各种分支程序中形成和判断条件而产生的程序段的设计方法和技巧。

2.对条件转移和无条件转移指令jmp的运用有了更深层次的了解。

3.熟练掌握了其中的比较指令,if结构以及循环结构的实现。

成绩评定教师签名:

年月日年级2010级班号一大班(3)小班学号10061065专业计算机科学姓名徐丽与技术实验名称循环程序设计实验类型设计型综合型创新型实验目的或要求1.题目:

显示九九乘法表2.实验要求:

以9行9列的形式显示九九乘法表,显示下三角格式。

(1)建立一个双重循环,外循环控制显示各行,内循环显示每行中的各列,其中外循环循环次数为9,内循环循环次数等于当前的行数。

(2)每次显示项可以由以下几部分组成:

当前行数值”*”当前列数值“=”当前行数值*当前列数值每行所有项显示完成后显示空行串(回车符和换行数)。

实验原理(算法流程).386.modelflatExitProcessprotonear32stdcall,dwexitcode:

dwordincludeio.hcrequ0dhLfequ0ahbsequ08h.dataprompt1byte这个程序用于输出9*9乘法表,Lf,Lf,0changeLinebyteLf,Lf,0num1byte4dup(?

)sign1bytecr,Lf,*byte0num2byte4dup(?

)sign2bytecr,Lf,=byte0resultbyte4dup(?

)bytecr,Lf,0tempword0.code_start:

movax,0;

被乘数movbx,0;

乘数movcx,0;

结果movdx,0;

循环计数movtemp,0;

计数备份whileFirst:

;

输入被乘数outputchangeLine;

换行incaxincdxmovtemp,dx;

用temp临时存放dx,因为执行mul时,dx会改变cmpax,9jgEndPro;

输出完毕,结束程序movbx,0whileSecond:

incbxcmpbx,dx;

判断该行是否输出完毕jgwhileFirstitoanum1,axitoanum2,bxmulbxitoaresult,axmovdx,temp;

还原dx(写不完时,可另加附页。

)实验结果分析及心得outputnum13;

输出算式outputnum25;

因为被乘数只有1位outputresult4jmpwhileSecondEndPro:

invokeExitProcess,0public_startend体会心得体会:

1.掌握循环程序设计的原理和方法,循环程序结构的形式和常用循环结构的控制方法和技巧。

2.熟练运用条件转移指令,比较指令以及if结构。

3.熟练运用基本的乘法指令,inc加一指令。

年月日年级2010级班号一大班(3)小班学号10061065专业计算机科学与技术姓名徐丽实验名称子程序设计实验类型设计型综合型创新型实1.题目:

找出100到200内所有的素数验目的或要求2.实验要求:

将100到200内所有的素数找出来并显示值,要求每行显示5个素数。

素数的判定方法前面已经给出,要求素数的判定算法用子程序来实现,子程序在判定数是否为素数后有不同的返回参数。

实验原理(算法流程).386.MODELFLATExitProcessPROTONEAR32stdcall,dwExitCode:

DWORDINCLUDEio.hcrEQU0dhLfEQU0ah.STACK4096.DATApthhBYTEcr,Lf,0stringBYTE13DUP(0)ptkgBYTE,0ptstartBYTE,0ptendBYTE,0;

pauseptBYTEcr,Lf,Lf,LfBYTE-BYTEcr,LfBYTEPressEntertoExit.BYTEcr,Lf,0.CODENUMBERXPROCNEAR32;

numberinbx;

numberoutbx(1YES,0NO);

cx=i;

NUMBERX_for_start:

pusheax;

saveeaxmoveax,0pushecx;

saveecxmovecx,0pushedx;

saveedxmovedx,0NUMBERX_for_init:

movcx,2NUMBERX_for_check:

cmpcx,bxjeNUMBERX_for_endNUMBERX_for_calc:

movdx,0movax,bxdivcxcmpdx,0je_return0jmpNUMBERX_for_add_return0:

movbx,0;

return0jmpNUMBERX_restoreNUMBERX_for_add:

inccxjmpNUMBERX_for_checkNUMBERX_for_end:

movbx,1;

return1;

NUMBERX_restore:

(写不完时,可另加附页。

)实验原理(算法流程)popedx;

restoreedxpopecx;

restoreecxpopeax;

restoreeaxretNUMBERXENDPDTOAXPROCNEAR32dtoaxfor_start:

dtoaxfor_init:

saveeaxpushebx;

saveebxpushecx;

saveecxpushedx;

saveedxmoveax,0;

al=ileaedx,stringdtoaxfor_check:

cmpeax,10jgdtoaxfor_endnodtoaxfor_calc:

movebx,edxaddebx,eaxcmpBYTEPTRebx,20hjnedtoaxfor_endokdtoaxfor_add:

inceaxjmpdtoaxfor_checkdtoaxfor_endok:

cmpeax,0jedtoaxfor_enddtoaxmov_start:

dtoaxmov_init:

movecx,0;

eaxecxdtoaxmov_check:

cmpeax,11jedtoaxmov_enddtoaxmov_calc:

movebx,edxaddebx,eaxpusheax;

saveteaxmoveax,edxaddeax,ecxpushecx;

savetecxpopeax;

restoreeaxdtoaxmov_add:

inceaxincecxjmpdtoaxmov_checkdtoaxmov_end:

movebx,edxaddebx,ecxmovBYTEPTRebx,0(写不完时,可另加附页。

)实验原理(算法流程)jmpdtoaxfor_enddtoaxfor_endno:

dtoaxfor_end:

popedxpopecxpopebxpopeaxretDTOAXENDP_start:

eax=i;

ecx=printf5n;

edx=countfor_start:

for_init:

moveax,100movecx,1movedx,0for_check:

cmpeax,200jgfor_endfor_calc:

movbx,axcallNUMBERXcmpbx,0je_jmpprintf_printfit:

incedxincecxdtoastring,edxoutputptstartoutputstring+9outputptenddtoastring,eaxcallDTOAXoutputstringoutputptkgcmpecx,5jle_jmpprintfhh_printfhh:

outputpthhmovecx,1_jmpprintfhh:

_jmpprintf:

for_add:

inceaxjmpfor_checkfor_end:

outputpauseptinputstring,10INVOKEExitProcess,0PUBLIC_startEND(写不完时,可另加附页。

1.掌握了子程序设计的原理和方法,对子程序的调用过程以及堆栈的操作和参数的局部概念得到了加强。

2.对过程体,调用和返回这块有了更清晰的认识,熟练掌握了汇编语言中的一个要点。

3.对寄存器,存储器,堆栈的知识点再次运用达到温习巩固的效用。

年月日年级2010级班号一大班(3)小班学号10061065专业计算机科学姓名徐丽与技术实验名称串操作指令的使用实验类型设计型综合型创新型实验目的或要求1.题目:

设有一字符串存放在以STRING为首址的数据区中,编一程序找出其中的”.”字符,并将其存放地址输出。

2.实验要求:

输入字符串,查找字符”.”所在的位置,并输出。

(1)如果字符串中不存在”.”字符则应该输出“notfound”。

(2)如果字符串中存在多个”.”字符,则应试着输出第一个”.”的位置,然后设法输出所有的”.”位置。

实验原理(算法流程).386.MODELFLATxitProcessPROTONEAR32stdcall,dwExitCode:

DWORDINCLUDEio.hcrEQU0dhLfEQU0ah.STACK4096.DATApromptBYTEcr,lf,pleaseenterastring:

0stringBYTE40DUP(?

)label1BYTEcr,lf,Thetitleis:

sumBYTE11DUP(?

).CODEstrlenPROCNEAR32pushebpmovebp,esppushfmoveax,0movebx,ebp+8whilechar:

cmpBYTEPTRebx,0jeendwhilecharinceaxincebxjmpwhilecharendwhilechar:

popfpopebpret4strlenENDP_start:

outputpromptinputstring,40leaeax,stringpusheaxcallstrlendtoasum,eaxoutputlabel1INVOKEExitProcess,0PUBLIC_startEND(写不完时,可另加附页。

1.掌握了串操作指令的用法。

2.对DF标识位以及源串,目的串的存储和改变有了更进一步的认识。

3.加强了对循环结构的实现内容的巩固。

4.学会了对栈的运用。

年月日年级2010级班号一大班(3)小班学号10061065专业计算机科学与技术姓名徐丽实验名称位运算指令的使用实验类型设计型综合型创新型实验目的或要求1题目:

使用位操作指令实现双字长的数*42.实验要求:

已知DX中存放着双字长数的高16位,AX中存放着双字长数的低16位,先要求将整个双字长数*4,即左移2位。

AX中的高2位将移入DX中并作为低2位,AX中的低2位补0.实验原理(;

Exampleassemblylanguageprogram-addstwonumbers;

revised7/97.386.MODELFLAT算法流程)ExitProcessPROTONEAR32stdcall,dwExitCode:

reservestoragefordatastringBYTE20DUP(?

)numberWORD?

inputstrBYTEcr,Lf,pleaseinputalow16number:

0inputstr1BYTEcr,Lf,pleaseinputahigh16number:

0promptBYTEcr,Lf,Thisisthepreviousnumber:

0prompt1BYTEcr,Lf,Thisisthecurrentnumber:

resultsBYTE11DUP(?

)BYTEcr,Lf,0.CODE_start:

outputinputstrinputstring,20atodstringmovnumber,axoutputinputstr1inputstring,20atoistringmovdx,axmovax,numbershlddx,ax,2shledx,16shlax,3addedx,eaxoutputprompt1dtoaresults,edxoutputresultsINVOKEExitProcess,0;

exitwithreturncode0PUBLIC_start;

makeentrypointpublicEND;

endofsourcecode(写不完时,可另加附页。

1.掌握了位指令的逻辑运算。

2.掌握了位指令的移位和循环移位指令操作。

3.对于汇编语言这门课程的学习,通过多次写程序,改程序,运行程序不断的操作实践,培养了一种良好的写程序的习惯,同时形成了一种良好的写代码的思想方式。

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1