![]() |
eXeL@B —› Вопросы новичков —› Вопрос по OllyDB |
Посл.ответ | Сообщение |
|
Создано: 07 октября 2007 14:14 · Личное сообщение · #1 Делаю по книжке все нормально, но автор забыл сказать как в OllyDB посмотреть значение регистра eax после того как в него помещаем число более 32 бит??? вот код: .386 .model flat,stdcall includelib \myasm\lib\kernel32.lib ExitProcess proto :DWORD .code start: mov eax, 4000000000 add eax, 4000000000 invoke ExitProcess, 0 end start ![]() |
|
Создано: 07 октября 2007 14:44 · Личное сообщение · #2 |
|
Создано: 07 октября 2007 15:53 · Личное сообщение · #3 |
|
Создано: 07 октября 2007 18:25 · Личное сообщение · #4 Может я неправильно объяснил что хочу, при сложение должно получится 8000000000, я понимаю что происходит переполнение о чем свидетельствует поднятый флаг переполнения. есть два объяснения (по моему) 1. где то и как то должно сохранится значение 8000000000 и потом его можно увидеть или 2. в процессе выпонения сложения регистра eax с самим собой я теряю значение 8000000000, потому как после у меня в регистре оказывается беззнаковое 3705032704 ![]() |
|
Создано: 07 октября 2007 18:55 · Поправил: Satyr · Личное сообщение · #5 В принципе, можешь для этого использовать состояние флага переноса. В итоге единицу, которую ты терял, можно как бы "извлечь" из флага переноса. Т.е. проверяешь, поднят ли флаг переноса, и если поднят, то вписываешь единицу в старший разряд числа. Больше единицы там все равно быть не может, т.к. 0ffffffffh + 0ffffffffh = 1fffffffeh ![]() |
|
Создано: 07 октября 2007 19:31 · Личное сообщение · #6 |
|
Создано: 07 октября 2007 22:38 · Личное сообщение · #7 |
![]() |
eXeL@B —› Вопросы новичков —› Вопрос по OllyDB |