我最近发现了一个适合我的项目的C ++库,但它定义了两个使用__asm块的函数,这些函数只能在VC ++中编译:
// upper 32-bit result of 32x32-bit product
inline unsigned Product_64(unsigned l, unsigned c)
{
_asm {
mov eax,l
mul c
mov eax,edx
}
} // return value in register EAX
// division of 64-bit (after scaling) by a 32-bit number
inline unsigned Division_64(unsigned dvh, unsigned dvr)
{
_asm {
xor eax,eax
not eax
mov edx,dvh
div dvr
}
} // return value in register EAX
这个问题是我需要用G ++编译项目,G ++使用基于字符串的asm块。鉴于我没有时间正确学习装配,是吗:
谢谢!
答案 0 :(得分:1)
你在这里要求两件事:
将这两个函数重写为C ++(未经测试,假设编译器长的长度为64位):