Поиск:

Ответ в темуСоздание новой темы Создание опроса
> значение флагов, Какое значение будут иметь флаги(CF,ZF,S 
:(
    Опции темы
Гость_инга
Дата 20.6.2005, 15:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Какое значение будут иметь флаги(CF,ZF,SF) после выполнения фрагмента программы:
POLE DW 5H
DD 15
...
MOV AL,POLE
ADD AL,5
  Вверх
Payne
Дата 20.6.2005, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Детектив
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 6.4.2005
Где: Петербург

Репутация: нет
Всего: 10



Во-первых, компилятор выдаст ошибку при попытке поместить в регистр al (это всего один байт - byte) значение переменной POLE типа dw (word - слово, а это уже два байта!). Поэтому либо значение нужно помещать в регистр ax, а не в младшую его часть, либо переменная должна быть объявлена как

POLE DB 5h.

Далее, флаги я проверил даже в отладчике. Устанавливается после операции только флаг PF (все перечисленные вами не изменяются и остаются сброшенными). PF - флаг паритета. Он устанавливается, если результат имеет четное число единиц и сбрасывается, если нечетное. Действительно, 5h + 5h = Ah, что равно 1010b.
CF - флаг переноса. В результате операции переноса не было, следовательно он остается сброшенным.
ZF - флаг нуля. Результат операции равен единице, следовательно он сброшен.
SF - флаг знака. Он установлен, если старший бит результата равен 1 и сброшен в противном случае. Результат - 1010 - старший бит равен нулю, значит - SF сброшен.

Это сообщение отредактировал(а) Payne - 21.6.2005, 08:07
PM MAIL WWW ICQ Skype   Вверх
Akina
Дата 21.6.2005, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



А еще я бы потребовал гарантии, что содержимое POLE не изменилось от старта программы до выполнения кода.

Цитата(Payne @ 21.6.2005, 00:04)
ZF - флаг нуля. Результат операции не равен единице, следовательно он сброшен.

таки нулю...

Цитата(Payne @ 21.6.2005, 00:04)
Результат - 1010 - старший бит равен нулю, значит - SF сброшен.

Результат равен 00001010 ...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Payne
Дата 21.6.2005, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Детектив
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 6.4.2005
Где: Петербург

Репутация: нет
Всего: 10



Akina, признаю свои ошибки. Но если насчет

Цитата
Результат операции не равен единице, следовательно он сброшен


просто описка, то насчет

Цитата
1010 - старший бит равен нулю


я просто ступил smile .
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.