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

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


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

"Ассемблер? Это просто! Учимся программировать (FAQ)"

Выпуск № 250
от 20.04.2002, 02:05

Администратор: Калашников Олег
Сайт Администратора: Программирование на Ассемблере


Старейшины рассылки
(по состоянию на 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, где и набирайте Ваш вопрос.



 Персональные данные
Ваше имя:
Пароль (экспертам):
E-mail (подписчикам):
Опубликовать мой e-mail в рассылке


 Текст сообщения

Текст вопроса:

Приложение (если необходимо: программа, выдержка из закона и т.п.):



 Выбор подгруппы

Отправить всем экспертам выбранной подгруппы


SpyLOG be number one SUPERTOP

© 2000 - 2002 Россия, Москва. Авторское право: Калашников О. А.


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

В избранное