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

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.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
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
Отписаться
Убрать рекламу

В избранное