eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: 3ton (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

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

Ранг: 3.2 (гость)
Статус: Участник

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

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

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

Ранг: 568.5 (!)
Статус: Модератор

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

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

Ранг: 88.3 (постоянный)
Статус: Участник

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

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


Ранг: 296.9 (наставник)
Статус: Участник

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

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

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

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

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

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

Ранг: 3.2 (гость)
Статус: Участник

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

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

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

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

Ранг: 568.5 (!)
Статус: Модератор

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

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

Ранг: 407.9 (мудрец)
Статус: Участник

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

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

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

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

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

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS