【发布时间】:2010-10-09 15:55:17
【问题描述】:
我正在 Fedora core 6 上编写一个 Linux 内核模块,我想知道是否有人可以告诉我如何将下面显示的汇编代码添加到我的程序中。汇编代码是为 Windows 编写的,我不知道如何转换为 Linux 内核程序。
#ifdef _MSC_VER
unsigned char lookKbits(char k)
{
_asm {
mov dl, k
mov cl, 16
sub cl, dl
mov eax, [wordval]
shr eax, cl
}
}
unsigned char WORD_hi_lo(char byte_high, char byte_low)
{
_asm {
mov ah,byte_high
mov al,byte_low
}
}
#endif
【问题讨论】:
-
你的问题不是很清楚。这就是内联汇编。
-
你至少应该给出生成的汇编函数。
-
我是否应该担心您想将一个构建 WORD 结果的函数放入 eax 但声明为将一个字符返回到 kernel 中?无论您找到什么答案,编译时都应该仔细检查生成的代码是否正确。
-
是的,我实际上打算将它移植到工作汇编指令中,但这并没有真正的意义。我也遇到了这个讨论(cboard.cprogramming.com/archive/index.php/t-92815.html),这似乎是同一件事。