|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Дек 12, 2003 00:01:49 Поделить на 16 значит сдвинуть вправо на 4 бита. Следовательно, если младшие 4 бита сброшены, значит сдвигать можно без остатка. |
|
|
Дата: Дек 12, 2003 00:18:10 ??? Ладно, туплю. Но теперь уже я ничего не понял. Итак, с and мы все всем объяснили правильно, не ошибся ни Гренадер, ни я. Теперь давайте разбираться с делимостью на 16 :)))) Квант, если число имеет последние 4 бита в единицах, можно ли его разделить на 16 %-))) |
|
|
Дата: Дек 12, 2003 00:20:38 Нет. Поэтому последние 4 бита должны быть сброшены. |
|
|
Дата: Дек 12, 2003 00:26:21 Quantum Поделил на кулькуляторе :) Баран я. Правлю все свои посты :) |
|
|
Дата: Дек 12, 2003 00:33:01 Секунду, теперь уже мне плохо стало. Фрагмент кода: test ax,000fh jz krat_16 Ну и какого х.? jz будет только если младшие биты выглядят так: ....1111b |
|
|
Дата: Дек 12, 2003 00:39:49 Да с чего бы? что делает test? правильно, логическое умножение. поэтому команда "test 1111b, 000fh" умножит числа, получит 000fh, и НЕ УСТАНОВИТ ZF. Что и требовалось - значит, число не кратно 16. |
|
|
Дата: Дек 12, 2003 00:41:13 · Поправил: volodya [] |
|
|
Дата: Дек 12, 2003 00:45:03 А я говорил, что трогает? Я просто пропустил слово "логичское" второй раз. Но дело не в этом. Команда test установит ZF ТОЛЬКО ТОГДА, когда логическое произведение операндов будет == 0, т.е. установка флагов аналогична команде and. так? |
|
|
Дата: Дек 12, 2003 00:49:45 Все, баста. Хватит на сегодня. Позор на мою лысину. Всем спокойной ночи. |
|
|
Дата: Дек 12, 2003 00:49:45 · Поправил: Grenader Да, пожалуй, действительно хватит. Надо выспаться. |
|
|
Дата: Дек 12, 2003 11:11:55 Ну прогера громадного спасибо и малой лапши на ваши коды(в смысле чтоб создавались удобные в понимании через некоторое время и быстрые по выполнению). |
|
|
Дата: Дек 12, 2003 14:54:36 Grenader Проверка на заразность. mov ax,4200h ;Установим ука- xor cx,cx ;затель на пос- dec si ;ледний байт mov dx,si ;файла ... int 21h jnc read_last jmp close ;Ошибка! read_last: ;И считаем этот mov ah,3fh ;байт в ячейку mov cx,1 ; " last " ... lea dx,last int 21h jc close ;Ошибка ! cmp last,'7' ;"last"="7" jne write_vir ;Нет - дальше jmp find_next ;Да - поищем дру- ;гой файл ... Прости за тупой вопрос, но что означает: "jnc" read_last? Я понимаю, что твое время ценно, но тем не менее не обесудь. |
|
|
Дата: Дек 12, 2003 16:26:24 EvilsInterrupt jnc - буквально, "jump if not carry" - то есть совершить переход, если флаг CF (флаг переноса) сброшен. В данном случае (я не спец по досу, это простая логика), если произойдет ошибка, флаг CF будет установлен досом. Но здесь Коваль написал несколько невнятный код (jnc read_last; jmp close) - это эквивалентно "jc close" - кстати, дальше по тексту так и будет. |
|
|
Дата: Дек 12, 2003 18:15:28 Grenader Если со злостью, чо-нить нажелать, то говарят сбудется. Чтоб блин перед тобой всегда вставали интересные задачи. |
|
|
Дата: Дек 12, 2003 18:40:53 EvilsInterrupt пасиб |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.054 |