我在 C 中有以下方法,它需要两个 16 位短整数和:
- 将两个整数相加
- 如果设置了进位标志,则将结果加 1
- 否定(NOT)最终结果中的所有位
返回结果:
short __declspec(naked) getchecksum(short s1, short s2) { __asm { mov ax, word ptr [esp+4] mov bx, word ptr [esp+8] add ax, bx jnc skip_add add ax, 1 skip_add: not ax ret } }
我不得不在内联汇编中编写它,因为我不知道不使用汇编程序来测试进位标志的任何方法。有谁知道这样做的方法?