C中使用汇编交换两个值

简介: C中使用汇编交换两个值

使用宏定义虽然也可以,总是觉得不方便。吾一直想,最好提供一个交换指令,然后直接定义一个函数供调用。


以下代码没有经过测试,请自行验证。

WINDOWS
int x=1, y=200;
_asm
{
    push x;
    push y;
    pop  x;
    pop  y;
}
printf("x=%d, y=%d\n", x, y);

LINUX

int x=1, y=200;
asm(
    "push x\n\t"
    "push y\n\t"
    "pop  x\n\t"
    "pop  y\n\t"
);
printf("x=%d, y=%d\n", x, y);
目录
相关文章
|
8月前
不使用第三变量。如何对2个数进行交换
不使用第三变量。如何对2个数进行交换
50 0
|
3月前
|
存储
【汇编】数据在哪里?有多长、div指令实现除法、dup设置内存空间
【汇编】数据在哪里?有多长、div指令实现除法、dup设置内存空间
|
3月前
|
存储 程序员 数据处理
【汇编】mov和add指令、确定物理地址的方法、内存分段表示法
【汇编】mov和add指令、确定物理地址的方法、内存分段表示法
120 1
【汇编】mov和add指令、确定物理地址的方法、内存分段表示法
|
4月前
交换两个变量的值
交换两个变量的值
21 0
|
9月前
运用函数交换两个整型变量
运用函数交换两个整型变量
|
11月前
|
数据安全/隐私保护 C语言
【C语言】交换两个int变量的值,不能使用第三个变量
交换两个int变量的值,不能使用第三个变量。即a=3,b=5,交换之后 a=5,b=3
C/C++语言交换两个变量的七种方法
C/C++语言交换两个变量的七种方法
367 0
C/C++语言交换两个变量的七种方法
代码例题(1-3)(含进阶版)及讲解:1.求两个数二进制中不同位的个数 2.打印整数的二进制的奇数和偶数位 3.交换两个变量,不创建临时变量 (ps最后一道为已知代码求值题)
代码例题(1-3)(含进阶版)及讲解:1.求两个数二进制中不同位的个数 2.打印整数的二进制的奇数和偶数位 3.交换两个变量,不创建临时变量 (ps最后一道为已知代码求值题)
77 0
|
开发者 Python
交换两个变量的值 | 学习笔记
快速学习交换两个变量的值,介绍了交换两个变量的值系统机制, 以及在实际应用过程中如何使用。
86 0
交换两个变量的值 | 学习笔记
|
C语言
C语言“交换两个变量的值”和求十个数中最大的数(流程图、代码)
C语言“交换两个变量的值”和求十个数中最大的数(流程图、代码)
333 0
C语言“交换两个变量的值”和求十个数中最大的数(流程图、代码)