Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 741
от 14.06.2004, 12:00

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 5459
Отправлено ответов: 14950
Активность: 273.8 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

n0name
Статус: Начальный
Общий рейтинг: 115.78
[Подробней >>]
Стас
Статус: Опытный
Общий рейтинг: 130.55
[Подробней >>]
Snowm@n
Статус: Опытный
Общий рейтинг: 111.6
[Подробней >>]
 
_vt
Статус: Профессиональный
Общий рейтинг: 118.76
[Подробней >>]
VOVAN
Статус: Опытный
Общий рейтинг: 105.61
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 116.67
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 111.53
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 105.41
URL: Мой сайтик...
[Подробней >>]
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 134.38
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
 
thinker
Статус: Начальный
Общий рейтинг: 104.52
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 5430. Уважаемые эксперты, мне интересно как у вас IQ. напишите в ответе... (ответов: 3)
Вопрос № 5431. Дарова. В окне Properties папки WINDOWS написано что она занимает 1 547 133 255 байт , а место на ди... (ответов: 2)
Вопрос № 5432. Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста: 1.Какая разница между двумя флагами CF и O... (ответов: 9)
Вопрос № 5433. Спасибо за отклики на вопрос №5398 , теперь излагаю попобробней : для _vt : полгода назад он задавал... (ответов: 1)
Вопрос № 5434. Ув. эксперты!!! Помогите с поиском алгоритма нахождение кратчайшего пути(в двух-мерной матрице). Вес... (ответов: 3)
Вопрос № 5435. Огромное спасибо Стасу за ответ я правда так и не разобрался как писать благодарность но это я быстр... (ответов: 1)
Вопрос № 5437. Здравствуйте, Стас! ОС – DOS или Win9x... или DOS и Win9x... большого значения не имеет, Файловая си... (ответов: 2)
Вопрос № 5438. Добрый вечер! Начал заниматься логикой, не могу вот что придумать: есть две конъюнкции, например x... (ответов: 1)
Вопрос № 5439. Ребята - выпустите это в рассылку (или киньте его мыло - сама отвечу)! я по-поводу 5411 вопроса! Под... (ответов: 2)
Вопрос № 5441. Здравствуйте, ЭКСПЕРТЫ ! Пожалуйста напишите мне текст проги для вывода на экран хотя бы одного пикс... (ответов: 2)

Вопросов: 10, ответов: 26


 Вопрос № 5430

Уважаемые эксперты, мне интересно как у вас IQ. напишите в ответе



Вопрос отправлен: 07.06.2004, 18:09
Отправитель: dOc

[Следующий вопрос >>] [Список вопросов]

Отвечает n0name

Доброе время суток, dOc!
У меня IQ ~136(измерял год назад)

Ответ отправлен: 07.06.2004, 19:15
Отправитель: n0name


Отвечает Стас

Здравствуйте, dOc!
Несколько тестов показали 130, честно говоря думаю, что они завышают, и у меня гдето 90-100.

Ответ отправлен: 07.06.2004, 21:43
Отправитель: Стас


Отвечает Snowm@n

Доброе время суток, dOc!
IQ=173

Ответ отправлен: 07.06.2004, 22:01
Отправитель: Snowm@n


 Вопрос № 5431

Дарова.
В окне Properties папки WINDOWS написано что она занимает 1 547 133 255 байт , а место на диске 1 456 543 145 байт. Почему? ведь все должно быть с точностью до наобарот



Вопрос отправлен: 07.06.2004, 18:38
Отправитель: dOc

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Приветствую Вас, dOc!
Вопрос не в тему, но всё же - на дисках с файловой системой NTFS возможна компрессия отдельных файлов, поэтому файлы с атрибутом "сжатый" занимают на диске места меньше, чем есть на самом деле.
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 08.06.2004, 13:13
Отправитель: _vt


Отвечает Snowm@n

Приветствую Вас, dOc!
Может глюки NTFS?

Ответ отправлен: 07.06.2004, 22:00
Отправитель: Snowm@n


 Вопрос № 5432

Здравствуйте, уважаемые эксперты!
Подскажите, пожалуйста:
1.Какая разница между двумя флагами CF и OF? Приведите, пожалуйста, пример.
2.Зачем нужна команда lea, если можно тоже сделать offset'ом командой mov?
3. Регистр ebp для общего использования?
Спасибо.



