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

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


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

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

Выпуск № 280
от 03.06.2002, 15:30

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


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

bin
Статус: Начальный
Общий рейтинг: 105.4
[Подробней >>]
Gibbel
Статус: Доверительный
Общий рейтинг: 110.29
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 155.38
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
 
masquer
Статус: Профессиональный
Общий рейтинг: 162.68
[Подробней >>]
DiGiT
Статус: Профессиональный
Общий рейтинг: 148.62
[Подробней >>]
Frank
Статус: Профессиональный
Общий рейтинг: 130.63
[Подробней >>]
 
Vint by Shz
Статус: Доверительный
Общий рейтинг: 123.07
[Подробней >>]
igorash
Статус: Доверительный
Общий рейтинг: 141.74
[Подробней >>]
Тorax
Статус: Доверительный
Общий рейтинг: 122.75
[Подробней >>]
 
Dron
Статус: Профессиональный
Общий рейтинг: 149.73
URL: Операционная система с нуля!
[Подробней >>]
Andy Bitoff
Статус: Опытный
Общий рейтинг: 118.87
URL: HomePage или что-то типа того :)
[Подробней >>]
Beeblebrox
Статус: Опытный
Общий рейтинг: 131.5
URL: Beeblebrox / TMA HomePage
[Подробней >>]
 
Shal
Статус: Начальный
Общий рейтинг: 107.92
[Подробней >>]
Топор
Статус: Опытный
Общий рейтинг: 132.57
URL: Хорошая Русская Металлическая команда
Телефон: (8462)160302, 162918
[Подробней >>]
Александр
Статус: Опытный
Общий рейтинг: 118.42
[Подробней >>]


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

Вопрос № 258. Прошу помочь в написании программы in Assembler Программа получает матрицу Н*Н (Н не чётное и меньше... (ответов: 1)
Вопрос № 259. Уважаемые эксперты, у меня возникли следующие вопросы: 1. Как написать программу, которая читала бы ... (ответов: 1)
Вопрос № 260. Здравствуйте все! Кому не хватило книг на Intel-е могут сходить по этой ссылке: http://www.x86-64.or... (ответов: 4)
Вопрос № 261. Привет. Подскажите где можно взять примеры использования различных прерываний (для начинающего). Спа... (ответов: 4)
Вопрос № 262. Привет. Всем, кто плавает на Opere, в СРОЧНОМ порядке сюда: http://www.compulenta.ru/2002/5/28/30161... (ответов: 1)
Вопрос № 263. Здравствуйте, эксперты! У меня такая проблема! Пытаюсь написать программу, которая должна находить в... (ответов: 1)
Вопрос № 266. Комментарий к письму читателя Андрея. Писать систему на чистом ассемблере неразумно. Делать надо так... (ответов: 2)
Вопрос № 267. Уважаемые эксперты! Помогите пожалуйста. Я в ассемблере пока ничего не понимаю, а сдавать надо,сесси... (ответов: 1)
Вопрос № 268. Ни где не могу найти описание команды ASMa CQD(если это команда). Помогите, кто знает, PLEASE! С ув... (ответов: 11)

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


 Вопрос № 258

Прошу помочь в написании программы in Assembler
Программа получает матрицу Н*Н (Н не чётное и меньше
10)
Программа проверяет если полученная матрица является
полиндромом
матрица полиндром это матрица у которой линия середины
столбик середины и диоконали(diagonal) состовляют
эксодоцемальное число и его цифры состовляют полиндром
например : Н=3
4e 5d 11
b9 44 9b
11 b5 e4
большая просьба помочь в написании этой программки
и описать её написание как можно ясно
спасибо зарание



Вопрос отправлен: 29.05.2002, 11:24
Отправитель: Stas

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

Отвечает bin

Здравствуйте, Stas!
Не знаю что такое эксодоцемальное число и полиндром. Но все же попытался что-то набросать.
1) вводим размерность матрицы Н
2) проверяем на нечетность
3) вводим элементы матрицы в линейный массив слов размером Н*Н (простой буфер-строка размером Н*Н*2 байт)
4) указатель 1 (УК1) устанавливаем на начало массива, указатель 2 (УК2) на конец
5) берем содержимое УК1 (слово)
6) сдвигаем циклически вправо (можно и влево) на 8 бит, т.е. ror ax, 8 и получаем 4e->e4
7) сравниваем с содержимым по УК2, если не равны - вон на фиг, матрица не полиндром
8) увеличиваем УК1 (на след. элемент матрицы), уменьшаем УК2
9) выполняем с 4 по 8 нужное кол-во раз.
З.Ы.Возможно я не правильно понимаю эти замудр. слова, точнее все точности...

