今日刷题之IA-32和宏定义写swap函数

目录

1.在IA32中一共有多少种办法从用户态跳到内核态?

1)IA-32解释:

2)方法

2.用宏定义写出swap(x,y)--交换x和y的值

1)加减运算实现。(注意宏定义中的写法)

 2)用位运算符^

3)用temp保存其中一个值

1.在IA32中一共有多少种办法从用户态跳到内核态?

1)IA-32解释:

通过调用门,从ring3到ring0,中断从ring3到ring0,进入vm86等等IA-32(Intel Architecture,英特尔体系架构)[1] ,属于X86体系结构的32位版本,即具有32位内存地址和32位数据操作数的处理器体系结构,从1985年面世的80386直到Pentium 4,都是使用IA-32体系结构的处理器。

2)方法

通过调用门,从ring3到ring0,中断从ring3到ring0,进入vm86等等

2.用宏定义写出swap(x,y)--交换x和y的值

1)加减运算实现。(注意宏定义中的写法)

#define swap(x, y)x = x + y;y = x - y;x = x - y;
//把第一步左边x带入  y=x+y-y=x   
//把上式y带入,x=x-(x-y)=y
//完成交换

截图:

 2)用位运算符^

//异或^
void swap(int x,int y)
{
    x=x^y;
    y=x^y;
    x=x^y;
}

3)用temp保存其中一个值

void swap(int x,int y)
{
    int temp=x;//保存x的值
    x=y;//交换y的值给x
    y=temp;//把原有x的值给y
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我在凌晨等太阳¤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值