Я новичок в ассемблере x86, у меня есть целое число со знаком, сохраненное в регистре eax
, и я хочу проверить, является ли число отрицательным или положительным. Для этого я использовал инструкцию bt
, чтобы проверить первый бит.
Вот что я сделал:
bt eax,0
jnc isNegative
bt
переносит первый бит для переноса флага, и я использовал jnc
, чтобы проверить, равен ли флаг переноса 0 или 1. и я хочу проверить, является ли число отрицательным или положительным. Для этого я использовал инструкцию bt, чтобы проверить первый бит. ...
Я новичок в ассемблере x86, у меня есть целое число со знаком, сохраненное в регистре eax
, и я хочу проверить, является ли число отрицательным или положительным. Для этого я использовал инструкцию bt
, чтобы проверить первый бит.
Вот что я сделал:
bt eax,0
jnc isNegative
bt
переносит первый бит для переноса флага, и я использовал jnc
, чтобы проверить, равен ли флаг переноса 0 или 1. и я хочу проверить, является ли число отрицательным или положительным. Для этого я использовал инструкцию bt, чтобы проверить первый бит. ...
Я новичок в ассемблере x86, у меня есть целое число со знаком, сохраненное в регистре eax
, и я хочу проверить, является ли число отрицательным или положительным. Для этого я использовал инструкцию bt
, чтобы проверить первый бит.
Вот что я сделал:
bt eax,0
jnc isNegative
bt
переносит первый бит для переноса флага, и я использовал jnc
, чтобы проверить, равен ли флаг переноса 0 или 1.
Если это 1, это должно быть отрицательное число и выполнять отрицательные инструкции ...
однако результат непредсказуем, иногда я получаю положительный результат, и он распознает его как отрицательное число. Я что-то делаю не так?
EDIT: Я только что понял, что это может иметь какое-то отношение к порядку байтов. Фактически он проверяет последний бит вместо первого. Позвольте мне попробовать использовать bt
, 7