проверьте, находится ли входное число в диапазоне беззнакового 16-битного числа

привет у меня есть этот код в сборке x86

L1:
    mov edx, OFFSET prompt1
    call writeString
    call readHex
    JO L1

Я пытаюсь проверить, больше ли шестнадцатеричное число без знака, которое я ввожу, чем 16 бит, поэтому, например, я ввел ffffffff, это вызовет переполнение в ax, но не в eax, но прочитает сохраненный шестнадцатеричный результат обратно в eax, поэтому Инструкция JO не будет повторять цикл L1, как мне проверить, что только топор устанавливает флаг переполнения?

заранее спасибо


person bluebk    schedule 16.05.2013    source источник
comment
jo в любом случае будет для подписанного переполнения. Попробуйте cmp eax, 0FFFFh \ jbe L1   -  person Frank Kotler    schedule 16.05.2013
comment
JO на самом деле для значения флага переполнения   -  person bluebk    schedule 16.05.2013


Ответы (1)


Переполнение будет работать только в том случае, если вы выполняете ax to ax или eax to eax.

Вы делаете eax to ax, поэтому нужен cmp

person ady    schedule 16.05.2013