http://www.firststeps.ru/mfc/steps/mfc1.html
учебники
http://rutracker.org/forum/viewtopic.php?t=3925762
http://rutracker.org/forum/viewtopic.php?t=3694726
http://rutracker.org/forum/viewtopic.php?t=1429409
переполнение int, asm
http://www.firststeps.ru/mfc/steps/r.php?393
- Спойлер
- #include "stdafx.h"
#include "iostream.h"
void main()
{
int i=2147483647; // максимальное значение
int g=1; // вторая часть сложения
int k=0; // флаг переполнения
_asm
{
pushf // сохраняем флаги
push ecx // сохраняем регистр который будем использовать
mov ecx,dword ptr [i] // из переменной в регистр
add ecx,dword ptr [g] // складываем
mov dword ptr [i],ecx // результат назад
jo overflow // переход по переполнению
jmp endover; // небыло переполнения
overflow: // переполнение
mov dword ptr [k],1 // установим флаг
endover:
pop ecx // восстановить регистр
popf // восстановить флаги
}
if (k==1) cout << "Overflow " << endl;
else cout << "OK" << endl;
}