/*=========================================== *编译器: VC6.0 * *函数: float fabsolute (float num); *用汇编求绝对值 =============================================*/ #include <iostream> float fabsolute (float num); int main() { using namespace std; float n; while (true) { cout << "请输入一个数字:"; cin >> n; n = fabsolute(n); cout << n << endl; } return 0; } float fabsolute (float num) { float mantissa;// 尾数部分 int integer;// 整数部分 integer = int(num);// 取的整数部分 _asm { mov eax, integer add eax, 0 jns loc_end// 正数跳转 neg eax mov integer, eax } mantissa = int(num) - num; return (integer+mantissa); loc_end: return num; }
例二:
#include <iostream> int main() { using namespace std; int num = 0; int x = 1; int y = 9; int z = 0; _asm { MOV EAX, x SUB EAX, y JNS ENDIF_1//;正数跳转 THEN_1: NEG EAX//;求补码 (各位取反加1),存入AX;相当于乘以-1 ENDIF_1: MOV z, EAX } cout << "vc 6.0 中嵌套汇编\n"; cout << z << endl; return 0; }