Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 438
от 09.12.2002, 19:00
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 2087 Отправлено ответов: 6391 Активность: 306.2 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Maverick Статус: Профессиональный Общий рейтинг: 137.58 URL: Задачи по ассемблеру Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 108.66 URL: Страничка обо мне и моих друзьях [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 117.25 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.37 [Подробней >>] |
Eugene Статус: Опытный Общий рейтинг: 110 URL: мощный файловый архив [Подробней >>] |
Max Статус: Начальный Общий рейтинг: 115.9 [Подробней >>] |
DiGiT[old] Статус: Опытный Общий рейтинг: 106.96 [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 114.47 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Sensey Статус: Профессиональный Общий рейтинг: 122.54 URL: Страничка рассылки по Паскалю Телефон: +38 (0572) 41-76-04 дом. [Подробней >>] |
keleb-glin Статус: Доверительный Общий рейтинг: 115.76 [Подробней >>] |
Дмитрий Статус: Начальный Общий рейтинг: 100.62 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 119.52 [Подробней >>] |
St Статус: Опытный Общий рейтинг: 115.37 [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 108.11 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 123.24 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 2033. Привет всем. Вот такой вопрос: 1.как в исходную строку вставить после заданного символа, все символ... (ответов: 2)
Вопрос № 2034. Здравствуйте, Эксперты ! Поясняю и коректирую вопрос 2018 В программе MAINPRO определенны переменные... (ответов: 2)
Вопрос № 2035. Здравствуйте, Эксперты ! Пишу на Visual Basic, но в предназначенном разделе, мало кто отвечает ! Под... (ответов: 2)
Вопрос № 2036. Hi. Большая просьба: дайте урл на ХОРОШУЮ доку по структуре PE файла, а если не трудно то лучше приш... (ответов: 2)
Вопрос № 2037. При изучении асмы возникла "небольшая проблема", а именно: при выводе символов в текстовом... (ответов: 3)
Вопрос № 2038. Приветствую уважаемых экспертов! Вы не поверите, C, Pascal, Basic, Java, все их визуальные решения и... (ответов: 5)
Вопрос № 2039. Здравствуйте. Собираю информацию по драйверам: ВСЕ - справочники, статьи, рефераты и пр. Мой e-mail:... (ответов: 1)
Вопрос № 2040. Здравствуйте, Эксперты ! Мне нужно чтобы программа передала три переменные подпрограмме как параметр... (ответов: 5)
Вопрос № 2041. Доброго времени суток, уважаемые эксперты! Я тут столкнулся с глупой и от того неожиданной ошибкой! ... (ответов: 6)
Вопросов: 9, ответов: 28
Вопрос № 2033 |
Привет всем. Вот такой вопрос: 1.как в исходную строку вставить после заданного символа, все символы , предшествующие ему, оставшуюся часть строки оставить без изменения. 2. как можно подсчитать количество слов в предложении.Заранее Большое спасибо.
Вопрос отправлен: 04.12.2002, 19:21
Отправитель: evgen
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Доброе время суток, evgen!
1.Сканируй строку на наличие этого символа, а то что просканировал запоминай где нибудь.
2."Сравнить пока не равно" пробелу, равно-увеличим счетчик слов и дальше.
Если не понял:
Maverick@nightmail.ru
Ответ отправлен: 05.12.2002, 07:08
Отправитель: Maverick
Отвечает Gibbel
Приветствую Вас, evgen!
1. Сместить оставшуюся часть строки к концу на необходимое количество символов. Затем скопировать символы на позицию после заданного символа.
2. Посчмтай количество пробелов +1.
P.S.: Сессия приближается???
Ответ отправлен: 05.12.2002, 16:13
Отправитель: Gibbel
Вопрос № 2034 |
Здравствуйте, Эксперты !
Поясняю и коректирую вопрос 2018
В программе MAINPRO определенны переменные QTY как DB, VALUE как DW и PRICE как DW.
программа написана под DOS
1. Каким образом нужно указать в программе MAINPRO, что переменные доступны другим программам.
2. Каким образом в подпрограмме указать, что три переменные определенны в другом месте.
Программа MAINPRO вызывает подпрограмму SUBPRO!
SUBPRO делит VALUE на QTY и записывает в частное PRICE.
Т.е. SUBPRO вроде функции.
Вопрос отправлен: 04.12.2002, 19:28
Отправитель: Саша
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Доброе время суток, Саша!
См. приложение
Приложение:
Ответ отправлен: 05.12.2002, 17:41
Отправитель: Ayl
Отвечает Bob Johnson
Добрый день, Саша!
Public и Extrn.
Ответ отправлен: 05.12.2002, 15:07
Отправитель: Bob Johnson
Вопрос № 2035 |
Здравствуйте, Эксперты !
Пишу на Visual Basic, но в предназначенном разделе, мало кто отвечает !
Подскажите API-функцию которая закачивает файл с интернета с указанного байта, указанное кол-во байт.
Ведь ассемблер тоже может использовать API
Вопрос отправлен: 04.12.2002, 19:30
Отправитель: Саша
[Следующий вопрос >>] [Список вопросов]
Отвечает Gibbel
Добрый день, Саша!
Ну, начнем с того, что для закачки файла с инета используется намного больше одной функции...
Также есть вариации - будешь ли ты работать при помощи winsock, либо же будешь использовать WinInet API, или же WinHTTP API... В любом случае, если ты работаешь с HTTP протоколом, тебе необходимо добавить заголовок "Range: bytes=[begin]-[end]", где вместо [begin] подставляешь номер первого требуемого байта, а вместо [end] - номер последнего.
Как тоже организовать в других протоколах читай в соответствующей документации...
Ответ отправлен: 05.12.2002, 10:20
Отправитель: Gibbel
Отвечает Bob Johnson
Приветствую Вас, Саша!
Да... API, конечно мощный набор функций, но... не все же делать одним call. Нет такой функции! Более, если хочешь именно с указанного байта, то сам делай. Иначе есть FtpGetFile. Она скачивает целый файл и все такое.
P.S. Assembler может использовать API функции.
Ответ отправлен: 05.12.2002, 15:08
Отправитель: Bob Johnson
Вопрос № 2036 |
Hi. Большая просьба: дайте урл на ХОРОШУЮ доку по структуре PE файла, а если не трудно то лучше пришлите (доку) ее на мыло.
Заранее сэнкс.
Вопрос отправлен: 04.12.2002, 22:04
Отправитель: HeX (x-nucleus@yandex.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Приветствую Вас, HeX!
Скинул, вроде никто не жаловался на нее.
Ответ отправлен: 05.12.2002, 07:09
Отправитель: Maverick
Отвечает Gibbel
Доброе время суток, HeX!
RSDN.ru
Ответ отправлен: 05.12.2002, 10:26
Отправитель: Gibbel
Вопрос № 2037 |
При изучении асмы возникла "небольшая проблема", а именно: при выводе символов в текстовом режиме(исходники Калашникова, первые уроки) в ВинХР, они, как это ни странно не выводятся. Что делать, как быть:). А то без этого считаю свои знания немного не полными: я знаю, что это правильно, но что именно там вывелось-то??!
Вопрос отправлен: 04.12.2002, 22:07
Отправитель: Kiros (kir_jkl@hotbox.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Здравствуйте, Kiros!
Ну дык а какая прога то?
Вообще ничего не выводится?
Ответ отправлен: 05.12.2002, 07:09
Отправитель: Maverick
Отвечает Eugene
Добрый день, Kiros!
Попробуй в самом начале проги поставить смену видеостраницы.
mov ax, 0500h
int 10h
Ответ отправлен: 05.12.2002, 09:39
Отправитель: Eugene
Отвечает Bob Johnson
Приветствую Вас, Kiros!
сделай в начале своей проги
mov ax, 3
int 10h
и все будет ок.
Ответ отправлен: 05.12.2002, 15:08
Отправитель: Bob Johnson
Вопрос № 2038 |
Приветствую уважаемых экспертов!
Вы не поверите, C, Pascal, Basic, Java, все их визуальные решения и даже Fortran (в частности 99), довались мне легко и без особых усилий. Но сколько я не пытался, пересесть за ASM у меня ни чего не выходит. Может кто даст какой-нибудь линк на книгу для "полных" идиотов, где конкретно, русским языком, написано: какие функции, в сочетании с какими прерываниями(допустим, что реч идёт о досе) и регистрами используються, и зачем, и почему и т.д. и .т.п
Заранее благодарен.
С уважением Tibor Ferencig.
Вопрос отправлен: 05.12.2002, 03:32
Отправитель: Tibor (tibor_ferencig@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Max
Доброе время суток, Tibor!
Держи !!! Должен пиво.!!!
Ответ отправлен: 05.12.2002, 22:02
Отправитель: Max
Отвечает DiGiT[old]
Добрый день, Tibor!
Все языки, которые ты перечислил алгоритмические, в принципе асм тоже. Ты попробуй Prolog поюзать сразу облезешь, совсем другая концепция. А чтобы писать на асме надо много помнитьЯ, чего не предполагается при программировании на других языках
Ответ отправлен: 06.12.2002, 09:18
Отправитель: DiGiT[old]
Отвечает baldr
Доброе время суток, Tibor!
И снова в который раз могу посоветовать книгу С.В.Зубкова "Assembler для DOS, Windows и Unix".
Достаточно качественно и доступно написано. Книга доступна в книжных магазинах, а, возможно, и
даже наложенным платежом (если попробовать заказать на www.dmk.ru).
Сам же я учился по книге Питера Абеля "Программирование на языке Assembler для IBM PC" (или
как-то так). Эта книга есть почти на всех крупных сайтах с подобной литературой.
Ответ отправлен: 05.12.2002, 23:23
Отправитель: baldr
Отвечает Maverick
Здравствуйте, Tibor!
Читай Калашникова, рассылку.
Я сам с нее начинал, и интересно, и доступно.
Разберешся с ней, ищи Зубкова, не в инете, а в магазине.
В электронном варианте ее нет.
А дальше уже зависит от области применения ассемблера(демки, драйвера, вирусы и т.д.)
По возникающим вопросам можешь мне мылить, помогу чем смогу.
Maverick@nightmail.ru
Ответ отправлен: 05.12.2002, 07:09
Отправитель: Maverick
Отвечает Sensey
Приветствую Вас, Tibor!
Ну например отличная справочная система TechHelp
ЗЫ 666 ответ - как Я дьявольски умен ;)))))
Ответ отправлен: 05.12.2002, 12:15
Отправитель: Sensey
Вопрос № 2039 |
Здравствуйте.
Собираю информацию по драйверам: ВСЕ - справочники, статьи, рефераты и пр. Мой e-mail: bayramanna@investbank.org
Спасибо.
Вопрос отправлен: 05.12.2002, 08:31
Отправитель: Bayram Annanurov (bayramanna@investbank.org)
[Следующий вопрос >>] [Список вопросов]
Отвечает baldr
Здравствуйте, Bayram Annanurov!
Мда... Интересное хобби... :-// А сами драйвера не собираешь?
Ты бы хоть объяснил для чего тебе это надо? Курсовик пишешь? Тогда примерную структуру подскажем.
Или хочешь драйвер написать (а под какую ось??), так мы тебе и ссылки соответствующие дадим!
В общем, поясни, а то - "собираю... Спасибо..." :-// И что?
Ответ отправлен: 05.12.2002, 23:23
Отправитель: baldr
Вопрос № 2040 |
Здравствуйте, Эксперты !
Мне нужно чтобы программа передала три переменные подпрограмме как параметры .
А подрограмма чтобы возратила результат через параметр.
как это cделать ?
Вопрос отправлен: 05.12.2002, 18:02
Отправитель: Петрович
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Петрович!
Обычно для передачи параметров используют либо регистры, либо стек. Если использовать регистры - то это может выглядеть так:
mov eax, param1
mov edx, param2
mov ecx, param2
call procedure
eax = result
если через стек, то для возврата результата один из параметров должен быть указателем на ячейку памяти, например:
push param3
push param2
push offset param1
call procedure
[param1] = result
Ответ отправлен: 06.12.2002, 22:33
Отправитель: Bob Johnson
Отвечает keleb-glin
Здравствуйте, Петрович!
Модно передавать процедуре параметры несколькими способами:
1. Через регистры.
2. Через переменные.
3. Через стек.
Первый способ очевиден и прост, однако регистров мало. А если параметров много?
Второй способ тоже хорош, а если процедура определена в другом модуле?
Лучше передавать параметры через стек. Только придётся поработать над: доставанием данных. Это можно сделать адересацией через регистр bp. Он по дефолту нацелен на сегмент ss, т.е ss:[bp] эквивалентно [bp]. Присваиваешь ему значение sp, и от него идёшь вниз стека и достаёшь параметры, ты ведь знаешь их порядок и размер.
Второй вопрос - кто ответственен за очистку стека от положенных параметров - процедура или вызивающая программа. Лучше это повесить на процедуру ( потом легче будет использовать её в других программах ). Поэтому процедура в конце достанет адрес возврата сверху, почистит стек pop'ами, положит возвращаемое значение и положит адрес обратно. Тогда после выхода из ф-кции в стеке будет возвращаемое значение.
Ответ отправлен: 05.12.2002, 20:51
Отправитель: keleb-glin
Отвечает Дмитрий
Доброе время суток, Петрович!
Просто :)
Пушишь (push) свои параметры, а в подпрограмме пушишь ответ, а в основной программе после этого pop ax - опа, и результат в ах :)
Ответ отправлен: 05.12.2002, 19:54
Отправитель: Дмитрий
Отвечает ASMодей
Здравствуйте, Петрович!
Передать параметры программе можно через конандную строку, но
получить через них значение, возвращенное программой, невозможно.
Попробуй использовать для этого переменные окружения.
Ответ отправлен: 05.12.2002, 20:02
Отправитель: ASMодей
Отвечает St
Привет, Петрович!
Если я правильно понял вы
1) или хотите вернуть значение функции через один из тех трех параметров который вы ей передаете - тогда вы передаете в качестве этого параметра адрес переменной (скорее всего глобальной, хотя и не обязательно), и в функции записываете результат в переменную по этому адресу. Дополнительно можно через (E)AX вывести адрес этой переменной (просто для понятности).
2) или хотите вернуть значение функции через некую переменную - тогда вы можете использовать любую глобальную или же выделенную для этого область памяти, в функции записать результат в переменную и через (E)AX вывести адрес этой переменной.
St
Ответ отправлен: 05.12.2002, 19:46
Отправитель: St
Вопрос № 2041 |
Доброго времени суток, уважаемые эксперты!
Я тут столкнулся с глупой и от того неожиданной ошибкой! Как можно использовать формат FileTime полученый GetFileTime. Там что-то всё очень странно, два двойных слова как-то содержут два слова, при этом оно всё в наносекундах с 1600-ого года, или что-то вроде того!? Как на самом деле он там представлен, и сколько наносекунд одна секунда!?
Спасибо
Вопрос отправлен: 05.12.2002, 18:52
Отправитель: megalama
[Следующий вопрос >>] [Список вопросов]
Отвечает vitya
Приветствую Вас, megalama!
Не надо тебе мучаться с этой структурой. Если тебе нужно удобоваримое для прочтения время, то после этого вызови функцию FileTimeToSystemTime, которая превратит структуру FILETIME в структуру SYSTEMTIME, в которой все уже расписано, как у людей - день, час, год, месяц и т.д.
Ответ отправлен: 06.12.2002, 09:22
Отправитель: vitya
Отвечает Bob Johnson
Приветствую Вас, megalama!
Ну ты чувак... 1 наносекунда = 10^-9 секунд. = 1/1000 микросекунд = 1/1000000 миллисекунд.
В этой структуре на самом деле содержится одно 64-разрядное значение, которое соответствует числу временных отрезков, равных 100 нс, прошедших с 1 января 1601 года.
В общем, используй функцию FileTimeToSystemTime и она тебе все преобразует в нужный формат.
Ответ отправлен: 06.12.2002, 22:33
Отправитель: Bob Johnson
Отвечает Dark_Lord
Приветствую Вас, megalama!
Обычно эта процедура используется в паре с FileTimeToSystemTime, которая используется с двумя параметрами, offset на структуру systemtime и offset на filetime
Ответ отправлен: 05.12.2002, 20:12
Отправитель: Dark_Lord
Отвечает St
Привет, megalama!
Последний вопрос странный - у вас нет словаря или доступа к интернету?
деци (10-1), санти (10-2), милли (10-3), микро (10-6), нано (10-9), пико (10-12), фемто (10-15), атто (10-18)
100 наносекунд = 1x10-7 секунд
Есть такие функции CompareFileTime, DosDateTimeToFileTime, FileTimeToDosDateTime, FileTimeToLocalFileTime, FileTimeToSystemTime, GetFileTime, LocalFileTimeToFileTime, SetFileTime, SystemTimeToFileTime - посмотрите может они помогут вам сосчитать время.
St
Ответ отправлен: 05.12.2002, 19:55
Отправитель: St
Отвечает Gibbel
Доброе время суток, megalama!
Micrsoft рекомендует пользоваться функцией FileTimeToSystemTime() для преобразования к нормальному виду... А вообще, структура FileTime содержит четверное слово (64-бит), значащее количество 100-наносекундных интервалов считая от 1 Января 1601 года (формат UTC).
Ответ отправлен: 05.12.2002, 19:24
Отправитель: Gibbel
Отвечает ASMодей
Здравствуйте, megalama!
Так и представлен, только там 100-наносекундные интервалы
отсчитываются. Наносекунда - это 1*10E-09 секунды. И вообще
не заморачивайся, а используй функцию FileTimeToSystemTime.
Ответ отправлен: 06.12.2002, 06:02
Отправитель: ASMодей
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "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 (11) PHP (6) MySQL / MSSQL (8) |
Пользователю Windows 95/98/Me (31) Windows NT/2000/XP (21) "Железо" (29) Поиск информации (14) |
Администратору Windows NT/2000/XP (12) Linux / Unix (16) |
Юристу Гражданское право (10) Семейное право (3) Трудовое право (5) КоАП (3) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||