Ответ отправлен: 30.05.2002, 00:23
Отправитель: bin


 Вопрос № 259

Уважаемые эксперты, у меня возникли следующие вопросы:
1. Как написать программу, которая читала бы всю информацию, которая приходит на сетевую карту?
2. Как написать программу, которая позволяла бы работать мыши присоединенной к LPT-порту т.е. нужно, чтобы мышь работала на порту LPT.
Заранее благодарен.



Вопрос отправлен: 29.05.2002, 18:51
Отправитель: KeVRter (kevrter@mailru.com)

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

Отвечает Gibbel

Добрый день, KeVRter!
Под какую операционку тебе надо написать эти проги???

Ответ отправлен: 30.05.2002, 10:32
Отправитель: Gibbel


 Вопрос № 260

Здравствуйте все!
Кому не хватило книг на Intel-е могут сходить по этой ссылке: http://www.x86-64.org/documentation и внизу странички найти точную копию(насколько я понимаю) этих книг(3 первых томов) в PDF датированы они 1999г. Это конечно не бумажное издание, но хоть что-то. Сказать наверняка, что это тоже самое, что слал Интел не могу, т.к. не с чем сравнивать.:)
Там кстати еще много чего интересного есть!


Приложение:


Вопрос отправлен: 29.05.2002, 20:24
Отправитель: ILYA D.

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

Отвечает Sensey

Здравствуйте, ILYA D.!
Интересная информация.
Отправляю!


Ответ отправлен: 30.05.2002, 07:04
Отправитель: Sensey


Отвечает masquer

Доброе время суток, ILYA D.!
Все эти книги можно и с сайта Intel скачать в формате PDF

Ответ отправлен: 30.05.2002, 11:04
Отправитель: masquer


Отвечает DiGiT

