gpt4 book ai didi

c - C 中的内联汇编 : Dynamic registers

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:42 25 4
gpt4 key购买 nike

我正在尝试在我的 C 代码中内联一些汇编代码:

__asm { mov reg,val };

问题:我想动态定义寄存器和值。我知道“val”可以是用 C 代码编写的变量,但我不知道如何动态选择寄存器(即根据用户输入决定 - 寄存器“dh”或“dl”)。

有什么建议吗?

最佳答案

在 C 代码中使用枚举和开关:

typedef enum
{
R_AL,
R_AH,
R_AX,
R_EAX,
...
} REGS;
...
REGS nReg;
...
switch (nReg)
{
case R_AL: __asm { mov al,val } break;
case R_AH: __asm { mov ah,val } break;
case R_AX: __asm { mov ax,val } break;
...
}

关于c - C 中的内联汇编 : Dynamic registers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com