资源描述:
《常见汇编程序源代码示例.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、包含14个常见的汇编程序源代码,所有代码在VC6.0中调试通过;汇编程序采用《微机原理接口与技术》(钱晓婕)一书中所用的框架。目录1.编写程序,计算下面函数的值并输出。22.输入一个年份(调用readuid子程序),判断是否是闰年.33.输入三个无符号整数(调用readuid子程序),判断并输出这三个数是否能构成一个三角形的三条边。若这三个数能构成一个三角形的三条边,输出三角形的形状:斜三角形、等腰三角形、等边三角形。44.采用无条件和条件转移指令构造while和dowhile循环结构,完成下面的求和任务并输出s
2、um(sum为双字)。65.编写程序,求0到100间所有偶数和并输出。要求采用loop、while和dowhile三种不同的循环结构完成。76.Fibonaccinumbers的定义:8f1=1,f2=1,fn=fn-1+fn-2n>=38编程输出Fibonaccinumbers的前30项。87.有一个首地址为array的20个有符号的双字数组,编程分别求出正数的和与负数的和并输出。118.有一个首地址为string的字符串,剔除string中所有的空格字符。请从字符串最后一个字符开始逐个向前判断、并进行处理。1
3、39.有一个首地址为string的字符串,分别统计string中空格、英文字母、数字和其它字符的个数并输出。1410.palindrome(回文)是指正读和反读都一样的数或文本。例如:11、121、12321等,编写程序,求10到10000之间所有回文数并输出。要求每行输出10个数。1511.编写程序,求出所有满足勾股定理且边长不大于500的直角三角形。1712.编写一个求n!的子程序,利用它求1!+2!+3!+4!+5!+6!+7!+8!的和并输出。2313.编写一个判断闰年的子程序,利用它求出2010年到20
4、60年之间所有的闰年并输出。2514.编写一个求解双字型有符号数数组元素的平均值子程序,并验证它的正确性。27291.编写程序,计算下面函数的值并输出。includeio32.inc.codestart:callreadsidcmpeax,0jlsmallcmpeax,10jlemidjmplargesmall:imuleax,2jmpdonemid:imuleax,3jmpdonelarge:imuleax,4jmpdonedone:calldispsidexit0endstart2.输入一个年份(调用read
5、uid子程序),判断是否是闰年.includeio32.inc.datayes_msgbyte'isleap',13,10,0no_msgbyte'noleap',13,10,0.codestart:callreaduidmovedx,0movecx,4divecxcmpedx,0jefirstjmpsecond29first:movedx,0movecx,100divecxjneleapjmpsecondsecond:movedx,0movecx,400divecxjeleapjmpnoleapleap:mov
6、eax,offsetyes_msgcalldispmsgjmpdonenoleap:moveax,offsetno_msgcalldispmsgjmpdonedone:exit0endstart1.输入三个无符号整数(调用readuid子程序),判断并输出这三个数是否能构成一个三角形的三条边。若这三个数能构成一个三角形的三条边,输出三角形的形状:斜三角形、等腰三角形、等边三角形。includeio32.inc.datamsg_dengyaobyte'dengyao',13,10,0;等腰三角形msg_dengbi
7、anbyte'dengbian',13,10,0;等边三角形msg_zhijiaobyte'zhijiao',13,10,0;直角三角形msg_xiesanjiaobyte'xiesanjiaoxing',13,10,0;斜三角形msg_wrongbyte'wrong',13,10,0;无法构成三角形sqrdword0.code;在ebx,ecx,edx分别保存三条边的长度start:callreaduid;读取第一个数和第二个数到ebx、ecxmovebx,eax29callreaduidmovecx,eaxc
8、mpebx,ecx;确保ebx<=ecxjggreatjmpnextgreat:xchgebx,ecxnext:;读取第三个数到edxcallreaduidmovedx,eaxcmpebx,edxjgthirdsmall;如果第三个数最小cmpecx,edxjgthirdmid;如果第三个数在最中间jmporder;如果第三个数最小thirdsmall:moveax,ed