LINUX.ORG.RU

Условие которое не должно выполняться

 ,


0

1

Условие, которое не должно выполняться макроассемблером, по непонятной мне причине выполняет avra. Почему?

.equ TMP10 = 256000
.if TMP10 > 4294967296 ; более 2^32
    .error "ER-TIM0-2: Это условие не должно выполнится."
.else

.endif


Последнее исправление: morkovkin (всего исправлений: 1)

может переполняется

Harald ★★★★★
()

4294967296

this

anonymous
()
Ответ на: комментарий от Harald

При 4294967291 также выполняется, при 429496729 уже работает нормально. Но 2^32 = 4294967296, то есть переполнения быть не должно при 4294967291

morkovkin
() автор топика
Ответ на: комментарий от morkovkin

Но 2^32 = 4294967296, то есть переполнения быть не должно

4294967296 - уже переполнение, это 100000000, а тебе надо 2^32-1 - FFFFFFFF, т.е. 4294967295

anonymous
()
Ответ на: комментарий от morkovkin

Оставлю это здесь, для тех кто также упрется в переполнения

.if BYTE4(TMP1) >= 0xff && BYTE4(TMP1) >= 0xff ...

morkovkin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.