c - 如何将头文件函数中的内联程序集转换为不支持 x64 的程序集的 c++ 函数?

标签 c assembly x86 x86-64 inline-assembly

任何人都可以帮助将头文件中的以下内联汇编转换为相应的 x86-64 .asm 文件或不带汇编的 c 样式函数吗?

extern const char hexlu[];
void _inline hextoascii(char* a_src , char* a_dest ) {
_asm {

              mov esi, a_src;
    mov edi, a_dest;
    sub ebx,ebx

    mov edx,[esi+00]
    mov bl,dl
    mov ax,word ptr [ebx*2+hexlu]
    mov [edi+00],ax
};
}

最佳答案

void hextoascii(char* src, char* dest)
{
    dest[0] = hexlu[  2*(unsigned)src[0]];
    dest[1] = hexlu[1+2*(unsigned)src[0]];
}

关于c - 如何将头文件函数中的内联程序集转换为不支持 x64 的程序集的 c++ 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15118004/

相关文章:

c - 在嵌入式系统中从汇编语言切换到 C 语言

c 程序允许用户更改已经设置的 4 位引脚

assembly - ARM反汇编程序输出: When there are two arguments instead of three

循环队列实现

c++ - 文本迭代,汇编与 C++

x86 - sfence 文档中的 "serializing operation"是什么意思?

assembly - 为 X86 编译时如何防止函数对齐到 16 字节边界?

linux - 在自修改汇编代码中调用 mprotect 后仍然出现段错误

c++ - Visual Studio 2010 非常慢,无法使用

c - Xilinx MicroBlaze 浮点兼容性