![]() |
|
|
![]()
|
|
| Гость_инга |
|
|||
|
Unregistered |
Какое значение будут иметь флаги(CF,ZF,SF) после выполнения фрагмента программы:
POLE DW 5H DD 15 ... MOV AL,POLE ADD AL,5 |
|||
|
||||
| Payne |
|
|||
![]() Детектив ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
А еще я бы потребовал гарантии, что содержимое POLE не изменилось от старта программы до выполнения кода.
таки нулю...
Результат равен 00001010 ... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| Payne |
|
||||
![]() Детектив ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 6.4.2005 Где: Петербург Репутация: нет Всего: 10 |
Akina, признаю свои ошибки. Но если насчет
просто описка, то насчет
я просто ступил |
||||
|
|||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |