VC++使用内联汇编的例子:冒泡法排序(从大到小排序)
2015-11-11 12:30
351 查看
如果明白了冒泡排序的原理,从大到小或是从小到大,其实实现是相似的道理,如果每次排序都把最小的放在最后面,这样的话,循环下来,就是从大到小了,这里采用VC++内联汇编的方式实现,因为想学习一下内联汇编这种方法。
运行效果如下:
/* 使用内联汇编,从大到小排序。 */ #include <iostream> using namespace std; #define MAX_SIZE 20 int array[MAX_SIZE]={86,73,12,66,88,98,102,33,36,23,106,25,32,26,98,97,42,53,6,83}; void main() { int *p; p = &array[0]; p--; __asm { mov esi,p; mov ecx,MAX_SIZE; _LOOP1: mov edx,ecx; dec edx; jz _EXIT; _LOOP2: mov eax,[esi+ecx*4]; mov ebx,[esi+edx*4]; //本身不需要比较 cmp ebx,eax; //谁小谁放在最后面 jnb _NOCHG; mov [esi+ecx*4],ebx; mov [esi+edx*4],eax; //交换 _NOCHG: dec edx; jnz _LOOP2; dec ecx; jmp _LOOP1; _EXIT: } cout<<"使用内联汇编,从小到大排序:"<<endl; for(int i=0;i<MAX_SIZE;i++) //打印排序 cout<<array[i]<<" "; cout<<endl; system("pause"); }
运行效果如下:
相关文章推荐
- VC++使用内联汇编的例子:冒泡法排序(从小到大)
- 黑马程序员——C语言基础06—数组
- C语言单链表逆序
- c++builder 程序升级到c++builder10Seattle
- VC++深入详解学习记录
- QML与c++混合编程
- 【C++基础之二】常量指针和指针常量
- [收藏]C++ STL中Map的按Key排序和按Value排序
- [原]支付宝无线支付服务端接入C++
- C、C++函数和类库详解(VC++版)
- C# 调用C++DLL传递的bool型,返回混乱
- C++ 静态变量的初始化 以及 vector的初始化
- c++内存安全问题
- 【C++模版之旅】神奇的Traits
- 【编程开发】 C与C++中的关于函数指针的强制类型转换与指针函数的关系
- 黑马程序员——C语言基础05—函数
- C++ 编码规范
- mfc下关于f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\occcont.cpp(926) 的奇怪问题
- 用google mock模拟C++对象
- 为什么C++中声明和定义要分开写