Добрый день, ILYA D.!
Угу я смотрел они там не для людей у которых трафик :(((
Размер огромный.

Ответ отправлен: 30.05.2002, 05:43
Отправитель: DiGiT


Отвечает Frank

Доброе время суток, ILYA D.!
ладно отвечаю.
ЗЫ Книги вроде немного не совпадают у меня на каждом томике проставлен 2001 год, но отличия думаю не очень большие.
ЕЩЕ: вроде на самом интеловском сайте тоже можно пдфники скачать.
Я уних там документашку по PCI шине выкачал :)


Ответ отправлен: 29.05.2002, 23:23
Отправитель: Frank


 Вопрос № 261

Привет.
Подскажите где можно взять примеры использования различных прерываний (для начинающего).
Спасибо.



Вопрос отправлен: 29.05.2002, 20:59
Отправитель: MTC

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

Отвечает masquer

Добрый день, MTC!
Ищи Intlist by Ralf Brown

Ответ отправлен: 30.05.2002, 11:05
Отправитель: masquer


Отвечает Vint by Shz

Здравствуйте, MTC!
Могу помочь с некоторыми (ДОС ,БИОС)
vitalii@shadrinsk.zaural.ru

Ответ отправлен: 31.05.2002, 13:04
Отправитель: Vint by Shz


Отвечает igorash

Доброе время суток, MTC!
В книге по ассемблеру. Зубков, Юров и т.д.


Ответ отправлен: 29.05.2002, 21:10
Отправитель: igorash


Отвечает Тorax

Приветствую Вас, MTC!
Скачай архив основной рассылки с www.kalashnikoff.rudos
Torax


Ответ отправлен: 31.05.2002, 19:32
Отправитель: Тorax


 Вопрос № 262

Привет.
Всем, кто плавает на Opere, в СРОЧНОМ порядке сюда:
http://www.compulenta.ru/2002/5/28/30161/



Вопрос отправлен: 29.05.2002, 22:23
Отправитель: Andy BitOff (bitoff@pisem.net)

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

Отвечает masquer

Приветствую Вас, Andy BitOff!
Мне кажется, что это исключение, лишь подтверждающее надежность. Я, например, использую оперу еще с 3.х версий. А этот баг был распространен лишь в версиях 6.01 и 6.02. Период между 6.01 и 6.03 - около месяца, так что, по сравнению с друшлагом под названием IE это просто детский смех. Думаю тем, кто пользуется оперой потребуються более серьезные ошибки для перехода на что-нибудь другое.

Ответ отправлен: 30.05.2002, 11:14
Отправитель: masquer


 Вопрос № 263

Здравствуйте, эксперты!
У меня такая проблема! Пытаюсь написать программу, которая должна находить все файлы в директории и заносить их имена в специальнно отведенный для этого файл. Столкнулся я с такой проблемой, я использую функции нахождения первого файла и следующих для файлов LFN. Находя первый файл в директоии и занося его имя в файл, функция LFN 4Fh больше не находит файлов, хотя они есть. Подозреваю, что это как-то связано с использованием 2 идентификаторов. Для функции LFN 4Fh и DOS 42h, так как если я убираю кусок с записью имени в файл программа ищет все файлы. Что я не правильно делаю и как, и чем это можно побороть?
--
С уважением, ILYA D.


Приложение:


Вопрос отправлен: 30.05.2002, 00:31
Отправитель: ILYA D.

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

Отвечает Тorax

Здравствуйте, ILYA D.!
Если я тебе еще не присылал свою програму напиши - она это умеет.
Torax@dotes.west.energy.gov.ua


Ответ отправлен: 31.05.2002, 19:31
Отправитель: Тorax


 Вопрос № 266

Комментарий к письму читателя Андрея.
Писать систему на чистом ассемблере неразумно. Делать надо так, как сделано в Linux - на ассемблере написана только аппаратно-зависимая часть. Напишешь на ассемблере- и все на другую платформу не перенесешь, например на IA-64, а привязываться только к IA-32 неправильно. А если он рвется писать собственную операционку, за основу лучше все же брать Linux(если только не собирается писать операционку на микроядре, или ОС реального времени) и изменять уже его код, так как все равно он придет к похожей системе. Естественно система должна удовлетворять стандартам на UNIX системы.



Вопрос отправлен: 30.05.2002, 11:04
Отправитель: Slava

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

Отвечает masquer

Добрый день, Slava!
Смотря какие цели преследуются написанием своей системы. Если я, например, не собираюсь портировать ее на другие процессоры, а скорость необходима, то смысл есть, особенно те функции, которые работают с памятью. Используя ассемблер можно добиться многократного ускорения этих операций. Так что...

Ответ отправлен: 30.05.2002, 13:34
Отправитель: masquer


Отвечает Dron

Добрый день, Slava!
Почему все же линукс?
Мало того что разобраться в коде линукс - это не каждому под силу, а переписывать чужой код - это мучение, да и зачем заниматься переписыванием, когда и так все работает? :)
лучше уж делать что-то свое.
кстати почему должно удовлетворять стандартам на Unix, которые составлялись дай бог памяти - году эдак в 1960... :)
То что все писать на ассемблере - бессмысленно, это правильно. система написаная на ассемблере мало того что разрабатываться будет годами, но еще и обновляться будет очень медленно. на ассембюлере достаточно написать самую критическую и платформозависимую часть. остальное все можно писать на чем угодно.
Андрей, если хочет что-то изобрести - напиши мне. dron@infosec.ru.
Кстати к сведению всех читателей и экспертов, у нас уже появились некоторые промежуточные результаты работы ядра.
Ну вот, на этом и откланяюсь. :)


Ответ отправлен: 30.05.2002, 12:08
Отправитель: Dron


 Вопрос № 267

Уважаемые эксперты! Помогите пожалуйста. Я в ассемблере пока ничего не понимаю, а сдавать надо,сессия полным ходом идет. Нужна небольшая прога. Дан массив 6х6 и надо отсортировать элементы по убыванию. Заранее благодарен. Спасибо.



Вопрос отправлен: 30.05.2002, 12:57
Отправитель: Сергей (serge701@yandex.ru)

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

Отвечает masquer

Приветствую Вас, Сергей!
Кроме того, что неполное условие дано - одних методов сортировки не меньше десятка наберется, еще и хочется разочаровать студента - никто тебе готового решения не даст. Учи матчасть. Команды ассемблера, которые тебе пригодятся - mov, cmp, jxx. Это максимум помощи.

Ответ отправлен: 30.05.2002, 13:47
Отправитель: masquer


 Вопрос № 268

Ни где не могу найти описание команды ASMa CQD(если это команда). Помогите, кто знает, PLEASE!
С ув. Володя



Вопрос отправлен: 30.05.2002, 15:27
Отправитель: VolodL

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

Отвечает Andy Bitoff

Приветствую Вас, VolodL!
Тебя, наверное, интересует команда CDQ - конвертирует двойное слово в учетверенное. Т.е. расширяет EAX в EDX:EAX.

Ответ отправлен: 30.05.2002, 18:27
Отправитель: Andy Bitoff


Отвечает Beeblebrox

Доброе время суток, VolodL!
CDQ
Opcode: 66h,99h в модели use16 и 99h в модели use32
если eax <= 7FFFFFFFh то edx := 0
иначе edx := 0FFFFFFFFh
Иными словами, преобразует 32-битное знаковое целое в 64-битное

Ответ отправлен: 30.05.2002, 15:59
Отправитель: Beeblebrox


Отвечает Vint by Shz

Здравствуйте, VolodL!
Щас , схожу пойщю...
Нет, вроде нету ни чё, да и ТАSM чего-то ругается на инструкцию....

Ответ отправлен: 31.05.2002, 13:05
Отправитель: Vint by Shz


Отвечает DiGiT

Добрый день, VolodL!
CDQ
(Convert Double word to Quad word)
Преобразование двойного слова в учетверенное слово.
Применение:
Команду cdq можно использовать для распространения значения знакового бита в регистре eax на все биты регистра edx. Данную операцию, в частности, можно использовать для подготовки к операции деления, для которой размер делимого должен быть в два раза больше размера делителя.
А CQD команды нет.


Ответ отправлен: 31.05.2002, 09:27
Отправитель: DiGiT


Отвечает Dron

Добрый день, VolodL!
cdq есть.
edx:eax <- знаковое расширение eax


Ответ отправлен: 31.05.2002, 11:24
Отправитель: Dron


Отвечает Shal

Доброе время суток, VolodL!
Конвертирование учетверенного слова в двойное по идее. По-моему такой команды нет...

Ответ отправлен: 30.05.2002, 19:11
Отправитель: Shal


Отвечает masquer

Доброе время суток, VolodL!
CQD и не найдешь, нет такой, а вот CDQ - convert double word to quad word - есть такая. Используется при умножении, в случае если результат выходит за размер регистра. Работает очень просто, распространяет знак eax на edx. Достаточно подробно?

Ответ отправлен: 30.05.2002, 19:31
Отправитель: masquer


Отвечает Тorax

Приветствую Вас, VolodL!
Команды CQD нету, а CDQ есть. Вот описание:
CDQ (Convert Double word to Quad word)
Преобразование двойного слова в учетверенное слово
Назначение:
расширение двойного слова со знаком до размера учетверенного слова(64 бита) со знаком
Синтаксис: cdq
Машинный код: 99h
Виполнение команды не влияет на флаги
Применение: команду можна использовать для распостранения значения знакового бита в регистре eax на все биты регистра edx. Данную операцию, в частности, можно использовать для подготовки к операции деления, для которого размер делимого должен быть в два раза больше делителя:
.386
delimoe dd ...
delitel dd ...
...
mov eax, delimoe
cdq
idiv delitel ; частное в eax, остаток в edx
Torax


Ответ отправлен: 31.05.2002, 19:40
Отправитель: Тorax


Отвечает Топор

Добрый день, VolodL!
Скорее всего всё-таки CDQ, а не CQD. Расширяет двойное слово в EAX до учетверённого в EDX:EAX, перенося старший бит на все остальные старшие для сохранения знака.


Ответ отправлен: 31.05.2002, 00:19
Отправитель: Топор


Отвечает igorash

Доброе время суток, VolodL!
Не cqd а cdq.
(Зубков) "Команда cdq превращает двойное слово в eax в учетверенное, младшая половина которого остается в eaxб а старшая располагается в edx. Эта команда лишь устанавливает все биты регистра edx в значение равное величине старшего бита регистра eax, сохраняя таким образом его знак."


Ответ отправлен: 31.05.2002, 23:58
Отправитель: igorash


Отвечает Александр

Доброе время суток, VolodL!
Про команду CQD ничего не понял, а вот команда CDQ действительно существует и производит знаковое расширение двойного слово из EAX до четверного слова(EDX:EAX). Т.е. если в EAX положительное число, то EDX=0, если же отрицательное, то EDX=FFFFFFFFh. Если это действительно команда АСМа(в смысле CQD), то это надо искать в 3DNow! или SSE, SSE2.


Ответ отправлен: 03.06.2002, 14:55
Отправитель: Александр



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

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (48)
C / C++ (28)
Perl (10)
Delphi (19)
Pascal (30)
Basic / VBA (14)
Java / JavaScript (8)
PHP (6)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (49)
Windows NT/2000/XP (35)
"Железо" (41)
Поиск информации (21)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (8)
Юристу
Гражданское право (12)
Семейное право (4)
Трудовое право (6)
КоАП (3)

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




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


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

В избранное