Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru | - www.lycos.ru |
"Ассемблер? Это просто! Учимся программировать (FAQ)"
Выпуск № 250
от 20.04.2002, 02:05
Администратор: Калашников Олег
Сайт Администратора: Программирование на Ассемблере
Старейшины рассылки |
1. Broken Sword - ответов: 448. 2. Painbringer (нечто наподобие домашней страницы) - ответов: 384. 3. Sensey - ответов: 361. 4. DiGiT - ответов: 331. 5. Dron (Операционная система с нуля!) - ответов: 329. |
Вопрос № 19 |
Уважаемые эксперты!
Помогите, пожалуйста. Нужен развернутый ответ на вопрос "Использование внешних функций в Си", а я даже толком и не знаю, что это такое. Смотрел в книге, но ничего конкретного не нашёл. Буду благодарен, как за сам ответ, так и за ссылку на книгу и страницу, где про это написано. Может быть, сможете выслать сканированную страницу из книги на e-mail.
Отправитель: Andrey (afanasenko@tyt.by)
Вопрос отправлен: 15.04.2002, 00:03
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Gunner
Добрый день, Andrey!
Не могли бы вы поподробней сформулировать свой вопрос ?
Отправлено: 15.04.2002, 14:07
Отправитель: Gunner (регистрация: 14/04/2002, ответов на счету: 5)
Digital Infinity
Адрес: www.diginf.ru
111854092
Russia, Moscow
_______________
Отвечает GL
Добрый день, Lenka!
Задай повторно этот вопрос в подгруппу "Общие вопросы по программированию на Ассемблере под Win32", т.к. вопрос на эту тему и может в этой подгруппе найдётся знающий эксперт.
По поводу строки
PhoneNumberLen = $ - PhoneNumber - 1
- это расчёт длины строки PhoneNumber.
Мой ответ оцени как "Не считать за ответ", чтобы в рассылку не попал.
Отправлено: 16.04.2002, 13:24
Отправитель: GL (регистрация: 02/03/2002, ответов на счету: 54)
Амурская обл., Благовещенск
_______________
Отвечает User
Добрый день, Andrey!
Чтобы использовать в своей программе “внешние” функции, описанные в каком-нибудь другом модуле (файле), нужно ввести в программу прототипы функций. Тогда из прототипа компилятор получает сведения, сколько параметров, какого типа и в какой последовательности получает данная функция.
Если предполагается, что какие-то из описанных в модуле функций могут использоваться в других модулях, прототипы этих функций следует включать в заголовочный файл. Тогда в модулях, использующих данные функции, достаточно будет написать директиву #include <имя файла>, включающую данный заголовочный файл, и не надо будет повторять прототипы функций.
Объявлению функции могут предшествовать спецификаторы класса памяти extern или static. Спецификатор extern предполагается по умолчанию. К функциям, объявленным как extern, можно получить доступ из других модулей программы. Если же объявить как static, то доступ к ней из других модулей невозможен.
Если это то, что тебе нужно, IMHO, то об этом можно прочитать в любом учебнике по Си, Си++.
Отправлено: 16.04.2002, 14:52
Отправитель: User (регистрация: 08/04/2002, ответов на счету: 25)
Уфа
_______________
Отвечает Asmer
Добрый день, Andrey!
Скорей всего имелись ввиду API функции Оси. Справку о них найдешь на
любом сайте по программированию, а если туго и в напряг поищи на
апорте "API+функции", 1 страница, 3 ссылка сверху.
Удачи, Andrey!
Отправлено: 16.04.2002, 21:07
Отправитель: Asmer (регистрация: 12/04/2002, ответов на счету: 23)
LegION
Россия, Димитровград
Вопрос № 24 |
Здорово, товарищи эксперты!!!
Есть задачка: прочитать файл, к примеру 123.txt, с корневого каталога жесткого диска средствами BIOS.
Нужен листинг программы на асме.
Помогите, плз...
ЗЫ: размер файла - больше одного клястера (к примеру 100 кб).
Отправитель: Miloslawsky (Miloslawsky@ua.fm)
Вопрос отправлен: 15.04.2002, 08:37
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает GL
Здравствуйте, Anton!
Все нужные инклюды включены в пакет масма32. Поищи на http://hi-tech.nsys.by:8101/, по-моему в разделе компиляторов.
Отправлено: 15.04.2002, 18:12
Отправитель: GL (регистрация: 02/03/2002, ответов на счету: 54)
Амурская обл., Благовещенск
Вопрос № 21 |
Уважаемые эксперты!
Почему прога в приложении не работает как надо, не создает ключ?
Но замечательно работает, если данные из сегмента кода перенести в .data. Хоть это и не особо важно, но, по-моему, и в этом случае должно работать.
Заранее благодарен.
Приложение:
Отправитель: Rust_br (comrust@com.osu.ru)
Вопрос отправлен: 15.04.2002, 00:26
Подгруппа: Общие вопросы по программированию на Ассемблере под Win32
_______________
Отвечает Samodelkin
Добрый день, Bober!
Вот тебе кусочек текстухи, попробуй немного представить во что тебе обойдется программирование чтения-записи HDD на этом уровне... если охота не отпадет - напиши (с указанием мыла) я тебе всю текстуху кину:)
Приложение:
Отправлено: 15.04.2002, 11:27
Отправитель: Samodelkin (регистрация: 09/04/2002, ответов на счету: 38)
ICQ UIN#125903600
Иркутск
_______________
Отвечает masquer
Доброе время суток, Rust_br!
Секции .text (или в той, где твой код находится) поставь значение writable в характеристиках. Ну это если сильно печет.
Отправлено: 16.04.2002, 10:47
Отправитель: masquer (регистрация: 16/01/2002, ответов на счету: 104)
Украина, Николаев
_______________
Отвечает Asmer
Здравствуйте, Dark_Lord!
Насколько известно, что при вызывании Int 13h:
1.Сброс дисковых контроллеров. Вход: ah=00, dl=номер дисковода. Используется для обработки ошибок
2. Статус гибкого диска. Вход: ah=01, dl=номер дисковода. Воход: ah=байт статуса, используется битовая структура.
3. Чтение секторов. Вход: ah=02, al=число секторов, es=сегмент, bx=оффсет, ch=дорожка, cl=сектор, dh=номер головки/стороны, dl=номер дисковода. Выход: код. Примечание: es:bx=адрес буфера приема.
4. Запись в сектора. Вход: ah=03, al=число секторов, es=сегмент, bx=оффсет, ch=дорожка, cl=сектор, dh=номер головки/стороны, dl=номер дисковода. Выход: код. Примечание: es:bx=строки для записи.
5. Форматирование дорожки диска. Вход: ah=05, es=сегмент, bx=оффсет, ch=дорожка, dh=номер головки/стороны, dl=номер дисковода. Выход: код. Примечание: es:bx=адрес поля адреса дорожки.
Если хочешь, могу прислать очень подробный хелп по этим вещам.
Моя первая прога с этими функциями была адресована моему заклятому врагу. ;)
С дискетками! Прога порола нулевую дорожку и диск с содержащийся инфой, нельзя было востановить.
Месть удалась! Компиля, не поранься!(если учесть что то же можно делать с
винтом... но я не вандал ;)
Удачи, Dark_Lord!
Приложение:
Отправлено: 16.04.2002, 21:05
Отправитель: Asmer (регистрация: 12/04/2002, ответов на счету: 23)
LegION
Россия, Димитровград
Вопрос № 22 |
Уважаемые эксперты!
Вся надежда на вас!
1.Не могу нигде найти - как запустить напрямую макрос (Visual Basic, Excel 97/2000) из другой программы (особенно 1С:Предприятие) или просто из Windows (без предварительной загрузки программы Excel). Желательно это делать с передачей параметров.
2.Почему-то при загрузке в Excel (Внешние данные/Создать запрос) базы данных типа dBase (*.dbf) появляются в нечитаемом виде, хотя исходный файл записан в кодировке Windows.
С уважением – Александр
Отправитель: Александр
Вопрос отправлен: 15.04.2002, 00:38
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает ne0
Добрый день, Frank!
Поисковик : astalavista.box.sk - рекомендую.
Отправлено: 15.04.2002, 00:41
Отправитель: ne0 (регистрация: 07/04/2002, ответов на счету: 25)
Belarus, Grodno
_______________
Отвечает Blackeye
Здравствуйте, Frank!
WWW-Links: http://astalavista.box.sk/
http://www.cracks.ru
http://www.phrozencrew.org/
http://www.crackstore.com/cracking.htm
http://liaokai.myrice.com/cracks1e.htm
Отправлено: 15.04.2002, 06:22
Отправитель: Blackeye (регистрация: 15/02/2002, ответов на счету: 88)
URL: http://www.soft4master.h1.ru - Delphi, my programms...
Украина, Запорожье
_______________
Отвечает DivX
Доброе время суток, Frank!
Скажу по секрету :)... я захожу обчычно сюда http://www.esm.ru/obmen/cgi/filex.cgi
и не могу нарадоваться :)
Отправлено: 15.04.2002, 07:31
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 250)
_______________
Отвечает freeseacher
Доброе время суток, Frank!
Блин я уже запарился всем отвечать всем крякерам,хакерам, фрикерам и прочим *керам что xltcm нет и не будет никаких хакеров и вопросам по ним!!!!
Отправлено: 15.04.2002, 21:16
Отправитель: freeseacher (регистрация: 03/02/2002, ответов на счету: 76)
Тел.: 8(3832)366362
Новосибирск
_______________
Отвечает Tiger
Здравствуйте, Frank!
А что, ты уже сам не можешь найти? Неужели никак?
http://www.astalavista.box.sk
http://www.crack.ru
http://crczws.takehost.com/a.htm
http://www.daphouse.com
И много, много других!
Отправлено: 15.04.2002, 22:31
Отправитель: Tiger (регистрация: 28/12/2001, ответов на счету: 188)
URL: http://www.tigeer.narod.ru - Что-то вроде того
_______________
Отвечает наСИльник
Добрый день, Frank!
www.astalavista.box.sk-очень полезная ссылочка на креки
Отправлено: 17.04.2002, 17:40
Отправитель: наСИльник (регистрация: 27/02/2002, ответов на счету: 73)
ICQ#114552395
Russia, Orsk
_______________
Отвечает Александр
Привет Александр, не позорь моё честное имя эксперта.
1. Без запуска Excel в какой-либо форме это невозможно, если не обращаться напрямую к вызовам функций из соответствующих DLL-ей.
2. Скорее всего, кто-то открывал когда-то базу в ДОС-кодировке и Excel оставил этот параметр по умолчанию. Указывай, что это виндовская кодировка. К тому же если ты делаешь создать запрос, то Excel открывает базу не своими средствами, а средствами ODBC. Так что посмотри в панели управления настройки ODBC. Там почти наверняка алиас *.dbf настроен на ДОСовскую кодировку и какую-нибудь версию типа dBaseIII.
Отправлено: 19.04.2002, 18:29
Отправитель: Александр (регистрация: 28/12/2001, ответов на счету: 38)
Россия, Москва
Вопрос № 23 |
Здравствуйте, уважаемые эксперты.
Вопрос такой: как только запускаю какую-нибудь игру(3D action), компьютер(ОC:WinMe) виснет, а при нажатии Alt+Ctrl+Del раздаётся из динамика длинный гудок. Драйвера для видео(Savage 4) всякие пробовал ставить - не помогает.
Отправитель: no_noame
Вопрос отправлен: 15.04.2002, 08:37
Подгруппа: Модели, виды и типы компьютеров (hard)
_______________
Отвечает Dzik
Добрый день, no_noame!
Попробуй зайти в
Свойства экрана->Настройка->Дополнительно->Быстродействие
и подвигать бегунок в разные положения.
Отправлено: 15.04.2002, 08:51
Отправитель: Dzik (регистрация: 15/02/2002, ответов на счету: 34)
URL: http://www.gamefort.km.ru - Разработка игрушек
Новосибирск
_______________
Отвечает LAO
Приветствую Вас, no_noame!
Игры под DOS типа DOOM? Не любит ME DOS-программы. И драйвера здесь ни при чем.
Отправлено: 15.04.2002, 23:48
Отправитель: LAO (регистрация: 05/03/2002, ответов на счету: 101)
Россия, Москва
_______________
Отвечает x-gn
Приветствую Вас, no_noame!
А на "маму" "дрова" ставили? :)
Отправлено: 16.04.2002, 02:56
Отправитель: x-gn (регистрация: 28/12/2001, ответов на счету: 21)
ICQ UIN: 137252064
Россия, Гусиноозерск
Вопрос № 25 |
Здорово, товарищи эксперты!!!
Есть задачка: прочитать файл, к примеру 123.txt, с корневого каталога жесткого диска средствами BIOS.
Нужен листинг программы на асме.
Помогите, плз...
ЗЫ: размер файла - больше одного клястера (к примеру 100 кб).
Отправитель: Miloslawsky (Miloslawsky@ua.fm)
Вопрос отправлен: 15.04.2002, 08:38
Подгруппа: Работа с MASM/TASM
_______________
Отвечает Samodelkin
Добрый день, dec2000!
Это ты на своей машине на правах админа, а для удаленной, если на ней самой не установлен удаленный доступ и он не разрешен такому-то - ты никто
Отправлено: 16.04.2002, 09:33
Отправитель: Samodelkin (регистрация: 09/04/2002, ответов на счету: 38)
ICQ UIN#125903600
Иркутск
Вопрос № 125 |
Здравствуйте, эксперты!
помогите плз.Задали мне на учёбе написать програмку шоб все действия с матрицами делала, я её почти написал, а вот с оперделителем всё никак, запутался че по чём. Мнеб исходничек
иль проста алгоритм если не затруднит. оч нада (язык С++)
Отправитель: Cherniy (cherniy@hot.ee)
Вопрос отправлен: 10.04.2002, 00:31
Подгруппа: Оптимизация программ
_______________
Отвечает DiGiT
Доброе время суток, Cherniy!
Определитель считай так: своди ее методом гаусса к диагональной , а потом перемножай, иначе вычисление в лоб даст огромную ошибку при перемножении, даже тип double не спасет. А при том котором я рассказал погрешность не полезет, она будет всего лишь слаживаться.
Для примера: имеем тип double,погрешность если у тебя будет 10^-16*10^показатель степени данного числа, ты умножаешь его на 10 и погрешность увеличится. Вот и вся фича.
Отправлено: 10.04.2002, 07:38
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 331)
ICQ:133534725
Russia(),Student
_______________
Отвечает Gella
Доброе время суток, Cherniy!
а по какой формуле считать определитель? гаус, крамер, еще кто-нибудь? у меня есть несколько исходников, к сожалению, в основном на паскале. но если ты думаешь, что они смогут тебе помочь мыль на gella_a@hotmail.com.
в приложении метод гауса.
с уважением...
Приложение:
Отправлено: 12.04.2002, 01:46
Отправитель: Gella (регистрация: 14/02/2002, ответов на счету: 13)
ICQ#: 446907
Ukraine, Donetsk
Вопрос № 126 |
Здравствуйте, уважаемые эксперты (вопрос к Артёму Шегеде).
Предистория:
>Я написал резидент, который висит на int 08h и int 09h. Есть левый exe-шник.
>Существует ли разумная возможность запустить его из обработчика int 08h?
Я попытался воспользоваться советом эксперта Артёма Шегеды и повешаться на 21h.
Но у меня как не странно ничего не получаеться. Дело даже до загрузки проги (левой) не доходит. У меня обработчик пустой. Прога не то чтобы виснет, но система работает не совсем устойчиво (например ДОСНофигатор не могет прочитать какой то там файл и исчезают панельки). Так вот с перехватом других прерываний проблем нет, а 21h – не могу. Может есть какие-то секреты.
Я честно говоря озадачен.
Int_21h_proc proc far
pushf
call dword ptr cs:[Int_21h_vect]
iret
Int_21h_proc endp
Если повешать это на какое-нить другое прерывание – все работоет.
PS Это все творится под 98 мастдаем. Так надо.
Заранее благодарю.
Отправитель: Бадян (sba@litech.net)
Вопрос отправлен: 10.04.2002, 00:38
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Артём Шегеда
Доброе время суток, Бадян!
Ну, это тривиальная ошибка тех, кто перехватывает неаппаратные прерывания впервые. Я на такой вопрос уже отвечал... ВНИМАТЕЛЬНО ЧИТАЙТЕ РАССЫЛКУ ПЕРЕД ТЕМ, КАК ЗАДАТЬ ВОПРОС!
Но я по-прежнему остаюсь добрым, а посему:
Прехватывая всякие неаппаратные прерывания, не восстанавливайте слово состяния процессора в стеке. Это связано с тем, что оригинальные обработчики возврвщают флаг CF, а выполнив iret, вы его благополучно сбросите в неизвестное состояние. Лучше уж использовать retf 2. Эта инструкция сделает дальний возврат, но PSW из стека потеряется - что нам и нужно.
Кстати, прямые вопросы на эксперта можно задавать с помощью формы. А по мелочам - лучше по мылу.
Отправлено: 10.04.2002, 10:24
Отправитель: Артём Шегеда (регистрация: 28/12/2001, ответов на счету: 120)
URL: http://www.shegeda.chat.ru/ - Пристанище неодинокого программиста
x-USSR, Харьков
_______________
Отвечает Ayl
Доброе время суток, Бадян!
Ну, я что могу посоветовать - попробуй вызывать не через call, а через jmp. Все равно же нифига не делается!
А проблема может быть в том, что функции 21-го прерывания очень любят результат своего выполнения (т.е. была ошибка или все ок) возвращать через флаг CF. А при выполнении твоего кода после команды iret восстановятся флаги, которые были до вызова прерывания. Можем либо потерять произошедшую ошибку, либо, наоборот, вернуть несуществующую.
Соответственно, варианты действия такие (см. приложение)
Приложение:
Отправлено: 10.04.2002, 13:27
Отправитель: Ayl (регистрация: 28/12/2001, ответов на счету: 213)
Россия, Санкт-Петербург
Вопрос № 112 |
Добрый день!
Помогите разобраться!
У меня что-то стал комплюктор виснуть часто. Решил его отформатировать. windows 98. Жесткий диск разбит на два диска С и Д. Перебросил нужные файлы типа *.doc, *.pdf, и т.д. на диск Д. Отформатировал диск С. Взял я диск загрузочный с windows 98 и попытался установить, а он мне такое выдает "ЕММ386: обнаружена ошибка #1 в приложении по адресу С000:1В16. В целях минимальных потери данных драйвер ЕММ386 приостановил работу компьютера. Более подробные сведения можно найти в документации."
При помощи книги Фигурнова дописал в Config.sys и Autoexec.bat.
Autoexec.bat-
@ECHO ON
PROMPT $p$s
PATH C:\;C:\CD
mode con codepage prepare=((866) C:\windows\command\ega3.cpi)
mode con codepage select=866
key ru , , C:\windows\command\keybrd3.sys
LH MSCDEX.EXE /D:MSCD001 /M:8
rem boot
(boot я заремел так как не знаю зачем он.)
Config.sys -
DIVECE=C:\HIMEM.SYS
DEVICE=C:\EMM386.EXE noems
DOS=HIGH,UMB
DIVECEHIGH=C:\CD\atapi.sys /V /D:MSCD001
FILES=30
BUFFERS=40,0
DIVECE=C:\windows\command\DISPLAY.SYS con=(ega, , 1)
Contry=007,866,C:\windows\command\contry.sys
SHELL=C:\COMMAND.COM C:\ /E:512 /P
LASTDRIVE=Z
Вроде бы заработало. Потом поставил офис. Все значки, окна громадных размеров(первые минут 10 прикольно), просмотреть фильм не получается в нормальном цвете(видимо отсутствует какой-то драйвер-где его взять и как узнать что нужно?) Графика не поддерживается, пишет ошибка или в ужасном цвете.
При работе я часто файлы с расширением *.doc, перевожу в*.pdf, при попытке напечатать ранее готовый файл *.pdf выдает сообщение, что не хватает каких-то шрифтов. Так же нет звука на колонках.
Как с этими проблемами бороться?
Заранее спасибо,
Вадим
Отправитель: Вадим (wadim73@i.com.ua)
Вопрос отправлен: 09.04.2002, 14:47
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает ROM
Здравствуйте, Вадим!
Мда, ну и тяжелый же с тобой случай... :))))))))
Уж не знаю, что там у тебя за железо, да только виндовс не нашел нужных дров для видюхи и звука (по крайней мере).
Просто пойди в свойства системы и установи, че просят (рядом с устройством знак вопроса в кружочке). Поищи в дистрибах недостающие дрова.
ЗЫ: и не нажимай плз по 4 раза на отправить!
Отправлено: 09.04.2002, 19:23
Отправитель: ROM (регистрация: 31/03/2002, ответов на счету: 12)
ICQ 100276084
Russia, Kirov
Вопрос № 522 |
Здравствуйте уважаемые эксперты!
У меня такая проблема.При перезагрузке Win98SE на ноутбуке
сам включается встроенный микрофон.При этом возникает противный звук(писк),видимо, из-за близко расположенных встроенных колонок.Посоветуйте,как заставить комп сохранять настройки в "регуляторе громкости",а то я уже задобался каждый раз его(микрофон) отрубать.Переустановка Виндов ничего не дает.
Отправитель: Johnik
Вопрос отправлен: 20.02.2002, 13:58
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает 10ck
Добрый день, Johnik!
Отправлено: 20.02.2002, 14:17
Отправитель: 10ck (регистрация: 18/02/2002, ответов на счету: 43)
Россия, Нижний Новгород
_______________
Отвечает DiGiT
Доброе время суток, Johnik!
А винда автоматически сохраняет старые настройки регулятора громкости, если у тебя конечно не стоит на компе какоя нить другая прога, которая изменяет его.
Отправлено: 21.02.2002, 02:00
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 331)
ICQ:133534725
Russia(),Student
_______________
Отвечает Serik
Добрый день, Johnik!
Откройте прогу MSconfig и в автозагрузке отключите всё кроме TeskMon и ScanReg
Отправлено: 21.02.2002, 16:15
На момент выхода рассылки эксперт в базе не был найден либо недавно сменил пароль.
Форма отправки сообщения |
Заполните приведенную ниже форму для того, чтобы отправить вопрос. Дополнительную информации по пользованию формой для подписчиков и экспертов можно получить, нажав на знак вопроса в соответствующем разделе, при этом информация будет отображена в отдельном окне.
В почтовых программах форма не работает!!! Открывайте рассылку в браузере Internet Explorer, где и набирайте Ваш вопрос.
© 2000 - 2002 Россия, Москва. Авторское право: Калашников О. А. |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||