|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 18, 2003 02:39:53 · Поправил: Безпощадный даос sorry, я только учусь (может вопрос глупый)
// NASM
[BITS 16]
[ORG 100h]
mov ax, 127
add ax, 2
jo overflow
mov ah, 09h
mov dx, message_not_overflow
int 21h
int 20h
overflow:
mov ah, 09h
mov dx, message_overflow
int 21h
int 20h
message_overflow db 'overflow', 13, 10, '$'
message_not_overflow db 'not overflow', 13, 10, '$'
так вот, во всех книжках написано, что должен ставиться флаг переполнения, а он в отладчике не ставится и почему-то ставится флаг четности (хотя младший байт = 1 - всего один установленный бит). Отлаживал в AFD и TD. Может я не так все понял ;( помогите плз... |
|
|
Дата: Июл 18, 2003 03:25:11 Перейди на HEX систему исчисления, Будет устанавливаться флаг знака SF, а флаг CF если я тебя правильно понял, установиться при переходе через границу 255 или 0FFh |
|
|
Дата: Июл 18, 2003 03:28:35 Ты не понял - CF (Carry Flag) - флаг переноса. С ним нет проблем. Я про OF (Overflow flag). Он должен устанавливаться (как я понимаю). |
|
|
Дата: Июл 18, 2003 03:42:45 Я извиняюсь, не заметил что регистр ax, а не al Итак флаг переполнения будет установлен если результат превысит 32767 (7FFFh), а не 7Fh. |
|
|
Дата: Июл 18, 2003 03:43:52 poprobuy vmesto mov ax,127 add ax,2 mov ax,127 add ah,2 Pri dobavlenii k 127 2 v ax ne proishodit ni kokogo overflow tak kak on 16 bit |
|
|
Дата: Июл 18, 2003 03:47:21 OF переполнение - Результат превысил положительный или отрицательный предел для чисел. Это из описания, 16 бит верхний предел 32767 |
|
|
Дата: Июл 18, 2003 04:01:32 Спасибо. Я ДУРАК. Но это от отсутствия опыта. еще раз ОЧЕНЬ благодарен. |
|
|
Дата: Июл 18, 2003 04:11:20 learner Я же тоже ошибся давая первый ответ. Это нормально для если програмируеш на ассемблере. |
|
|
Дата: Июл 18, 2003 06:52:36 OF Это когда перенос в SF <> переносу в CF пример с 127+2 установит OF если операнд будет 8 бит. Например mov al,127 add al,2 Пример когда при двух случаях нулевого результата в одном установится OF а в другом - нет. al = 80h (10000000b) sub al,al (10000000 - 10000000 = 00000000) al = 0 SF = 0 в CF тоже небыло перноса - значит OF = 0 add al,al (1000 0000+1000 0000=1вCF|0000 0000) SF = 0 а в CF = 1 (перенос в несуществующий разряд) al опять 0 но SF<>CF получаем OF. |
|
|
Дата: Июл 26, 2003 10:57:46 Да вот маленькая обучалка для понимания как флаги работают и ассоциацию реального положения флагов с мнемонмками 1432264715__tttn.zip |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.084 |