一个很简单的C函数,要求用汇编实现:
inline void SWAP(int* left, int* right)
{
if (left == right) return;
*right ^= *left;
*left ^= *right;
*right ^= *left;
}
请详细一点!
交换两个数汇编指令
答案:5 悬赏:10 手机版
解决时间 2021-01-03 08:41
- 提问者网友:聂風
- 2021-01-02 15:04
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-01-06 14:51
如果你的int是16位整数的话就是这个了
mov ax,left
xchg ax,right
mov left,ax
而如果是32位
mov eax,left
xchg eax,right
mov left,eax
mov ax,left
xchg ax,right
mov left,ax
而如果是32位
mov eax,left
xchg eax,right
mov left,eax
全部回答
- 1楼网友:人類模型
- 2021-01-06 16:19
xchg 指令可以完成这个任务
- 2楼网友:蕴藏春秋
- 2021-01-06 16:10
xchg left ,right
xchg right,left
- 3楼网友:荒野風
- 2021-01-06 15:59
依C调用约定
xor实现
SWAP PROC FAR
POP ESI
POP EDI
LODSD
XOR EAX,[EDI]
XOR [EDI],EAX
;XOR EAX,[EDI]
;MOV [ESI],EAX
XOR [ESI],EAX
RETF
SWAP ENDP
xchg实现
SWAP PROC FAR
POP ESI
POP EDI
LODSD
XCHG EAX,[EDI]
MOV [ESI],EAX
RETF
SWAP ENDP
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