您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 求10个有符号数中的最大值和最小值
#includestdio.hintmain(){intBUF[10]={222,3,1,-233,24,23,1,25,32,10},MIN,MAX;//MIN用于保存数组的最小值,MAX用于保存最大值_asm{//把数组BUF的首地址赋值给ESILEAESI,BUF//寄存器EDX作为计数器,作为判断循环结束的标志,初值为10MOVEDX,10//把数组的第一个数给EAX,在整个循环中,EAX中始终存放当前最大值MOVEAX,[ESI]//把数组的第一个数给EBX,在整个循环中,EBX中始终存放当前最小值MOVEBX,[ESI]BEGIN://计数器EDX减DECEDX//若EDX为,表明循环结束,则跳至结尾处JZLAST//ESI加,指向数组中的下一个数ADDESI,4//ECX存储数组中当前元素MOVECX,[ESI]//比较ECX和EAX(当前最大值)CMPEAX,ECX//若EAX的值大于ECX的值,则跳至MIDDLE标签,否则把ECX的值给EAXJGEMIDDLE//若EAX的值小于ECX,则把ECX的值给EAXMOVEAX,ECXMIDDLE://比较ECX和EBX(当前最小值)CMPEBX,ECX//若EBX的值小于ECX,则开始下一次循环JNGBEGIN//若EBX的值大于ECX,则把ECX的值赋值给EBXMOVEBX,ECX//开始下一次循环JMPBEGINLAST://把最大值给MAXMOVMAX,EAX//把最小值给MINMOVMIN,EBX}printf(这个数为:);for(inti=0;i10;i++){printf(%d,,BUF[i]);}printf(\n最大数为:%d,MAX);printf(\n最小数为:%d\n,MIN);return0;}程序运行结果如下:
本文标题:求10个有符号数中的最大值和最小值
链接地址:https://www.777doc.com/doc-5653068 .html