Вопрос отправлен: 07.06.2004, 19:20
Отправитель: Alexander

[Следующий вопрос >>] [Список вопросов]

Отвечает VOVAN

Приветствую Вас, Alexander!
1) CF - carry flag, сигнал об ошибке
2) lea dx, [offset data + bp]
3) Юзать можно

Ответ отправлен: 07.06.2004, 20:04
Отправитель: VOVAN


Отвечает Ayl

Здравствуйте, Alexander!
1. Хм, вообще-то это совсем разные флаги. CF - это флаг переноса, а OF - переполнения. Флаг CF устанавливается, когда обнаружен перенос из старшего разряда при арифметических операциях (сложение) или заем в старший разряд (вычитание). Флаг OF устанавливается, когда обнаружено переполнение разрядной сетки при умножении или делении.
2. Команда lea - это не просто mov OFFSET, хотя так она используется достаточно часто. Начнем по порядку.
lea - это команда процессора. OFFSET - это директива компилятора. То есть значение OFFSET вычисляется на этапе компиляции программы и в код записывается вычисленная константа. Команда же lea выполняется процессором.
Теперь смотри. С помощью команды lea можно написать так:
lea bx, [di+10]
что позволяет занести в регистр bx значение регистра di, увеличенного на 10. С помощью OFFSET ты такое не напишешь. В команде lea можно использовать все режимы адресации процессора, например:
lea eax, [ebx+4*edi+187]
в результате значение регистра eax станет ebx+4*edi+187. Одна команда, а сколько сделала!
3. В принципе, да. Только учти, что если ты пишешь процедуру, которая взаимодействует с ЯВУ, то в регистре ebp находится указатель фрейма вызывающей процедуры. Так что его надо сохранять. Ну и по умолчанию при адресации через него памяти используется сегментный регистр ss, а не ds, как для остальных регистров.


Ответ отправлен: 08.06.2004, 16:05
Отправитель: Ayl


Отвечает n0name

Добрый день, Alexander!
1.CF- флаг переноса, 1 - если результат не умещается в приёмнике, ил если нужен заём для вычитания.
mov eax, 0FFFFh
mov eax, 1
CF=1 eax=0h
OF- флаг переаолнения. 1 - если результат выходит за допустимые пределы.
mov eax, 01000000b
mov eax, 01000000b
eax=10000000b OF=1
потому что складывали 2 положительных числа а получили отрицательное(со старшим битом в 1)
2. lea занисает меньше байт, чем mov
3.Вообщето EBP нужен для работы со стеком

Ответ отправлен: 08.06.2004, 07:33
Отправитель: n0name


Отвечает Стас

Здравствуйте, Alexander!
1)
OF - overflow flag - флаг переполнения.
CF - carry flag - флаг переноса.
Похожие флаги, но не одно и тоже. (перенос возникает примерно тогда же когда и переполнение)
2) lea удобнее! :)
3) конечно, пользуйся на здоровье.

Ответ отправлен: 07.06.2004, 22:39
Отправитель: Стас


Отвечает ASMодей

Доброе время суток, Alexander!
1. Вот цитата из Зубкова:
CF - флаг переноса. Устанавливается в 1, если результат предыдущей операции
не уместился в приемнике и произошел перенос из старшего бита или если
требуется заем (при вычитании), иначе устанавливается в 0. Например, после
сложения слова 0FFFFh и 1, если регистр, в который надо поместить
результат, - слово, в него будет записано 0000h и флаг CF = 1.
OF - флаг переполнения. Этот флаг устанавливается в 1, если результат
предыдущей арифметической операции над числами со знаком выходит за
допустимые для них пределы. Например, если при сложении двух положительных
чисел получается число со старшим битом, равным единице (то есть
отрицательное) и наоборот.
2. Если у тебя адрес статический, то можно использовать и offset, но если
адрес вычисляется во время исполнения программы, то использовать команду
LEA намного удобнее, чем использование нескольких MOV.
Например: lea ebx,[esi+edi*4]
3. EBP - это регистр общего назначения, но в некоторых случаях (например при
использовании локальных переменных или при использовании команд ENTER/LEAVE)
им лучше не пользоваться, или придется сохранять и восстанавливать его
значение.


Ответ отправлен: 08.06.2004, 08:05
Отправитель: ASMодей


Отвечает Snowm@n

