Сейчас на форуме: Rio, igorcauret (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Числовое представление True и False в ассемблере
Посл.ответ Сообщение

Ранг: 3.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 22 декабря 2014 10:27
· Личное сообщение · #1

В виде каких hex чисел хранятся булевы значения True и False в области данных?
True = 1, False = 0 ?
а может быть
True = 0, False = -1 (0xFFFF) ?

Процессор семейства ARM



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 22 декабря 2014 10:29
· Личное сообщение · #2

Все может быть.

-----
старый пень




Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 22 декабря 2014 14:55
· Личное сообщение · #3

Может быть твое неправильно представление о том, где true и где false, тем более в ассемблере (например, если это результат функции AreYouHuman() или AreYouNotHuman(), суть одна, а возвращаемые значения разные).
0 обычно false, все остальное true.




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 22 декабря 2014 14:58 · Поправил: DenCoder
· Личное сообщение · #4

FALSE в языках программирование всегда нуль(!). TRUE - не нуль(!), но необязательно 1. Независимо от архитектуры.

Mime пишет:
True = 0, False = -1 (0xFFFF)

Я бы скорее так трактовал тут -
0 - нет ошибок
-1(0xFFFF) - ошибка(и) есть

Enigma пишет:
например, если это результат функции AreYouHuman() или AreYouNotHuman(), суть одна, а возвращаемые значения разные

Можно и так погадать ) Всё зависит от реализации программного интерфейса (API)

-----
IZ.RU




Ранг: 3.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 22 декабря 2014 15:20
· Личное сообщение · #5

Вопрос решился.
Добавив "куда надо", конструкции...
MOV R0, #1
BX LR

Соответствующая функция стала всегда возвращать "истинно"

Спасибо пацаны!



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 22 декабря 2014 15:27
· Личное сообщение · #6

DenCoder
Да глупости. FALSE может быть "false", например, в интерпретируемых языках.
Может это вообще не булевы значения, а uint16_t.MIN и uint16_t.MAX

-----
старый пень




Ранг: 431.7 (мудрец), 391thx
Активность: 0.730.32
Статус: Участник

Создано: 22 декабря 2014 16:33 · Поправил: dosprog
· Личное сообщение · #7

Числовое представление True и False в ассемблере

Изначально некорректная постановка вопроса.
В Ассемблере нет типов данных True & False (Boolean).
Другое дело, в какой код транслируется Boolean с ЯзыкаВысокогоУровня..
Стандартно, false=0 ,true=!0 (любое не равное 0). Тогда проверку true|false удобно делать путём сравнения с нолём.

Впрочем, решился вопрос, да и ладно




 eXeL@B —› Вопросы новичков —› Числовое представление True и False в ассемблере
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати