Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 436
от 06.12.2002, 23:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 2048 Отправлено ответов: 6318 Активность: 308.4 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Maverick Статус: Профессиональный Общий рейтинг: 138.37 URL: Задачи по ассемблеру Телефон: 89039415024 (BiLine GSM) [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 116.24 URL: Мой сайтик... [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 119.73 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 128.65 URL: моя рассылка по Protected Mode [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 154.55 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 117.49 [Подробней >>] |
St Статус: Опытный Общий рейтинг: 115.92 [Подробней >>] |
Max Статус: Начальный Общий рейтинг: 128 [Подробней >>] |
DiGiT[old] Статус: Опытный Общий рейтинг: 107.25 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 150.51 [Подробней >>] |
keleb-glin Статус: Доверительный Общий рейтинг: 115.41 [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 114.26 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 123.5 [Подробней >>] |
Eugene Статус: Опытный Общий рейтинг: 110.62 URL: мощный файловый архив [Подробней >>] |
Sensey Статус: Профессиональный Общий рейтинг: 122.56 URL: Страничка рассылки по Паскалю Телефон: +38 (0572) 41-76-04 дом. [Подробней >>] |
Beeblebrox Статус: Профессиональный Общий рейтинг: 111.8 URL: Beeblebrox / TMA HomePage [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 108.73 URL: Страничка обо мне и моих друзьях [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 2007. Доброго времени суток, уважаемые эксперты! Скажите, как мне поставить текстовое разрешение 80х40 или... (ответов: 4)
Вопрос № 2008. Здравствуйте. Я собираю библиотеку по Ассемблеру - справочники, словари, часто задаваемые вопросы и ... (ответов: 2)
Вопрос № 2009. да, я понимаю, что это рискованное предприятие. Но все же, - ограниченного обьема, например справочн... (ответов: 1)
Вопрос № 2010. Уважаемые эксперты! Нуждаюсь в Вашем совете. Ситуация следующая. Имеется текстовый файл,из которого ... (ответов: 6)
Вопрос № 2011. Многоуважаемые эксперты!!! Давно наболел вопрос. Мне очень интересно можно ли програмировать на ассе... (ответов: 11)
Вопрос № 2012. эксперты и неэксперты, нужно что бы пользователь вводил только числа, и ничего не происходило, если ... (ответов: 9)
Вопрос № 2013. Доброго времени суток, господа. Я опять побираюсь сырцами. Надеюсь, не откажете в исходнике программ... (ответов: 2)
Вопрос № 2014. Уважаемый Bob Johnson, я отслеживаю все ответы по данной рассылке. Очень интересные ответы на вопрос... (ответов: 3)
Вопрос № 2015. Привет All! Сразу СОРРИ за оффтопик. Нужен сайс под ХР. Какая нужна версия(отдельно сайс или Driver ... (ответов: 2)
Вопрос № 2016. Только пытаюсь программировать на АСМе. Но вот такой напутствующий вопрос попался. 1) АСМе программ... (ответов: 9)
Вопрос № 2017. Доброго времени... Людиииииииии? Жизнено важно: Как записать в файл уже созданный до этого,какой либ... (ответов: 10)
Вопрос № 2018. Здравствуйте, Эксперты ! В программе определенны переменные QTY как DB, VALUE как DW и PRICE как DW.... (ответов: 4)
Вопрос № 2019. Здравствуйте, Эксперты ! Регистры : AX и BX содержат знаковые данные СX и DX – беззнаковые. Какие к... (ответов: 8)
Вопросов: 13, ответов: 71
Вопрос № 2007 |
Доброго времени суток, уважаемые эксперты!
Скажите, как мне поставить текстовое разрешение 80х40 или 80х50?
Вопрос отправлен: 02.12.2002, 07:59
Отправитель: X-RayMan (x_rayman@vinnitsa.com)
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Добрый день, X-RayMan!
Кидаю тебе на мыло доку по установке видеорежимов.
Там это есть, я смотрел.
Ответ отправлен: 02.12.2002, 09:36
Отправитель: Maverick
Отвечает Portnov
Здравствуйте, X-RayMan!
Держите кусок кода (под ДОС):
mov ax, 1202h; Function 12h
mov bl, 30h; AL = 2 for 400 scan lines
int 10h ; Reset to 400 scan lines
mov ax, 0003 ; Reset mode (Function 0)
int 10h ; to mode 3 (80-col text)
mov al, 12h ; Request 8x8 character matrix
sub bl, bl ; Use table 0
mov ah, 11h ; Request Function 11h
int 10h ; Set new line mode
mov ah, 12h ; Select alternate print
mov bl, 20h ; screen for EGA and VGA
int 10h
По крайней мере, у меня это устанавливает 80х50. Если не ошибаюсь, на EGA-адаптере этот кусок кода установит 80х40.
С уважением, Portnov.
Ответ отправлен: 03.12.2002, 19:32
Отправитель: Portnov
Отвечает ASMодей
Добрый день, X-RayMan!
Цитирую Interrupt List:
For 43-line text on EGA or 43/50-line text on VGA, you must load an 8x8
font using AX=1102h after switching to mode 3; VGA may also require
using INT 10/AH=12h/BL=30h
Ответ отправлен: 03.12.2002, 17:20
Отправитель: ASMодей
Отвечает Broken Sword
Приветствую Вас, X-RayMan!
через 0 ф-цию 10h - для каждой видяхи по разному, т.к. это нестандартные режимы.
Но для всех VESA-совместимых карточек, ф-ция 4F02h позволяет установить текстовый режим 80x60 (BX=108h)
Ответ отправлен: 02.12.2002, 17:10
Отправитель: Broken Sword
Вопрос № 2008 |
Здравствуйте.
Я собираю библиотеку по Ассемблеру - справочники, словари, часто задаваемые вопросы и пр. Если у Вас есть информация - вышлете мне пожалуйста на адрес:
bayramanna@investbank.org
Спасибо.
Вопрос отправлен: 02.12.2002, 08:44
Отправитель: Bayram Annanurov
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Здравствуйте, Bayram Annanurov!
Я думаю, если кто то из экспертов сидит в инете через выделенку, то твоему ящику не поздоровится :)
Я тоже собираю библиотеку, но как ты себе представляешь я переправлю тебе около гига инфы и прог?
Мне помоему будет дешевле съездить к тебе с винчестером, при моей то тел. линии. :)
Ответ отправлен: 02.12.2002, 09:39
Отправитель: Maverick
Отвечает Bob Johnson
Доброе время суток, Bayram Annanurov!
На счет частозадаваемых вопросов - просто почитай рассылку. Найдешь множество. На мой взгляд это следующие:
1. Где найти TASM или MASM.
2. Как пользоваться этими самыми TASM или MASM.
3. Как вывести число на экран (ну и ввести с клавиатуры, конечно).
4. Как установить SoftIce.
5. Как пользоваться SoftIce.
6. и т.д.
К сожалению, остальной информации у меня нет.
Ответ отправлен: 02.12.2002, 23:46
Отправитель: Bob Johnson
Вопрос № 2009 |
да, я понимаю, что это рискованное предприятие. Но все же, - ограниченного обьема, например справочники - если конечно же это не слишком хлопотно.
что такое сидет "в инете через выделенку" ?
Спвсибо.
Вопрос отправлен: 02.12.2002, 11:53
Отправитель: Bayram Annanurov
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Приветствую Вас, Bayram Annanurov!
"что такое сидет "в инете через выделенку""
Ну-ну, не надо придираться к словам, смысл ответа понятен?
Пиши мне на Maverick@nightmail.ru
Будем думать.
Мож у тебя тоже есть что нибудь дельное.
Желательно напиши мне, какие у тебя есть доки, или вырезки из них, чтоб не слать одно и то же. Да и я гляну, мож у меня чего нет.
Ответ отправлен: 02.12.2002, 13:45
Отправитель: Maverick
Вопрос № 2010 |
Уважаемые эксперты! Нуждаюсь в Вашем совете. Ситуация следующая. Имеется текстовый файл,из которого мы побайтово читаем данные, каждая строка файла - это целое десятичное число (больше 10). Вопрос, как эти числа перевести в нормальный вид, чтобы с ними можно было производить математические вычисления. И второй вариант - числа вещественные. Заранее спасибо!
Вопрос отправлен: 02.12.2002, 13:47
Отправитель: Konstantin
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Приветствую Вас, Konstantin!
Вот пример.
На выходе в AH будет не ASII код цифры 9, а сама цифра 9.
Дальше дело техники.
.model tiny
.code
org 100h
start:
mov ah,maverick
sub ah,'0'
ret
maverick db '9'
end start
Ответ отправлен: 02.12.2002, 14:10
Отправитель: Maverick
Отвечает Ayl
Приветствую Вас, Konstantin!
Ну, с целыми все просто. Пусть есть строка, содержащая целое десятичное число. Тогда:
B = 0;
p = Str (указатель на строку, p^ = очередной символ)
L = длина строки
Тогда алгоритм такой:
1. счетчик = L
2. цифра = p^ xor 30h (преобразование из ASCII в число)
3. B = B * 10 + цифра
4. p = p + 1
5. i = i - 1
6. если i > 0, то перейти к п.2
С вещественным сложнее. Я бы делал по частям - отдельно целую часть (по предыдущему алгоритму), отдельно - вещественная:
B = 0;
L = длина строки
p = Str [L] (указатель на строку, p^ = очередной символ)
1. счетчик = L
2. цифра = p^ xor 30h (преобразование из ASCII в число)
3. B = B / 10 + цифра / 10
4. p = p - 1
5. i = i - 1
6. если i > 0, то перейти к п.2
Ответ отправлен: 02.12.2002, 14:34
Отправитель: Ayl
Отвечает St
Привет, Konstantin!
У меня есть такие процедуры, правда написанные достаточно давно под DOS, (только проверьте пожалуйста сначала их работоспособность), однако они не оптимизированы. Где-то были и обратные.
см Приложение, процедуры разделены строкой +++++++++++++++
St
Приложение:
Ответ отправлен: 02.12.2002, 17:44
Отправитель: St
Отвечает Max
Konstantin ваш вопрос ясен, и это пусть не легко но всеже решить можно. Прощайте за то что сам код я вам не написал (т.к. на данный момент я пишу "курсовой"), но алгоритм подсказать могу:
1) Мы должны знать сколько символов стоит до пробела
2) Далее мы должны перевести их в нормальный вид (символ за символом) и добавить в сумму.
3)переводить будем так:
а)сделаем в памяти массив (размер - максимальное число символов);
б)напишем прогу которая енти символы туда запихнет в обратном порядке
в)после будем от ентих кодов вычитать маску 30H тобиш если символ 32h то 32h-30h=2, как и двойка в DEC
3) теперь мы сможем их суммировать в кучутолько делать енто надо в такой посл :
1 разряд + 2 *10(Ah)+3*100(64).......+n разряд*n-поряд
вообщем можно делать и наоборот только надо сразу узнать скольки разрядное число........
...........експерементируй ........
замечания присылай на fmax@ukr.net
Ответ отправлен: 02.12.2002, 17:49
Отправитель: Max
Отвечает Bob Johnson
Доброе время суток, Konstantin!
Если числа целые - тут много раз алгоритмы проходили. Один из них:
1. Результат = 0
2. Взять новую цифру числа (слева направо). Если достугнут конец числа - выход из алгоритма. Если нет - результат = результат*10 + новая цифра (не код, а сама цифра, т.е. - 48).
3. goto 2.
Если вещественные - тут тебе надо будет потрудиться - представить все возможные варианты представления числа и посмотреть, что можно для этого придумать.
Ответ отправлен: 02.12.2002, 23:46
Отправитель: Bob Johnson
Отвечает DiGiT[old]
Доброе время суток, Konstantin!
Вообще то fscanf(..), а на асме, то полистай архив это самый распространенный вопрос, лабы то нужно самим делать :((
Ответ отправлен: 03.12.2002, 08:49
Отправитель: DiGiT[old]
Вопрос № 2011 |
Многоуважаемые эксперты!!! Давно наболел вопрос. Мне очень интересно можно ли програмировать на ассемблере под win не используя апишные библиотеки. Я так думаю когда пишут ось т. е. программируют с нуля не ссылаются же ни накие стандартные функции (сервисы). И вообще когда пишут ось как это называется программирование под ДОС или иначе. Попутно хочу поиметь от Maverickа трактовку всех команд ассемблера (вопрос №1956). С уважением yuran. Зараннее благодарю.
Вопрос отправлен: 02.12.2002, 13:51
Отправитель: yuran (yuran@male.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Здравствуйте, yuran!
В общем случае - нет. Если сильно извратиться, то под 9х еще теоретически можно, а под НТ системы даже теоретически нельзя.
Когда ось пишут - это совсем другое дело и используются функции биоса, порты.
Ответ отправлен: 02.12.2002, 14:15
Отправитель: masquer
Отвечает Maverick
Добрый день, yuran!
Ну можно же писать программы не испоьзуя досовских прерываний, например использывать прерывания биос, а можно вообще ничего не использовать, писать на чистом асме.
Можно создать свои прерывания, а можно написать свою операционку. Вот на днях надыбал доков на эту тему, ничего сложного, так что в перспективе OS Maverick 2003 или 2080 :))
Шутка, но на самом деле ничего сверхсложного нет.
Кидаю тебе описание команд до 486.
Ответ отправлен: 02.12.2002, 14:33
Отправитель: Maverick
Отвечает Ayl
Приветствую Вас, yuran!
Когда пишут ось, то это так и называется - писать ось. А писать ось под ось - это уже изврат. В лучшем случае под ось пишут расширитель (типа DOS4GW) или графическую оболочку (Windows 1.x - 3.x).
Насчет программирования под Win без API - можно, но надо ли? Ты будешь писать под DOS работу с файлами без DOS'овских функций? Хотя это вполне реально. Можно даже без BIOS'а :-)
Ответ отправлен: 02.12.2002, 14:39
Отправитель: Ayl
Отвечает ASMодей
Приветствую Вас, yuran!
Конечно можно, вся беда в том, что винда в большинстве случаев
запрещает напрямую работать с внутренними и внешними устройствами,
для этого все равно придется использовать вызов функций API.
Кстати, когда пишут ось, все равно используют стандартные сервисы,
правда, из BIOSа.
Ответ отправлен: 03.12.2002, 17:21
Отправитель: ASMодей
Отвечает St
Привет, yuran!
1) Думаю совсем не используя не получится, микрософт не допустит такого :) , но можно в целях увеличение скорости не использовать некоторые из них, а делать такие операции самому - помню делал редактор (под win16) который (при проверки на производительность) заменял 30 кб букв А на буквы Б - так быстрее него эту операцию производил только Norton Editor под DOS, многие другие досовские и виндовые редакторы работали медленне (иногда в десятки раз), хотя в моей проге производилса достаточно сложный разбор текста, с проверкой на подстановочные знаки (типа как знаки Special при поиске и замене в Word). Дело было в том что я не положился на встроенный в Windows поиск в Edit окнах, а получив доступ к тексту в памяти сделал всё сам на ассемблере.
2) Это называется программирование оси :). Вы правы тогда обычно используют самое низкоуровневое программирование - порты, прерывания и тд. Однако это настолько сложно, что сделать что-либо подобное самому практически невозможно (хотя Linux свидетельствует об обратном :).
St
Ответ отправлен: 02.12.2002, 18:00
Отправитель: St
Отвечает keleb-glin
Доброе время суток, yuran!
Никто тебе не мешает кодить под Вынь без использования API, просто тогда тебе будут недоступны стандартные оконные функции. Зато во всём остальном остаётся полная свобода - хочешь - юзай ДОСовские функции, хочешь - не обращайся к системе, а работай с БИОСом и напрямую с оперативкой. Всё в твоих руках.
Ответ отправлен: 02.12.2002, 19:40
Отправитель: keleb-glin
Отвечает Bob Johnson
Здравствуйте, yuran!
Если ты пишешь свою операционную систему, которая имеет свои драйверы для работы со всем оборудованием (что у тебя есть), то можно не использовать никаких внешних функций. Но ты ведь хочешь программировать под win - тогда нет, т.к. как ты тогда вообще что-нибудь сделаешь (например, клавиатуру опросишь).
Если ты пишешь ось, то есть два варианта - либо она имеет свой собственный загрузчик, либо загружается из другой ОС. Например, виндовс 95 грузится из DOS, а вот ХР - имеет свой загрузчик. Соответственно, если твоя ось грузиться из другой оси - тогда в модуле загрузки ты используешь функции той (старой) оси. Но только в модуле загрузки, иначе получишь оболочку (вроде Питера Нортона).
Ответ отправлен: 02.12.2002, 23:46
Отправитель: Bob Johnson
Отвечает baldr
Добрый день, yuran!
Нет. Не используя вообще апишных библиотек ты не сможешь создать виндовое приложение. И вообще,
почему ты думаешь, что оно в таком случае должно быть виндовым, если не обращается ни к одному
сервису этой самой винды? Даже выделяя память под твою прогу вызывается целая куча системных
функций, а при завершении работы ты еще больше вызываешь! Да и даже вывести стандартный
messagebox ты не сможешь, потому что и рисовать ты не сможешь! Вот как!
Мне очень польстило, что программирование под DOS назвали "написанием оси" :)... Нет, ОС
можно писать из любой другой операционной системы (даже на бумаге карандашом можно! :) ), но
только там много всяких ограничений. Там ты будешь (если, конечно, возьмешься!) сначала
обращаться к функциям BIOS, а потом, когда создашь свои функции - через порты ввода/вывода
с железом и процессором напрямую.
Ответ отправлен: 03.12.2002, 00:39
Отправитель: baldr
Отвечает DiGiT[old]
Здравствуйте, yuran!
Нда... Ты под винь ничего не сделаешь без апи, даже завершиться. Правда если ты прикладную прогу пишешь.
Когда пишут ОС(я имею ввиду не типа доси), то ее пишут под PMode, а там когда в него переходишь необходимо все делать с нуля :)) (кайф для ассемблерщика).
Ответ отправлен: 03.12.2002, 08:47
Отправитель: DiGiT[old]
Отвечает Portnov
Добрый день, yuran!
Можно-то оно можно, другой вопрос, что ничего умного вы таким способом не напишете. Так, чтобы создать окно, нужно определенные структуры прописать в системной области памяти, а пользовательскую программу туда не пустят, для этого нужны системные привелегии, которые есть у kernel32.Dll, в которой реализована ф-ция CreateWindow[Ex].
Теперь про написание оси. Видите ли, ДОС - это ось (Дисковая ОСь расшифровывается аббревиатура). Так что писать ось под ДОС- это ерунда. Когда пишут ось, это называется системное программирование. При этом все равно используют функции, которые написаны до того - ф-ции BIOS'а.
ЗЫ. Поиметь трактовку вам вряд ли дадут - мало ли кто кого хочет поиметь :)
С уважением, Portnov.
Ответ отправлен: 03.12.2002, 19:39
Отправитель: Portnov
Отвечает Dark_Lord
Здравствуйте, yuran!
Начну с конца, когда пишут ось, то работают с портами в/в, так как любое действие происходит именно через них! А на счёт программирования под Windows без API, теоретически можно, но нафиг кому нужно!
Ответ отправлен: 03.12.2002, 19:40
Отправитель: Dark_Lord
Вопрос № 2012 |
эксперты и неэксперты, нужно что бы пользователь вводил только числа, и ничего не происходило, если он жмет другую клавишу.
т.е. надо что-то вроде этого
cmp al,'0'
jb povtor
cmp al,'9'
ja povtor
go:
....................,
и чтоб не одно число, а штук 5
не знаю какое прерывание надо использовать, хелп...
Вопрос отправлен: 02.12.2002, 15:33
Отправитель: kasko
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Приветствую Вас, kasko!
А нету прерывания. Надо посимвольно, например так:
r:
xor ax, ax
int 16h
cmp al, '0'
jb r
cmp al, '9'
jg r
stosb
jmp r
Надо только еще обработать окончание ввода.
Перед этим фрагментом надо установить es:di на буфер, куда будет помещен ввод пользователя...
Ответ отправлен: 02.12.2002, 15:54
Отправитель: Ayl
Отвечает Eugene
Добрый день, kasko!
Например так:
m1:
mov ah, 8
int 21h
cmp al, 0dh ;enter
je exit
cmp al, '0'
jb m1
cmp al, '9'
jg m1
mov dl, al
mov ah, 2
int 21h
jmp m1
exit:
Пользователь будет вводить числа до опупения, пока не нажмёт [enter].
Ответ отправлен: 02.12.2002, 15:54
Отправитель: Eugene
Отвечает Sensey
Доброе время суток, kasko!
Дык что-то этого же и напиши!
Вводи посимвольно число.
С помощью ф-ции 01 прерывания 21h
Ответ отправлен: 02.12.2002, 15:47
Отправитель: Sensey
Отвечает Max
что-то типа такого алгоритма
mov ah,10h
int 16h
mov si,offset number
mov cx,10
m1: cmp al,[si]
jz ok_key
inc si
loop m1
error
............................
ok_key:
..................
number db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
Ответ отправлен: 02.12.2002, 17:27
Отправитель: Max
Отвечает ASMодей
Здравствуйте, kasko!
Заменять обработчик прерывания от клавиатуры своим здесь несколько
неудобно, так как если понадобится ввести строку, то будут вводиться
по-прежнему только цифры. Поэтому здесь лучше создать свою процедуру
ввода, в которой символы будут вводиться по одному (например с помощью
INT 16h, AH=0) и ненужные символы будут отсеиваться.
Ответ отправлен: 03.12.2002, 17:21
Отправитель: ASMодей
Отвечает Maverick
Приветствую Вас, kasko!
mov ah,10h
int 16h
Пиши подробнее что тебе надо, а то что то я недопонял.
Ответ отправлен: 02.12.2002, 16:01
Отправитель: Maverick
Отвечает keleb-glin
Доброе время суток, kasko!
Заюзай функцию 10h прерывания int 16h. Она запросит нажатие клавиши. После чего в al будет ascii код. Если в al будет 0, юзер нажал одну из специяльных клавиш ( F1-F12 и какие-то ещё), ah будер расширенный код. Но тебя интересует al. Его значение должно лежать между '0' и '9', т.е между 48 и 57 включительно. Соответственно:
Приложение:
Ответ отправлен: 02.12.2002, 19:37
Отправитель: keleb-glin
Отвечает Bob Johnson
Приветствую Вас, kasko!
Прерывание ввода данных посимвольно, например:
int 21h, func 01h
int 21h, func 08h
Обе функции ожидают ввода символа пользователем.
Ответ отправлен: 02.12.2002, 23:46
Отправитель: Bob Johnson
Отвечает DiGiT[old]
Здравствуйте, kasko!
для реального режима int 16h
Ответ отправлен: 03.12.2002, 08:44
Отправитель: DiGiT[old]
Вопрос № 2013 |
Доброго времени суток, господа.
Я опять побираюсь сырцами. Надеюсь, не откажете в исходнике программы, рисующей фрактальный папоротник.
P.S.: Алгоритм можно не приводить, я его прекрасно знаю... У меня просто критически не хватает времени на написание. К тому же, программинг под дос я местами подзабыл.
З.Ы.: Пиво гарантирую...;-)
Вопрос отправлен: 02.12.2002, 16:42
Отправитель: Gibbel (Gibbel@narod.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Beeblebrox
Здравствуйте, Gibbel!
http://beeblbrx.narod.ru/temp/PIXEL_FR.ZIP
Ответ отправлен: 02.12.2002, 18:57
Отправитель: Beeblebrox
Отвечает Portnov
Здравствуйте, Gibbel!
На асме нету. Могу дать на Паскале. Если надо, пишите portnov@mdv.ru
Ответ отправлен: 03.12.2002, 19:43
Отправитель: Portnov
Вопрос № 2014 |
Уважаемый Bob Johnson, я отслеживаю все ответы по данной рассылке. Очень интересные ответы на вопросы. Я сам начинающий программер по АСМу. Очень много вопросов возникает и мало получаю ответов. Поэтому, если не затруднит, то пришлите мне тоже лабораторные по Ассемблеру. Мой адрес:
selfpolice@e-mail.ru
С уважением, Анатолий
Приложение:
Вопрос отправлен: 02.12.2002, 19:19
Отправитель: Анатолий
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Приветствую Вас, Анатолий!
Во-во, Bob у тебя ящик еще не треснул :)
Спасибо за лабы.
Люди, вы что думаете во всех универах одинаковые программы?
В этих лабах нет ничего необычного.
:))
Ответ отправлен: 03.12.2002, 06:10
Отправитель: Maverick
Отвечает Bob Johnson
Доброе время суток, Анатолий!
Ok.
P.S. Если вопросы возникают, ты их задавай... А то пройдет время и задать вопрос хотеться перестанет. Так сказать импотенция к изучению. (на лекциях часто бывает).
Ответ отправлен: 02.12.2002, 23:46
Отправитель: Bob Johnson
Отвечает baldr
Здравствуйте, Анатолий!
Мне кажется, что наша рассылка все больше превращается в место, где скоро весь рунет будет
просить лабы у Bob Johnson'а! :(
Что-то это начинает надоедать! Так вот, ув. Bob Johnson! Да выложи ты эти несчастные
лабы на каком-нибудь сайте!!
Ответ отправлен: 03.12.2002, 00:39
Отправитель: baldr
Вопрос № 2015 |
Привет All!
Сразу СОРРИ за оффтопик.
Нужен сайс под ХР. Какая нужна версия(отдельно сайс или Driver Studio)? И еще, на каких cd он может быть(там с какими нибудь C++ или он на отдельном cd).
Заранее благодарен.
Вопрос отправлен: 02.12.2002, 20:07
Отправитель: Kiselev (kiselev@inbox.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Приветствую Вас, Kiselev!
Версии 2.6 или 2.7 (DriverStudio). На дисках может быть на любых. Мне некоторое время назад попался диск что-то вроде "Все для С++". Там был MS VC++ (SP3), Borland C++ Builder 5 и DriverStudio (не помню версии) - нет, вот посмотрел, там только SoftIce 4.05. для 9х.
Ответ отправлен: 03.12.2002, 18:04
Отправитель: Bob Johnson
Отвечает Gibbel
Доброе время суток, Kiselev!
Под XP стабильно работают Driver Studio 2.6 и 2.7
Ответ отправлен: 03.12.2002, 09:50
Отправитель: Gibbel
Вопрос № 2016 |
Только пытаюсь программировать на АСМе. Но вот такой напутствующий вопрос попался. 1) АСМе программируют под определенный процессор. Так в чем отличие програмиррования под I80x86 & Pentium 166MMX, к примеру. 2) Как правильно выбрать те адреса дискового пространства, к торым я бы хотел обратиться. 3) Как использовать прерывания БИОСа для процессоров указанных выше. 4)Посните логику принципов построения программ на АСМе для какого-нибудь процессора начиная например от Pentium 166. Извините, что задаю на ваш взгляд очень глупые вопросы, но никак не могу понять основные принципы и как они взаимодействуют. Литература по старым есть, но применительно к новым камням пристроить не могу. Заранее благодарен!
С уважением ко всем, Duser.
Вопрос отправлен: 02.12.2002, 20:11
Отправитель: Duser
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Приветствую Вас, Duser!
Добавлю только что MMX - это не только добавление новых команд, а возможность использования 8 64-разрядных регистров (которые собственно отображаются на регистры сопроцессора), плюс возможность одновременного исполнения нескольких инструкций за такт...
Ответ отправлен: 03.12.2002, 13:47
Отправитель: masquer
Отвечает Bob Johnson
Добрый день, Duser!
1. В pentiume добавлены новые команды, новые регистры (ммх), соответственно возможностей для написания программ больше. Но все интеловы дети совместимы сверху вниз, т.е. на вот этом pentiume можно выполнять программу для i8086.
2. Создать файл и записывать в него то, что хочешь.
3. mov ax, ????
mov dx, ????
mov cx, ????
...
int ???
4. Точно также, как и для 8086, только укажи компилятору о процессоре:
.586
.mmx
(так поймет только tasm32, простой 16-разрдный асм, скорее всего, лишен mmx)
Ответ отправлен: 03.12.2002, 18:04
Отправитель: Bob Johnson
Отвечает Maverick
Доброе время суток, Duser!
1.Ну во первых, в последующих процессорах добавляются новые команды, в 166MMX добавились расширенные команды MMX.
2.Есть прерывание Биос int 13h
3.Так же как и на других.
4.А какая логика, просто ты должен четко представлять себе архитектуру процессора и распределение адресного пространства.
P.S. Вопросы очень общие, поэтому и кривоватые ответы. :)
Ответ отправлен: 03.12.2002, 06:10
Отправитель: Maverick
Отвечает ASMодей
Доброе время суток, Duser!
В новых процессорах все старое осталось практически неизменным,
иначе программы на них работать просто не смогли бы. Единственно,
что в них изменилось - это добавились новые команды, флаги, регистры и
режимы работы.
Ответ отправлен: 03.12.2002, 17:22
Отправитель: ASMодей
Отвечает Broken Sword
Доброе время суток, Duser!
Все, о чем пойдет речь ниже, касается только процев Интел.
Значит так. Про совместимость сверху вниз слыхал? Так вот, ЛЮБАЯ прога, написанная для 80x86 ДОЛЖНА запуститься и на четвертом пне. Наоборот - естественно не проканает.
Это первый момент, который важно уяснить... :)
Второй момент. Вот например MMX. Это просто НАБОР новых команд, и ничего более.
А по большому счету, со времен 80x86 и до IV пня произошла лишь ОДНА ЕДИНСТВЕННАЯ революция: защищенный режим. Все. Все остальное - новые наборы команд, более высокая тактовая частота, конвееризация, кэш, увеличение разрядности адресной шины и т.п. - это все ерунда.
Так что запомни: в 286 появился защищенный режим, а в 386 - 32-х разрядные регистры. С тех пор, до сегодняшнего дня НИЧЕГО ПРИНЦИПИАЛЬНО ВАЖНОГО и НОВОГО не придумали (не считая вышеперечисленной ерунды).
Теперь, в вопросе № 4 ("...Посните логику принципов построения программ на АСМе для какого-нибудь процессора начиная например от Pentium 166...) изначально заложена глупость, потому как, во первых, как я уже говорил выше, никаких принципиальных отличий 386 от Pentium IV не существует, а во вторых, какая еще логика принципов построения? :)
Конечно, вот совсем недавно (2 года назад) на арену выполз итаниум. Этот проц, хоть и совместим СВЕРХУ вниз, имеет ПРИНЦИПИАЛЬНО другую архитектуру и практически ВСЕ в нем переделано с НУЛЯ.
p.s. прерывания БИОС-а стандартны для всех процев и не морочь себе голову этим.
Для человека, который хочет программить на асме в реальном режиме, идеальный вариант - Интел 186, а для тех, кто хочет попробовать в защищенном режиме - 386 хватит с головой. Остальное - излишки и мещанство.. )
Ответ отправлен: 02.12.2002, 21:03
Отправитель: Broken Sword
Отвечает baldr
Приветствую Вас, Duser!
И совсем это не глупые вопросы, а очень даже правильные. Кажется, таких вопросов у нас еще не
было, а многие путаются.
Так вот... Разница программирования под различные процессоры небольшая, если Вы не используете
особенности этих процессоров. Все более старшие процессоры поддерживают все команды младших.
Однако, с каждым процессором появляются новые инструкции, которые призваны более оптимально
выполнять наиболее часто встречающиеся микродействия, которые сами по себе достаточно медленны.
В основном сейчас стремятся увеличить скорость выполнения инструкций и количество "параллельно"
выполняемых "потоков". Например, для более быстрой работы со строками (сравнение, перемножение
массивов данных в памяти) существуют в PII (и старше) специальные инструкции, которые, честно
говоря, все равно мало кто использует - только производители драйверов, супероптимизированных
прог и монстры-игрописатели. Прерывания BIOS? Хм.. Да практически никак. Прерывания больше
нужны, если упрощенно, для взаимодействия между программой и драйвером устройства или операционной
системой. Процессор тут особой роли не играет. Правда, тут надо было бы рассказать про реальный
и защищенный режимы процессора, но тогда надо целую книжку писать.
В общем, мне кажется Вам следует немного почитать о самой архитектуре процессоров. Тогда станет
все более понятно. Здесь же мы не сможем объяснить сразу все - только если у Вас возникнут
конкретные вопросы, мы сможем направить на верный путь.
Ответ отправлен: 03.12.2002, 00:40
Отправитель: baldr
Отвечает Max
Доброе время суток, Duser!
Все процессоры стоящие в переди "линии эволюции" включают в себя новые команды, регистры,новые функции BIOS, но они все сохраняют совместимость.Логика построения программы для любого процессора из Х86 и совместимых будет работать на всех процессорах произведенных позже. Но мала вероятность того что данная прога не будет работать на более ранних процах, если конечно она не будет использовать те команды которые не сущ. в ранниз процессорах.
Так же и с BIOSом , все совместимо (ну почти все). Запомни если ты собрался программировать под какой либо опред. процессор и будешь использовать не стандартые процедуры то ты обязательно должен изучить архитектуру этого процессора.Например MMX, енто чисто Pentium -мовская технология ни в 486 ни в 386 её нет , а уж тем более её нет в 286.
Так что сначала изучи архитектуру своего проца(адресацию,команды , BIOS), а потом берись за программинг.
Ответ отправлен: 03.12.2002, 03:56
Отправитель: Max
Отвечает DiGiT[old]
Приветствую Вас, Duser!
Во первых это разные процессоры. так как разрядность разная 16 и 32. Во вторых набор команд другой. Хотя обратная совместимость есть.
2) не понятно что значит ПРАВИЛЬНО.
3) команда int xx
4) Сам бы поюзал ибо не видел кроме ПС нифига :(((
Ответ отправлен: 03.12.2002, 08:43
Отправитель: DiGiT[old]
Отвечает keleb-glin
Добрый день, Duser!
Реально кодинг под 8086 почти ничем не отличается от кодинга под Пни. Просто чем новее проц, тем больше у него функций, которые несколько облегчают программирование.
А вот остальные твои вопросы слишком обширны, чтобы обсудить их в одном письме. Прерываний БИОСа существует много ( кстати обращаются к ним как к обычным, например - 21h ).
Насчёт идеологии - она одна - будь внимательнее, читай книги, учись, стремись к лучшему.
Насчёт старых книг - почитай пока их. Для кодинга под ДОС они подойдут. А вообще купи себе Юрова или Зубкова, получай рассылку, соберись вместе с другими ассемблерщиками. Лазай по Инету.
Всё будет хорошо.
Все люди будут жить долго и счастливо и умрут в один день :)
Ответ отправлен: 03.12.2002, 20:19
Отправитель: keleb-glin
Вопрос № 2017 |
Доброго времени...
Людиииииииии? Жизнено важно:
Как записать в файл уже созданный до этого,какой либо прогой.
Заранее спосибочки
Вопрос отправлен: 02.12.2002, 21:31
Отправитель: filoZof (filosof@land.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, filoZof!
Указываешь соответственные флаги при открытии файла.
Ответ отправлен: 03.12.2002, 18:04
Отправитель: Bob Johnson
Отвечает Max
Здравствуйте, filoZof!
ah=40h
bx=дескриптор файла
cx=число байт бля записи
ds:dx=сегмент:относительный_адрес буфера
int 21h
если выполненно флаг переноса=сброшен
ax=число переданных байт
Флаг переноса=установлен
AX=код ошивки
Ответ отправлен: 05.12.2002, 21:34
Отправитель: Max
Отвечает DiGiT[old]
Добрый день, filoZof!
Открываешь редактором, лучше хекс и дописываешь. :))
А если серьезно, то хоть бы ОС указал.
Ответ отправлен: 03.12.2002, 08:39
Отправитель: DiGiT[old]
Отвечает Maverick
Добрый день, filoZof!
Конкретнее плиз, дос-вин плиз, кусок кода плиз...
Ищешь файл 4eh.
Открываешь файл 3dh.
Пишешь в файл 40h.
Закрываешь файл 3fh.
DOS.
Ответ отправлен: 03.12.2002, 06:10
Отправитель: Maverick
Отвечает ASMодей
Доброе время суток, filoZof!
Как, как - открываешь файл, ставишь указатель в конец файла,
пишешь в файл, закрываешь файл.
Для ДОСа используй INT 21h с AH=3Dh,42h,40h,3Eh.
Для Windows - CreateFile, SetFilePointer, WriteFile, CloseHandle.
Ответ отправлен: 03.12.2002, 17:22
Отправитель: ASMодей
Отвечает Ayl
Приветствую Вас, filoZof!
Открыть для чтения и записи и писать.
Для DOS:
Прерывание 21h
Функция 3dh
Параметры:
AL = 2
DS:DX = имя файла
Ответ отправлен: 02.12.2002, 23:34
Отправитель: Ayl
Отвечает Gibbel
Доброе время суток, filoZof!
Поскольку не указана OS, то напишу примерный алгоритм...
Если тебе требуется дописать в файл, то открываешь файл на запись, перемещаешь указатель на конец файла, пишешь в файл.
Если необходимо переписать файл - создаешь файл, пишеш в него...
Ответ отправлен: 03.12.2002, 09:54
Отправитель: Gibbel
Отвечает Sensey
Добрый день, filoZof!
Для ДОС:
Открываешь файл
AH=3D
AL=(0-read 1-write 2- read-write)
DS:DX-Namefile(ASCIIZstring)
Return AX-handle
Перемещаешь указатель:
AH=42h
BX=handle
CX:DX distance to move file pointer: offset is (CX * 65536) + DX
AL subfn: 0 = move pointer to start of file + CX:DX
1 = move pointer to current position + CX:DX
2 = move pointer to end of file + CX:DX
Пишешь:
AH 40H
BX file handle
CX number of bytes to write (Note: 0 means truncate the file)
DS:DX address of a buffer containing the data to write
Все взято с TechHelp - tuj можно взять на сайте www.shegeda.chat.ru
Ответ отправлен: 03.12.2002, 10:49
Отправитель: Sensey
Отвечает Dark_Lord
Добрый день, filoZof!
Просто гениально! В какой ос и, вообще, о чём речь?
Ответ отправлен: 03.12.2002, 19:44
Отправитель: Dark_Lord
Отвечает keleb-glin
Здравствуйте, filoZof!
Нормальные люди для этого юзают функции для работы с файлом через Хэндл, психи - через FCB. FCB поддерживался самым первым ДОсрм, а Хэндлы появились во втором.
Обсудим работу через Хендл:
Сначала файл надо открыть - ф-кция 3dh ( прерывание 21h даллее специально указывать не буду ).
al - тип доступа. Для тебя - запись - 1
ds:dx - строка с именем файла, заканчивающаяся ascii - кодом 0. Напр. -
name db 'command.com', 0
После в ax получишь Хэндл. А вот если будет установлен cf, в ax - код ошибки.
Произведём запись:
ф-кция 40h
в cx - кол-во записываемых байт.
ds:dx - данные для записи.
bx - хэндл
Опять, если установлен сf - в ax - код ошибки.
Приложение:
Ответ отправлен: 03.12.2002, 20:12
Отправитель: keleb-glin
Вопрос № 2018 |
Здравствуйте, Эксперты !
В программе определенны переменные QTY как DB, VALUE как DW и PRICE как DW.
программа написана под DOS
1. Каким образом нужно указать в программе MAINPRO, что переменные доступны другим программам.
2. Каким образом в подпрограмме указать, что три переменные определенны в другом месте.
Вопрос отправлен: 02.12.2002, 21:58
Отправитель: Саша
[Следующий вопрос >>] [Список вопросов]
Отвечает DiGiT[old]
Здравствуйте, Саша!
1. :)) Указать смещение. А вообще это не деятельность программы это деятельность ОС.
2. extern но если это другое место obj файл и оно нужно при компоновке.
Ответ отправлен: 03.12.2002, 08:38
Отправитель: DiGiT[old]
Отвечает Ayl
Приветствую Вас, Саша!
С программой на каком языке связка?
Для Паскаля это невозможно, он не поддерживает объявления переменных во внешнем модуле.
Для Асма:
в твоей программе пишешь:
PUBLIC QTY, VALUE, PRICE
в MAINPRO.ASM:
EXTRN QTY:BYTE, VALUE:WORD, PRICE:WORD
Для Си:
в твоей программе пишешь:
PUBLIC _QTY, _VALUE, _PRICE
в MAINPRO.C:
extern unsigned char QTY;
extern int VALUE;
extern int PRICE;
Ответ отправлен: 02.12.2002, 23:46
Отправитель: Ayl
Отвечает St
Привет, Саша!
0) ДОС однозадачная система - единственное что можно
использовать параллельно с текущей программой - резиденты. 1) Переменные одной программы не могут использоваться другой.
2) Я использую TASM.
Переменные бывают глобальные - объявляются в сегменте данных (например: var1 dw 123) и используются в любом месте программы и локальные - объявляются и используются только внутри процедуры (так в ассемблере называются подпрограммы и функции). Локальные размещаются в стеке и не могут изначально содержать какое-либо значение, они объявляются с указанием слова Local и символами @@ вначале (например: Local @@var1:word, @@var2:dword). К содержимому обоих можно обращаться одинаково: mov ax,var1 и mov ax,@@var2, но вот адреса глобальной можно указывать и через lea ax,var1 (lds, les...) и через mov ax,offset var1, а локальной только lea ax,@@var1 (lds, les...).
St
Ответ отправлен: 02.12.2002, 23:50
Отправитель: St
Отвечает Dark_Lord
Добрый день, Саша!
Не думаю, что под дос можно запустить одновременно две программы, но нужно использовать мультиплексорное прерывание
Ответ отправлен: 03.12.2002, 19:45
Отправитель: Dark_Lord
Вопрос № 2019 |
Здравствуйте, Эксперты !
Регистры :
AX и BX содержат знаковые данные
СX и DX – беззнаковые.
Какие команды служат для безусловного перехода следующих проверок:
программа под дос, 16-ти разрядная. (если некоректно что-то написал, прошу исправить)
1. Значение в DX больше, чем в CX ?
2. Значение в BX больше, чем в AX ?
3. CX содержит нуль ?
4. Было ли переполнение ?
5. Значение в BX равно или меньше, чем в AX ?
6. Значение в DX равно или меньше, чем в CX ?
Вопрос отправлен: 02.12.2002, 21:58
Отправитель: Михаил
[Следующий вопрос >>] [Список вопросов]
Отвечает DiGiT[old]
Здравствуйте, Михаил!
Вранье:)).
Все вранье. Переполнение может быть, когда у тебя 16 разрядный регистр, в нем значение ffff и ты прибавляешь 1.
Компьютер не понимает положительное ли число или отрицательное. Правда для умножения знаковых чисел разные команды(маздай само по себе).
Купи книгу по асму.
Ответ отправлен: 03.12.2002, 08:36
Отправитель: DiGiT[old]
Отвечает ASMодей
Здравствуйте, Михаил!
Наверное для условного перехода, ведь условие все-таки
проверяется:
1. cmp dx,cx
ja ...
2. cmp bx,ax
jg ...
3. jcxz ...
4. jc ...
5. cmp bx,ax
jle ...
или
cmp ax,bx
jg ...
6. cmp dx,cx
jbe ...
или
cmp cx,dx
ja ...
Ответ отправлен: 03.12.2002, 17:23
Отправитель: ASMодей
Отвечает Bob Johnson
Добрый день, Михаил!
1. cmp dx, cx
ja @@m
2. cmp bx, ax
jg @@m
3. jcxz @@m
4. jo @@m
5. cmp bx, ax
jle @@m
6. cmp dx, cx
jbe @@m
Ответ отправлен: 03.12.2002, 18:04
Отправитель: Bob Johnson
Отвечает Maverick
Приветствую Вас, Михаил!
В приложении.
Приложение:
Ответ отправлен: 03.12.2002, 06:10
Отправитель: Maverick
Отвечает Ayl
Добрый день, Михаил!
Безусловного перехода? Такая команда одна - JMP.
А, ты имел в виду переход по одному из следующих условий! :-)
Чичас...
1. cmp dx, cx
ja L ; переход, если dx > cx (беззнаковое сравнение)
2. cmp bx, ax
jg L ; переход, если bx > ax (знаковое сравнение)
3. or cx, cx ; можно and cx, cx; test cx, cx
jz L ; переход, если cx = 0
4. jo L ; переход, если переполнение
5. cmp bx, ax
jle L ; переход, если bx <= ax (знаковое сравнение)
6. cmp dx, cx
jbe L ; переход, если dx <= cx (беззнаковое сравнение)
Пусть выполнена команда cmp ax, bx. Тогда возможные операторы условных переходов:
1. jb/jnae (Jump Below/Jump Not Above or Equal) - ax < bx
2. jae/jnb (Jump Above or Equal/Jump Not Below) - ax >= bx
3. je/jz (Jump Equal/Jump Zero) - ax = bx
4. jne/jnz (Jump Not Equal/Jump Not Zero) - ax <> bx
5. jbe/jna (Jump Below or Equal/Jump Not Above) - ax <= bx
6. ja/jnbe (Jump Above/Jump Not Below or Equal) - ax > bx
7. jl/jnge (Jump Less/Jump Not Great or Equal) - ax < bx
8. jge/jnl (Jump Great or Equal/Jump Not Less) - ax >= bx
9. jle/jng (Jump Less or Equal/Jump Not Great) - ax <= bx
10. jg/jnle (Jump Great/Jump Not Less or Equal) - ax > bx
Варианты 1, 2, 5 и 6 для беззнаковых сравнений, 7 - 10 - для знаковых
Ответ отправлен: 03.12.2002, 00:08
Отправитель: Ayl
Отвечает Sensey
Здравствуйте, Михаил!
Это что - тест? :)
Напиши мыло, можно персонально - вышлю доку по командам Асма.(70 кил)
Ответ отправлен: 03.12.2002, 11:19
Отправитель: Sensey
Отвечает Dark_Lord
Приветствую Вас, Михаил!
1. cmp dx,cx
ja
2. cmp bx,ax
jg
3. test cx,cx
jz
4. jo
5. cmp bx,ax
jle
6. cmp dx,cx
jbe
Ответ отправлен: 03.12.2002, 19:49
Отправитель: Dark_Lord
Отвечает keleb-glin
Приветствую Вас, Михаил!
1:
cmp dx, cx
ja Goto
2:
cmp bx, ax
jg Goto
3:
cmp cx, 0
je Goto
4:
Смотря какое переполнение:
если ты контролируешь изменение знакового бита, то по of:
jo Goto
если ты про перенос и заём в/из несуществующих старших битов, то по cf:
jc Goto.
5:
cmp bx, ax
jle Goto
6:
cmp dx, cx
jbe Goto
Ответ отправлен: 03.12.2002, 19:57
Отправитель: keleb-glin
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (39) C / C++ (28) Perl (6) Delphi (19) Pascal (22) Basic / VBA (9) Java / JavaScript (12) PHP (7) MySQL / MSSQL (8) |
Пользователю Windows 95/98/Me (32) Windows NT/2000/XP (21) "Железо" (28) Поиск информации (15) |
Администратору Windows NT/2000/XP (13) Linux / Unix (16) |
Юристу Гражданское право (9) Семейное право (3) Трудовое право (5) КоАП (3) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||