Доброе время суток, Alexander!
1) OF - Overflow Flag (флаг переполнения), CF - Carry Flag (флаг переноса)
2) lea занимает меньше байт
3) да

Ответ отправлен: 07.06.2004, 21:58
Отправитель: Snowm@n


Отвечает Portnov

Доброе время суток, Alexander!
По первому вопросу ИМХО оч. хорошо объяснил товарищ на сайте wasm.ru, статья "Перенос и переполнение - что они представляют собой на самом деле?" (http://www.wasm.ru/article.php?article=carry_overflow).

Ответ отправлен: 08.06.2004, 19:55
Отправитель: Portnov


Отвечает Евгений Иванов

Здравствуйте, Alexander!
1. CF - флаг переноса или зачёта.
OF - флаг переноса или зачёта в
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 10.06.2004, 00:43
Отправитель: Евгений Иванов


Отвечает Евгений Иванов

Здравствуйте, Alexander!
1. CF - флаг переноса или зачёта.
OF - флаг переноса или зачёта в
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 10.06.2004, 00:43
Отправитель: Евгений Иванов


 Вопрос № 5433

Спасибо за отклики на вопрос №5398 , теперь излагаю попобробней :
для _vt : полгода назад он задавался, я уже прогу управления портом написал, но оборудование(бег строку) так и не собрали, теперь собираемся собирать, но уже по просьбе администрации города.
для всех :
Схема следующая :
есть аппарат "Бег.строка", где будет бегать куча информации , как коммерческой, так и не коммерческой,
строка гиганстких размеров, где-то 10х2м., размер кластеров с размер окошка светофора. Первоналально планировалось разместить ее на здании, а в здании поставить "ящик" и управлять оттуда, но планы несколько
изменились ввиду серьезных и пока невыполнимых требований :
строка должна иметь незавизимое ПЗУ, и загрузка текста осуществляется wireless. Мы видим воплощение этого в сотовой связи, а именно : помимо ПЗУ, уставить в бег строку микроконтроллер какой-нить "микрочип" и подключить его к сотке, блок питания которой законтачить в сеть.
При отправке SMS, исходя из выбора command= или text=
Она загружает текст смс, затем его удаляет. Но в принципе,
вначале можно с ноутбуком ездить и обновлять текст из проги на Дельфи. Вот такая вот задача :(
***Есть ли исходники на АЗЬМЕ для подобных задач ?



Вопрос отправлен: 08.06.2004, 12:42
Отправитель: Jiny (zhas-trz@tarazinfo.kz)

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Доброе время суток, Jiny!
Гораздо дешевле и проще купить готовое устройство. И содержание его тоже обойдется дешевле.
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 09.06.2004, 22:05
Отправитель: _vt


 Вопрос № 5434

Ув. эксперты!!! Помогите с поиском алгоритма нахождение кратчайшего пути(в двух-мерной матрице). Весь инет облазил - ничего не нашел.:(



Вопрос отправлен: 08.06.2004, 21:51
Отправитель: 00110010

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Здравствуйте, 00110010!
Да ну? Не может такого быть! Поищи волновой алгоритм. И вообще, посмотри инфу про графы (2-хмерная матрица может быть представлена в виде графа).
Краткое описание волнового алгоритма см.в Приложении.


Приложение:

Ответ отправлен: 09.06.2004, 12:13
Отправитель: Ayl


Отвечает n0name

Приветствую Вас, 00110010!
Наиболее распространён волновой алгоритм(он же алгоритм Ли).
Суть его вот в чём:
Из отправной точки в 4х направлениях(где это можно) ставим 1, из тех точек, куда мы поставили 1цы, отправляемся опять в 4х напралениях и ставим где не помечено меткой (например 0)2ки. Так повторяется до тех пор, пока не дойдём до конечной точки. Чтобы обнаружить кратчайший путь: из конечной точки идём в том направлении где ниже цифра, оттуда опять туда, где цифра меньше,а дальше по-такому же принципу возвращаемся обратно. Если непонятно: markamer@mail.ru

Ответ отправлен: 08.06.2004, 22:13
Отправитель: n0name


Отвечает Portnov

Доброе время суток, 00110010!
Надо бы поточнее задачу. Как я вас понял: дана матрица, каждым шагом перемещаемся из ячейки в соседнюю, надо найти путь, при к-ром сумма пройденных ячеек минимальна. Так? Если так, то алгоритм волны, про к-рый вам сказали Ayl и n0name, не пройдет - он будет искать путь в ненагруженном графе, т.е. считая, что во всех ячейках вашей матрицы стоят единицы. Для такой задачи надо применять алгоритмы поиска кратчайшего пути во взвешенных графах. Они длинноваты, чтобы приводить здесь. Линк, где это наверняка есть: alglib.manual.ru.
С уважением, Portnov.

Ответ отправлен: 09.06.2004, 22:21
Отправитель: Portnov


 Вопрос № 5435

Огромное спасибо Стасу за ответ я правда так и не разобрался как писать благодарность но это я быстро исправлю :)
Уважаемые эксперты не могли бы вы мне подкинуть простейший исходничек программы которая могла бы считать системную область с загрузочными файлами в некий отдельный файл а потом всё это записать обратно на диск С:?



Вопрос отправлен: 09.06.2004, 00:46
Отправитель: Phantom

[Следующий вопрос >>] [Список вопросов]

Отвечает Стас

Здравствуйте, Phantom!
>системную область с загрузочными файлами
Имеется в виду MBR,BOOT + IO.SYS,MSDOS.SYS (и т.д.)?
И это только для DOS-Win9x...
Можно конечно написать если настроение появиться...
Конкретнее перечисли, что тебе надо сохранить. Какая система, какая файловая система.

Ответ отправлен: 09.06.2004, 11:43
Отправитель: Стас


 Вопрос № 5437

Здравствуйте, Стас!
ОС – DOS или Win9x... или DOS и Win9x... большого значения не имеет,
Файловая система Fat32
>что тебе надо сохранить?
Загрузочную область, то есть IO.SYS,MSDOS.SYS, Сommand.com.
Другими словами загрузочные данные, это мне нужно для быстрой переустановки Windows (Лично для себя,) Пытался сам разобраться с ASM но это не VB :), понял что пока не потяну. Хотелось бы также посмотреть исходник.
Если у вас будет время и желание помочь, буду очень признателен.



Вопрос отправлен: 09.06.2004, 18:18
Отправитель: Phantom

[Следующий вопрос >>] [Список вопросов]

Отвечает Стас

Доброе время суток, Phantom!
Все равно не понятно...
Когда я переустанавливаю винды, единственное, что отнимает кучу времени это установка драйверов, набора часто используемых программ, мелкая настройка виндов. Кодеки устанавливаю так: переношу файлы кодеков (всякие *.acm *.dll и т.д.) и секцию в system.ini [drivers32], всё!
Не MBR ни BOOT не command.com и не io.sys трогать вообще не нужно, их установка новенькие поставит. autoexec.bat config.sys msdos.sys предварительно копирую куда нибудь, после установки возвращаю в корневик.
Единственное, что могу предположить, что тебе надо восстанавливать Win98 после установки WinXP(2000). Но тогда достаточно восстановить MBR (команда FDISK /MBR). К чему тебе программа?
К чему я это? - нельзя написать программу не понимая, что она должна сделать. Могу конечно написать программу тупо сохраняющую MBR,BOOT,IO.SYS,MSDOS.SYS,Сommand.com в один файл и восстанавливающий их из него. Вообщем давай мимо рассылки пиши на адрес trashcan2@yandex.ru. Разберемся.
Кстати, IO.SYS,MSDOS.SYS и Сommand.com это не загрузочная область. Это файлы системы.



Ответ отправлен: 12.06.2004, 20:26
Отправитель: Стас


Отвечает _vt

Добрый день, Phantom!
Файлы io.sys, msdos.sys, command.com не являются загрузочной областью.
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 09.06.2004, 22:06
Отправитель: _vt


 Вопрос № 5438



Добрый вечер!
Начал заниматься логикой, не могу вот что придумать:
есть две конъюнкции, например x1x2x3 и x1x2(not(x3)) (не знаю как тут черту сверху сделать). Так вот, согласно правилам логики они "склеиваются", т.е. тот элемент, который входит в обе конъюнкции в противоположных значениях аннулируется и остается x1x2. Некоторые конъюнкции (двоичные векторы) не могут сравниваться, например x1x2 и
x1(not(x2))x3, так как состоят из разных элементов, причем отличаться могут только в одном разряде (в моем случае).
Господа эксперты, внимание вопрос!
Как можно обнаружить возможность такого склеивания и как закодировать такие конъюнкции, чтоб их без особого труда можно было вводить в текстовый файл, а потом обработать.
Просто подскажите алгоритм, если знаете.
Буду очень признателен за любую полезную информацию по этому вопросу или ссылки в инете.



Вопрос отправлен: 09.06.2004, 22:59
Отправитель: Стас (stas3@belnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Здравствуйте, Стас!
То, что они могут "склеиваться", следует из распределительного закона:
a*b+a*c=a*(b+c), где a, b и c - выражения, + - операция логического ИЛИ, * - операция логического И.

и из следующих правил вычисления логических выражений:
1. a+(^a)=1 (^ - операция НЕ)
2. a*1=a

т.е. твое выражение записывается так:
x1*x2*x3+x1*x2*(^x3)={распределительный закон} x1*x2*(x3+(^x3))={правило 1} x1*x2*1={правило 2} x1*x2

Для твоей программы нужно просто в комп ввести все правила вычисления логических выражений и написать программу для упрощения этих выражений. Если сможешь найти книгу Р.Форсайта "Паскаль для всех" (оригинальное название - Pascal In Work And Play), то там есть пример программы для упрощения логических выражений. Правда, с неполной бызой правил.
В Приложении см. некоторые правила для упрощений. Как и выше, * - логическое И, + - логическое ИЛИ, ^ - логическое НЕ.


Приложение:

Ответ отправлен: 10.06.2004, 12:31
Отправитель: Ayl


 Вопрос № 5439

Ребята - выпустите это в рассылку (или киньте его мыло - сама отвечу)! я по-поводу 5411 вопроса! Под XP IDa не работает не поэтому - у тебя видимо либо user русский! короче смени темпы - там русские буквы сто процентов! Ида не умеет с ними корректно работать - поэтому выдает ошибку, а вообще где-то уже валяется 4.5.11!



Вопрос отправлен: 10.06.2004, 07:43
Отправитель: Swetlana (snt_swetlana@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает thinker

Добрый день, Swetlana!
У меня работает с русским юзером и с русскими буквами в темпах. Раньше не работало. Версия 4.5.1.777

Ответ отправлен: 11.06.2004, 20:27
Отправитель: thinker


Отвечает Ayl

Приветствую Вас, Swetlana!
Отправляю...


Ответ отправлен: 10.06.2004, 12:34
Отправитель: Ayl


 Вопрос № 5441

Здравствуйте, ЭКСПЕРТЫ !
Пожалуйста напишите мне текст проги для вывода на экран хотя бы одного пикселя…
Если это возможно…
С нетерпением жду ответа!
Спасибо,




Вопрос отправлен: 10.06.2004, 11:58
Отправитель: Serega

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Приветствую Вас, Serega!
Для какого режима и для какой операционки?


Ответ отправлен: 10.06.2004, 12:50
Отправитель: Ayl


Отвечает Евгений Иванов

Приветствую Вас, Serega!
;Рисует точку с координатами CX,DX цветом b[INK] и устанавливает [KX,KY];
;-- MoveTo --- 16-цветные режимы,4 слоя ------------------------------------
;IN -> CX=X-координата,DX=Y-координата,b[INK]=цвет
proc MoveTo ;=wp
USES ax,bx,cx,dx
mov wptr [bp+KX-dat],cx
mov wptr [bp+KY-dat],dx
mov bx,cx
shr bx,3
imul ax,dx,Xmax/8
add bx,ax
mov dx,3CEh
mov ax,205h ;2 режим записи
out dx,ax
mov al,[es:bx]
and cl,7
mov ax,8008h
shr ah,cl
out dx,ax ;Маска,где 1 - нужная точка
mov ah,bptr [bp+INK-dat]
mov [es:bx],ah
mov ah,0FFh
out dx,ax
jcxz $+2
mov ax,5
out dx,ax
ret
endp
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 11.06.2004, 04:31
Отправитель: Евгений Иванов



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (22)
C / C++ (12)
Perl (1)
Builder / Delphi (15)
Pascal (21)
Basic / VBA (3)
Java / JavaScript (4)
PHP (13)
Криптография (9)
WinAPI (11)
Радиоэлектроника (8)
Пользователю
Windows 95/98/Me (34)
Windows NT/2000/XP (53)
"Железо" (30)
Поиск информации (15)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (11)
Юристу
Гражданское право (12)
Семейное право (8)
Трудовое право (11)
КоАП (7)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное