delphi – 交换Word变量的字节(低/高)的过程
发布时间:2020-12-15 04:06:53 所属栏目:大数据 来源:网络整理
导读:我有这个过程交换Word变量的字节(低/高)(它做与System.Swap函数相同的东西).当编译器优化为OFF时,该过程有效,但当它为ON时,该过程不起作用. 任何人都可以帮我吗? procedure SwapWord(VAR TwoBytes: word); asm Mov EBX,TwoBytes Mov AX,[EBX] XCHG AL,AH Mo
我有这个过程交换Word变量的字节(低/高)(它做与System.Swap函数相同的东西).当编译器优化为OFF时,该过程有效,但当它为ON时,该过程不起作用.
任何人都可以帮我吗? procedure SwapWord(VAR TwoBytes: word); asm Mov EBX,TwoBytes Mov AX,[EBX] XCHG AL,AH Mov [EBX],AX end; 解决方法
最快的:
function ReverseWord(w: word): word; asm {$IFDEF CPUX64} mov rax,rcx {$ENDIF} xchg al,ah end; 如果你想要反转DWORD: function ReverseDWord(dw: cardinal): cardinal; asm {$IFDEF CPUX64} mov rax,rcx {$ENDIF} bswap eax end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |