gpt4 book ai didi

c++ - 如何在 VS2008 64 位构建中用 intristic 替换 __asm jno no_oflow?

转载 作者:搜寻专家 更新时间:2023-10-31 02:00:31 25 4
gpt4 key购买 nike

我有这个代码:

__asm jno no_oflow
overflow = 1;
__asm no_oflow:

它会产生这个很好的警告:

error C4235: nonstandard extension used : '__asm' keyword not supported on this architecture

什么是等效/可接受的替代代码来检查之前发生的减法运算的溢出?

最佳答案

首先定义如下:

#ifdef _M_IX86
typedef unsigned int READETYPE;
#else
typedef unsigned __int64 READETYPE;
#endif

extern "C"
{
READETYPE __readeflags();
}

#pragma intrinsic(__readeflags)

然后您可以按如下方式检查 eflags 寄存器:

if ( (__readeflags() & 0x800))
{
overflow = 1;
}

关于c++ - 如何在 VS2008 64 位构建中用 intristic 替换 __asm jno no_oflow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1879768/

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