/*
* 编译环境:Visual Studio 2022 专业版,Windows 11
* C标准:C17,解决方案平台:x86
*/
#include <stdio.h>
#pragma warning(disable:4996)
int main()
{
int a, b, overFlow, sum;
scanf("%d%d", &a, &b);
sum = a + b;
_asm
{
pushf
pop dx
mov cl, 11 //OF标志位在第11位
shr edx, cl
and edx, 1
mov dword ptr[overFlow], edx
}
if (overFlow)
{
puts("overflow");
}
else
{
printf("%d", sum);
}
return 0;
}
判断两数相加的结果是否溢出(C语言使用内嵌汇编)
于 2022-10-09 14:59:07 首次发布