c++

模拟Add指令

c++

Posted by YiMiTuMi on July 22, 2025

模拟Add指令

Add是汇编的加法指令,在计算机中只有与、或、非、异或、同或等指令。

Add的实现是通过,将两个数进行异或运算,然后用与指令判断是否需要进位,如果需要则继续与进位的数进行异或运算以此循环直到不需要进位为止。

int AddNum (int a, int b)
{
	int iRet = 0;
	
	while (true)
	{
		int i = a ^ b; //进行异或运算	

		if (a & b)   //判断是否需要进位
		{
			b = a & b;     //计算进位值
			a = i;			
			b = b << 1; //因为进位是向前进为,所以左移进位的值
		}
		else
		{
			iRet = i;
			break;
		}	
	}

	return iRet;
}

只要实现了加法运算,减法、乘法、除非都实现了。