Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 377
от 28.09.2002, 00:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 1358 Отправлено ответов: 4257 Активность: 313.4 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Biv Статус: Доверительный Общий рейтинг: 125.4 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 156.98 [Подробней >>] |
ARDoS Статус: Доверительный Общий рейтинг: 107.44 [Подробней >>] |
Kiss Статус: Опытный Общий рейтинг: 135.66 [Подробней >>] |
DiGiT[old] Статус: Доверительный Общий рейтинг: 112.72 [Подробней >>] |
Shal Статус: Опытный Общий рейтинг: 107.06 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 133.97 URL: моя рассылка по Protected Mode [Подробней >>] |
ASMодей Статус: Опытный Общий рейтинг: 123.52 [Подробней >>] |
Bob Johnson Статус: Опытный Общий рейтинг: 146.09 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 132.71 [Подробней >>] |
LIFO Статус: Опытный Общий рейтинг: 132.95 Телефон: 8 01710 24758 [Подробней >>] |
Pablo Статус: Профессиональный Общий рейтинг: 131.89 URL: Моя страничка [Подробней >>] |
Beeblebrox Статус: Профессиональный Общий рейтинг: 115.09 URL: Beeblebrox / TMA HomePage [Подробней >>] |
SonicX Статус: Опытный Общий рейтинг: 120.37 URL: Моя маленькая страничка с ассемблером. Телефон: (0732)753724 [Подробней >>] |
VicSimon Статус: Начальный Общий рейтинг: 103.48 [Подробней >>] |
Топор Статус: Профессиональный Общий рейтинг: 116.72 URL: Хорошая Русская Металлическая команда Телефон: (8462)500298 [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 120.64 URL: Мой сайтик... [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 1312. Здрасти вам наше Biv вышли пожалуста сюда KGB@SIBMAIL.RU... (ответов: 1)
Вопрос № 1314. Большое спасибо эксперту ARDoS, подсказавшему мне идею про изменение таблицы импортов (вопрос №1254 ... (ответов: 2)
Вопрос № 1315. Здравствуйте, господа эксперты! Не могли бы вы мне помочь со следующей проблемой: Как написать прогр... (ответов: 8)
Вопрос № 1316. Вопросик. Вот дана МАЛЕНЬКАЯ прога на АСМе - см. приожение. Как видите она ничего полезного не делае... (ответов: 1)
Вопрос № 1317. НА ПРОШЛЫЙ ВОПРОС ОТВЕЧАТЬ НЕ НАДО!! Это там где я про программку "нахождения смещения переменн... (ответов: 5)
Вопрос № 1318. Здравствуйте, господа Эксперты! У меня к вам следующий вопрос: Почему когда под Win98SE юзаешь следу... (ответов: 3)
Вопрос № 1319. Доброго времени суток... Ни у кого под рукой случайно не завалялось агоритма игры Live???... (ответов: 5)
Вопрос № 1320. Здравствуйте уважаемые эксперты, я к сожалению еще не начал программировать на ассемблере, все руки... (ответов: 3)
Вопрос № 1321. Привет! 1. Каким образом можно установить произвольную скорость переда... (ответов: 4)
Вопрос № 1322. Здравствуйте уважаемые эксперты! У меня вопрос – для собственной проверки. Есть такой специальный си... (ответов: 1)
Вопрос № 1323. Здравствуйте уважаемые эксперты. 1)Подскажите алгоритм запуска сом - программы с ключами, например: ... (ответов: 4)
Вопрос № 1324. Доброе время суток, господа программисты. Такое вот дело. Решил организовать себе библиотеку и... (ответов: 2)
Вопросов: 12, ответов: 39
Вопрос № 1312 |
Здрасти вам наше
Biv вышли пожалуста сюда KGB@SIBMAIL.RU
Вопрос отправлен: 23.09.2002, 01:28
Отправитель: Сергей
[Следующий вопрос >>] [Список вопросов]
Отвечает Biv
Приветствую Вас, Сергей!
Вроде послал!
Ответ отправлен: 25.09.2002, 01:19
Отправитель: Biv
Вопрос № 1314 |
Большое спасибо эксперту ARDoS, подсказавшему мне идею про изменение таблицы импортов (вопрос №1254 про добавление моей собственной функции в NT). Теперь есть ещё один вопрос:
Моя программа работает в нулевом кольце (т.е. драйвер устройства). Вопрос вот какой: каким образом программа может собрать сведения о том, как её загрузили? Можно ли определить адреса всех секций файла в памяти? Адрес загрузки кода я могу определить, а вот адрес IAT - как к нему подобраться?
Вопрос отправлен: 23.09.2002, 05:52
Отправитель: Джамаль
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Приветствую Вас, Джамаль!
И что, получилось изменить таблицу, работает?
Адрес секции прописан в разделе секций в РЕ заголовке - Virtual Offset + ImageBase в соответствующей секции.
Ответ отправлен: 23.09.2002, 11:49
Отправитель: masquer
Отвечает ARDoS
Добрый день, Джамаль!
IAT ты можешь найти по адресу offset 'DOS Header'+ 08h
Приложение:
Ответ отправлен: 26.09.2002, 16:51
Отправитель: ARDoS
Вопрос № 1315 |
Здравствуйте, господа эксперты!
Не могли бы вы мне помочь со следующей проблемой:
Как написать программу которая просила ввести число, затем из этой записи цифры 0 и 5, оставив прежним порядок остальных цифр. Например, из числа 59015509 должно получиться 919.
(я ещё новичок в этом деле- сам справиться не в состоянии,
а эта прога крайне важна, можно сказать вопрос жизни и смерти!)
Вопрос отправлен: 23.09.2002, 08:21
Отправитель: rams (gultso5@belovo.net.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает ARDoS
Здравствуйте, rams!
В приложении прога , которая делает нечто подобное, просто записывай в какой нибудь другой буфер всё кроме 0 и 5.
Приложение:
Ответ отправлен: 26.09.2002, 16:52
Отправитель: ARDoS
Отвечает masquer
Здравствуйте, rams!
Если под виндами - SetWindowLong на едитбокс и проверяй при вводе, что-то вроде
.if wParam="0"
ret
.endif
.if wParam="5"
ret
.endif
Ну и еще от задачи зависит, например, в каком объеме тебе нужно такие превращения проводить
Ответ отправлен: 23.09.2002, 11:37
Отправитель: masquer
Отвечает Kiss
Здравствуйте, rams!
Напиши по внятней что значит "затем из этой записи цифры 0 и 5"- что должны быть с ними?
Ответ отправлен: 23.09.2002, 09:36
Отправитель: Kiss
Отвечает DiGiT[old]
Приветствую Вас, rams!
Так ты не воспринимай числа 0 и 5 при вводе, а просто пропускай если такие встретились и далее :)).
Ответ отправлен: 23.09.2002, 12:00
Отправитель: DiGiT[old]
Отвечает Shal
Приветствую Вас, rams!
Вводишь, обрабатываешь каждую циферь. если 0 или 5, то дальше, если не 0 и не 5 то печать.
Ответ отправлен: 23.09.2002, 14:02
Отправитель: Shal
Отвечает Broken Sword
Здравствуйте, rams!
это не серьезно... см. приложение
Приложение:
Ответ отправлен: 23.09.2002, 14:21
Отправитель: Broken Sword
Отвечает ASMодей
Доброе время суток, rams!
Ну если это вопрос жизни и смерти, тогда смотри приложение.
Ничего тут сложного нет: программа записывает все введенные
с клавиатуры символы в память, потом с помощью двух указателей
оттуда убираются ненужные символы и строка выводится на экран.
Приложение:
Ответ отправлен: 24.09.2002, 09:02
Отправитель: ASMодей
Отвечает Bob Johnson
Доброе время суток, rams!
См. приложение...
Приложение:
Ответ отправлен: 24.09.2002, 13:22
Отправитель: Bob Johnson
Вопрос № 1316 |
Вопросик.
Вот дана МАЛЕНЬКАЯ прога на АСМе - см. приожение. Как видите она ничего полезного не делает :-)).. Я просто проверяю где находтя данные переменные в памяти.
Так вот я кладу командой lea ax, b смещение переменной b в регистр ax, но она ложит смещение ds:0000 , когда как в памяти (смотрел под отладчиком) настоящее смещение ds:0110 !? ЧЁЖ ЭТО ТАКОЕ получается друзья мои ?!!
Плиз объясните !
З,Ы Когда я переделываю под com файл всё идёт.....
Приложение:
Вопрос отправлен: 23.09.2002, 09:40
Отправитель: Soldier
[Следующий вопрос >>] [Список вопросов]
Отвечает Dark_Lord
Доброе время суток, Soldier!
lea, скорее всего помещает положение переменной по сравнению с сегментом, так как это программа типа .ехе! попробуйте offset b и seg b!
Ответ отправлен: 23.09.2002, 19:47
Отправитель: Dark_Lord
Вопрос № 1317 |
НА ПРОШЛЫЙ ВОПРОС ОТВЕЧАТЬ НЕ НАДО!! Это там где я про программку "нахождения смещения переменных" :-)) спрашивал. Всё сам понял!
......
У Юрова в учебнике я уже нашёл стока ляпов :-( что уже и со счёта сбился...
Может есть какой нить другой нармальный автор книг ро АСМу ?
Вопрос отправлен: 23.09.2002, 09:58
Отправитель: soldier
[Следующий вопрос >>] [Список вопросов]
Отвечает Biv
Приветствую Вас, soldier!
ЗУБКОВ С.В. Программирование на асме под дос, линух, выньдос
Вроде так называется.
З.Ы. Мой друг говорит: "Если хочешь задать вопрос, посчитай до сорока. Если все еще хочешь его задать посчитай еще раз."
З.Ы.Ы. Никого не хотел обидеть
Ответ отправлен: 25.09.2002, 01:19
Отправитель: Biv
Отвечает Dark_Lord
Доброе время суток, soldier!
Зубков!
Ответ отправлен: 23.09.2002, 19:48
Отправитель: Dark_Lord
Отвечает LIFO
Добрый день, soldier!
Нашел - исправь, и продолжай учить дальше...
Ответ отправлен: 24.09.2002, 18:42
Отправитель: LIFO
Отвечает DiGiT[old]
Добрый день, soldier!
Насчет Юрова. Ляпов много так его мона и не читать. А читатй нормальные доки по асму. Их везде навалом. Можешь купить Зубкова, тоже неплохо. А вообще самый рулез это IA-32
Ответ отправлен: 23.09.2002, 11:58
Отправитель: DiGiT[old]
Отвечает Bob Johnson
Приветствую Вас, soldier!
Хе-хе... Поздно! Я уже ответил...
Если тебя интересует система команд (как выполняются команды на процессоре), то бери спецификацию от производителя. Если же работа с функциями ДОС - то вот я нашел у себя старую но более-менее книгу: Самоучитель по системным функциям MS-DOS. Иногда помогает...
Ответ отправлен: 24.09.2002, 13:23
Отправитель: Bob Johnson
Вопрос № 1318 |
Здравствуйте, господа Эксперты!
У меня к вам следующий вопрос:
Почему когда под Win98SE юзаешь следующий код, например:
....
.data
GetProc db "GetProcAddress",0
k32base dd 0bff70000h
;----------------------------
.code
-----------------------------
invoke GetProcAddress, addr GetProc, addr k32base
...
В eax возвращается что-то, начинающееся с 83......h (точно не помню), а не 0bff76da8h, который указан в секции экспортируeмых функций kernel32.dll? И как обстоят дела в других оп. системах?
TIA
Осипов Александр alex_osipov@inbox.ru
Вопрос отправлен: 23.09.2002, 10:58
Отправитель: Osipov Alex (alex_osipov@inbox.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Pablo
Приветствую Вас, Osipov Alex!
А почему ты указывал базу как угодно, а не по рекомендациям производителя ОС?! В хелпе написано, что базу следует указывать ту которая возвращается функциями LoadLibrary или GetModuleHandle.
Приложение:
Ответ отправлен: 23.09.2002, 15:30
Отправитель: Pablo
Отвечает masquer
Доброе время суток, Osipov Alex!
Я бы не рекомендовал явно указывать адрес кернела, на другой машине это может и не сработать, я уже не говорю про другую версию винды. Я так делаю:
.data
GetProc db "GetProcAddress",0
kernel32 db "kernel32.dll", 0
.code
start:
invoke GetModuleHandle, ADDR kernel32
invoke GetProcAddress, eax, ADDR GetProc
А вот это 8C54D140 посмотри просто, куда указывает :)
Ответ отправлен: 23.09.2002, 12:28
Отправитель: masquer
Отвечает Bob Johnson
Приветствую Вас, Osipov Alex!
Потому что в Win98 физически библиотека находится в одном месте в памяти (т.е. все(!!) процессы пользуются одной и той же копией кода библиотеки), а за счет механизма сегментации и страничного преобразования она подключается в код каждого приложения под своим адресом. То число, которое тебе возвратила GetProcAddress и является адресом требуемой функции для твоего процесса. На остальное полагаться нельзя.
Ответ отправлен: 24.09.2002, 13:24
Отправитель: Bob Johnson
Вопрос № 1319 |
Доброго времени суток...
Ни у кого под рукой случайно не завалялось агоритма игры Live???
Вопрос отправлен: 23.09.2002, 11:00
Отправитель: Gibbel (Gibbel@narod.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Pablo
Здравствуйте, Gibbel!
Смотри тут: http://famlife.narod.ru/
На сайте есть и правила.
Ответ отправлен: 23.09.2002, 15:22
Отправитель: Pablo
Отвечает Beeblebrox
Добрый день, Gibbel!
Если имеется в виду Life от Дж. Конвея, то алгоритм такой:
Если у пустой клетки ровно 3 соседа - рождение
Если у живущей клетки 2 или 3 соседа, клетка продолжает жить.
В остальных случаях клетка умирает
Самая короткая из известных мне реализаций занимает 87 байт
Ответ отправлен: 23.09.2002, 11:45
Отправитель: Beeblebrox
Отвечает Kiss
Добрый день, Gibbel!
А про что гама может придумать можно!
Ответ отправлен: 23.09.2002, 13:53
Отправитель: Kiss
Отвечает Bob Johnson
Здравствуйте, Gibbel!
Он достаточно простой - все игровое поле разбивается на квадраты (ну, это ты наверное сам знаешь). На каждом шаге считаеш сумму "животных" вокруг каждого квадрата (вариантов два - можно смотреть четыре квадрата (сверху, снизу, справа и слева) и можно все 8 - пусть будет 8). Если вокруг квадрата с животным есть менее 2-х животных, то исходное погибает от одиночества. Если же более 4 - то от недостатка места, в остальных случаях оно остается жить. Если же вокруг пустого квадрата есть 2 или 3 животных - то в нем рождается новое. Числа могут быть и неточны...
Как видишь, данный алгоритм работает за время О(n^2) (если считать поле квадратом со стороной n). Один мой знакомый очень давно говорил, что написал игру жизнь, которая работает за время О(число животных), т.е. за линейное время. Если ли у кого такой алгоритм?
Ответ отправлен: 24.09.2002, 13:25
Отправитель: Bob Johnson
Отвечает SonicX
Доброе время суток, Gibbel!
Я скачивал откуда то FASM и там в виде примеров был исходник игры LIFE.
PS Кстати очень маленькая и рабочая прога.
Ответ отправлен: 25.09.2002, 18:10
Отправитель: SonicX
Вопрос № 1320 |
Здравствуйте уважаемые эксперты,
я к сожалению еще не начал программировать на ассемблере, все руки не доходят, но активно слежу за рассылкой и собираю материалы которые вы рекомендуете.
Тут мне попалась IDE для асма, которая очень напоминает Delphi, и находится она здесь
- Assembly Programming IDE .9
-----------------------------
- Full IDE for x86 Assembly Language Programming, featuring : *
- Project Management of files/libraries * Code Browser * Syntax
- Highlighting * TASM/TASM32 support * Visual Studio style
- interface * Designed for Windows XP/2K/NT * And more
- http://www.programmersheaven.com/search/download.asp?FileID=23476
С уважением.
Юрчик
Вопрос отправлен: 23.09.2002, 12:46
Отправитель: Yurchik (konytskyy@yahoo.com)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Доброе время суток, Yurchik!
Спасибо за ссылку.
Скачал, посмотрел, удалил.
Мне лично не понравилось: кроме подсветки синтаксиса (есть в любом нормальном редакторе), интерфейса (то же самое) и дерева ничего нет. Все остальные навороты никому не нужны - ИМХО.
Ответ отправлен: 23.09.2002, 16:34
Отправитель: masquer
Отвечает Bob Johnson
Здравствуйте, Yurchik!
Спасибо, посмотрим.
Ответ отправлен: 24.09.2002, 13:22
Отправитель: Bob Johnson
Отвечает SonicX
Здравствуйте, Yurchik!
Пытался я закачать себе...
50% и сообщение типа сервер отменил передачу файла.
Ответ отправлен: 25.09.2002, 18:10
Отправитель: SonicX
Вопрос № 1321 |
Привет!
1. Каким образом можно установить произвольную скорость передачи и приема через Com-порт для работы с внешним устройством?
2. Каким образом можно передавать и принимать через Com-порт произвольное количество бит (не 6,7 или 8 за посылку, а больше или меньше)?
Помогите, кто что знает.
Спасибо!
Александр
23 сентября 2002 года
aplet_ai@mail.ru
Вопрос отправлен: 23.09.2002, 13:37
Отправитель: Александр
[Следующий вопрос >>] [Список вопросов]
Отвечает Biv
Приветствую Вас, Александр!
Могу прислать описалово контроллера компорта
Ответ отправлен: 25.09.2002, 01:23
Отправитель: Biv
Отвечает Pablo
Доброе время суток, Александр!
1. Описание rs232 и программирования с использованием com-порта смотри по ссылкам ниже:
http://www.lvr.com/serport.htm
http://www.tldp.org/HOWTO/Serial-Programming-HOWTO/
http://www.arcelect.com/rs232.htm
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/communications_functions.asp
2. Можно запрограммировать количество передаваемых битов от 5 до 8 и количество топовых битов 1; 1,5; 2.
Ответ отправлен: 23.09.2002, 15:47
Отправитель: Pablo
Отвечает VicSimon
Доброе время суток, Александр!
1. Скорости приема/передачи в COM-портах фиксированные! То есть установить скорость не из ряда 150, 300, 600, ... , 115200 не получится.
2. То же самое и с разрядностью.
Это все - ограничения стандарта RS-232. Для того, чтобы их обойти, необходимо другое оборудование (возможно придется разрабатывать самому).
Ответ отправлен: 23.09.2002, 13:46
Отправитель: VicSimon
Отвечает Bob Johnson
Здравствуйте, Александр!
1. Насколько я знаю, в настоящее время ком порт организован на чем-то подобном (и совместимой) старой МС КР580ВВ51А (или 8251 по буржуйски). Скорость устанавливается ее программированием, но, мне кажется, что она стандартная.
2. Также, я думаю, что это невозможно.
Ответ отправлен: 24.09.2002, 13:25
Отправитель: Bob Johnson
Вопрос № 1322 |
Здравствуйте уважаемые эксперты!
У меня вопрос – для собственной проверки.
Есть такой специальный символ в MASM - &.
О нем довольно пространно написано или я такой «спец», что я ничего почти не понял – как его активно юзать в макросах. Там в masm32.hlp написано, что если вы хотите заменить параметр своим, то Вам вельмы необхидно – делать только так ¶meter& - а если хотите соединить два параметра для создания одного символа то можно и так parameter1¶meter2… Вот…
Но до второго мне пришлось додуматься самому – из кода макроса в приложении, а как работает пример в помощи я – вообще не понял – там ведь только код, а что он делает нет примера:(…
Так вот если кто сталкивался – объясните пожалуйста поподробнее как все-таки этот символ использовать? С каким синтаксисом? – у меня пошли примеры – там только макросы – и еще парнишка издевается –
Adults only! – better don’t look here:)
bla-bla-bla the macro code itself ;это от меня – надеюсь – до таких сокращений не дошли
может кто его знает – Sergey Chaban? – а нужно разобраться позарез – человечество гибнет:)
Приложение:
Вопрос отправлен: 23.09.2002, 15:31
Отправитель: zoofish (zoofish@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Доброе время суток, zoofish!
Если ты вызовешь этот макрос с такими параметрами то у тебя запустится такая процедура
NEWOBJECT My, Init1, Init2 - invoke My_Init, eax, Init1, Init2
если
NEWOBJECT NotMy - invoke NotMy_Init, eax
Я, правда, макросами редко пользуюсь, особо не вникал.
З.Ы.Отвечу в рассылку, через прокси почту не могу отправить
Ответ отправлен: 24.09.2002, 12:17
Отправитель: masquer
Вопрос № 1323 |
Здравствуйте уважаемые эксперты.
1)Подскажите алгоритм запуска сом - программы с ключами,
например: prog.com k -ключ, чтобы при вводе определенного
ключа выполнялась определенная функция программы.
2)Можно ли прочитать или записать файл, например version.xxx
где xxx - любое расширение. Ведь когда я указываю с помощью
lea dx,'полный путь к файлу(включая конкретное расширение)'
или например запуская сом - программу читать файл указанный
в dx, а при запуске prog.com >имя программы обрабатывать
любую программу, указанную после prog.com - каков алгоритм
такого чтения или записи файла.
Извините за немного путанные вопросы, но как сказал один
герой по прозвищу ШЕФ из известного фильма - я ведь только
учусь.
К кому можно направлять свои программы, чтобы он указал
как можно оптимизировать код.
Заранее благодарен за помощь.
Вопрос отправлен: 23.09.2002, 22:46
Отправитель: alexsav
[Следующий вопрос >>] [Список вопросов]
Отвечает Dark_Lord
Добрый день, alexsav!
Итак, чтобы работать с командной строкой (или "командами с ключами", как вы их назвали) нужно добавить переменную, в ком программе это делается так:
.model tiny
.code
org 80h
cmd_length db ?
cmd_string db ?
org 100h
код!
Таким образом в cmd_length вы получите длинну введённой командной строки, а в cmd_string саму командную строку.
Тоесть "program.com -proba" возвратит в cmd_string " -proba", а Вам достаточно лишь обработать это!
Ответ отправлен: 23.09.2002, 23:15
Отправитель: Dark_Lord
Отвечает Топор
Доброе время суток, alexsav!
По адресу DS:[80h] лежит длина командной строки, DS:[81h] - её начало (полный путь к запущенной проге и ключи). То есть твоя задача сводится к нахождению пробела и всего, что за ним написано, и выполнению в проге соответствующих действий.
Ответ отправлен: 24.09.2002, 18:16
Отправитель: Топор
Отвечает ASMодей
Приветствую Вас, alexsav!
1. Строка вызова программы (вместе с ключами) находится в
PSP по смещению 81h. И разбирать какие там ключи заданы
придется тебе самому, так как никаких функций для этого
по-моему нет.
2. Открыть можно только файл с конкретным именем и расширением.
Для открытия файла с неизвестным именем или расширением
его нужно будет сначала найти по маске с помощью функции 4Eh.
Ответ отправлен: 24.09.2002, 09:04
Отправитель: ASMодей
Отвечает Portnov
Приветствую Вас, alexsav!
1) При запуске COM-программы командная строка (то, что вы ввели после имени программы) лежит по адресу CS:80h в таком формате: сначала байт - длина командной строки, затем пробел (а иногда это оказывается другой символ... Обычно на него можно просто не обращать внимания), затем собственно командная строка, а затем байт 0Dh (код клавиши Enter). Длина считается без этого odh. В общем, берете эту строку и разбираете, и анализируете ключи... Идея в том, чтобы проверять каждый символ, пробел это или нет, если пробел - значит, следующий параметр начался, иначе - текущий продолжается... Если ну очень хочется, пишите portnov@mdv.ru, дам свои Includes для работы с командой строкой, только там комментариев почти нет... Yj если надо будет - объясню, пишите... Там зато куча возможностей по сравнению с тем же Pascal'ем и его Paramstr.
2) Можно. Указываете нужное расширение и все... Читаете, пишете... Совершенно спокойно. Насчет знаков < и > в командной строке ДОСа: это символы перенаправления ввода/вывода Дос. Вы из программы работаете со "стандартным вводом-выводом" (DOS Fn 9h, 8h, 2h,1h...), при этом если перенаправление не было задано, то вы работаете с консолью, а если было, то с соотв. файлами. То есть, например, вы написали:
mov ah,9h
mov dx,offset msg
int 21h
...
msg db 'Hello!$'
...
и назвали это все prog.asm. Если это запускать
C:\>prog.com
, то сообщение выведется на экран. А если запускать
C:\>prog.com >myfile.dat
, то сообщение будет выведено в файл myfile.dat.
С уважением, Portnov.
Ответ отправлен: 24.09.2002, 13:02
Отправитель: Portnov
Вопрос № 1324 |
Доброе время суток, господа программисты.
Такое вот дело. Решил организовать себе библиотеку из пары-тройки своих процедур (т.е сделать lib файл). По ходу дела возникли следущие вопросы: как надо оформить asm файл для библиотеки, какие параметры задать Tasm'у и какие директивы писать в вызывающей программе.
Заранее благодарю.
Вопрос отправлен: 23.09.2002, 23:43
Отправитель: Студент
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Студент!
ASM файл обычный, так как ты писал бы DLL. Затем компилируешь его в OBJ и создаешь библиотеку утилиткой tlib:
tlib _имя файла библиотеки_ + _имя OBJ файла_.
Ответ отправлен: 25.09.2002, 01:04
Отправитель: Bob Johnson
Отвечает Топор
Доброе время суток, Студент!
LIBы всю жизнь делались из DLL посредством утилит типа implib.exe, входящих и в TASM и в MASM. А как делать DLL, сейчас, наверное, даже ёжики знают. ;-)
Ответ отправлен: 24.09.2002, 18:12
Отправитель: Топор
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "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++ (29) Perl (7) Delphi (16) Pascal (23) Basic / VBA (12) Java / JavaScript (10) PHP (6) MySQL / MSSQL (9) |
Пользователю Windows 95/98/Me (39) Windows NT/2000/XP (31) "Железо" (35) Поиск информации (15) |
Администратору Windows NT/2000/XP (16) Linux / Unix (18) |
Юристу Гражданское право (8) Семейное право (4) Трудовое право (6) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||