![]() |
|
|
![]()
|
|
| котъ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.9.2004 Репутация: нет Всего: нет |
господа профи !!!!!
объясните популярно новичку КАК СОЗДАТЬ библиотеку из отработанных небольших программ и КАК ПОТОМ ВСТАВИТЬ эти фрагменты в другую прогу !???????? Заколебался уже писать проги по 2-3 кб , в которых много отработанных кусков !!!!!!!! Я использую MASM 6.11 !!!!!!! Пишу пока только .com программы. Если можно то на примере : допустим что нужно создать библиотеку в которой ТРИ отработанных фрагмента : sceg segment org 100h start: ; определение даты -- ПЕРВЫЙ ФРАГМЕНТ !!!!!! mov ah,2ah int 21h ........ ........ ; какие то дополнительные действия ........ ........ ; установка графического режима mov al,12h mov ah,00 int 10h ; построение координатной сетки--ВТОРОЙ ФРАГМЕНТ !!!!! ........ ........ ........ ; преобразование чисел для вывода строки в графическом режиме--- ----------ТРЕТИЙ ФРАГМЕНТ !!!! ......... ......... ......... ; завершение mov ax,4c00h ; завершение программы int 21h mess1 db ....... mess2 db ....... ......... cseg ends end start Как создать библиотеку из указанных трех фрагментов ? Как потом эти фрагменты вставить в новую аналогичную программу ???? Для работы с MASM 6.11 !!!!! Спасибо !!!!!!! |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
1) убрать org, start и end start 2) объявить процедуры как public 3) скомпилить в obj (masm) 4) собрать в либу (lib или около того)
1) описАть в программе процедуры как external 2) использовать как будто текст вставлен в программу 3) при линковке указать еще и созданную ранее либу с этими функциями Есть вариант и попроще - инклюдить в текст программы файлы с процедурами -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| котъ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.9.2004 Репутация: нет Всего: нет |
СПАСИБО !!!!!
СЕГОДНЯ ПОПРОБУЮ!!!!! |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Рекомендация - каждую подпрограмму оформлять отдельным модулем, компилять отдельно и пихать в либу. Ибо если в модуле 3 функции, при вызове любой из них прилинкуется все три.
И не запутайся с сегментами и константами, используй локальные метки и протчая - а то пересечешься с основной прогой и будет тебе щастье по выискиванию глюков... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
так как я предпочитаю фасм, то сделал я для своих нужд большой файл-инклуд в котором напихал кучу процедур натболее часто пользуемых
оформив их в виде
фасм имеет удобное свойство, не компилировать процедуры которые не вызываются -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| котъ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.9.2004 Репутация: нет Всего: нет |
Akina !!!!!! oleg1973 !!!!!!!
попробовал оба способа INCLUDE ---- работает !!!!!! , правда на простейших примерах . одно неудобство ----- приходится следить за метками и менять их, если фрагмент вставляется в прогу многократно . public и external почему то не получилось, не проходит lib.exe может у меня masm611 кривой --- скачал его у Калашникова по его же рекомендации. НЕ ЯСНО только -- зачем использовать public и external , если инклюдирование проще !!!!!! Какие приемущества и недостатки у каждого способа ?????/ |
|||
|
||||
| Akina |
|
||||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Работает всегда. Программить надо по-человечески просто. Использовать локальные метки. Использовать условное подключение.
А я думаю что тебе все-таки неплохо доку по синтаксису почитать. Для данного диалекта Асма.
Пока ты кропаешь поделки размером в сотню байт - инклюдь и не забивай себе голову. А когда дело дойдет до мультисегментного кода в десятки-сотни килограмм, да еще не дай Бог вмногером кодить - ты сдохнешь под своими инклюдами. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||
|
|||||||
| котъ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.9.2004 Репутация: нет Всего: нет |
Akina !!!!!!!!!!!!!!
полностью с тобой согласен , что я еще чайник !!!!!!!!!! вот и пытаюсь учиться !!!!!!!! ты бы хоть похвалил , а то всего обругал !!!! -- может и правильно.... Ты вот пишешь ---INCLUDE Работает всегда.Программить надо по-человечески просто. Использовать локальные метки. Использовать условное подключение. Ну так поясни коротко и популярно , что это такое . Тебе ведь не трудно пояснить на простом примере. А относительно public и external привел бы подробно простейший пример---- ----- например вставка в программу фрагмента из одной команды типа mov a,b но со всеми этапами. Для DOS. Очень тебе буду благодарен !!!!!!!!!!! Ведь кого не спросишь ---- то все и смеются !!!!!! говорят дурак я что ассемблер учу !!!!! советуют всякие паскали бийсики и прочее! А по ассемблеру спецов днем с огнем не сыщешь !!!!! Добавлено @ 15:27 я пытался у Калашникова найти , но как то не совсем понятно , о чем он пишет !!!!! все вирусы рассматривает и оболочки , а фундаментального простейшего материала мало дает . |
|||
|
||||
| котъ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.9.2004 Репутация: нет Всего: нет |
КСТАТИ , я неплохо шарю в аналоговой технике , так что и ты можешь
у меня в этом спрашивать , если интересно, конечно. |
|||
|
||||
| Akina |
|
||||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
а за что? за то что тебе лень воспользоваться поиском и читать гору манов? расчитываешь что тебе будут разъяснять значение терминов "локальные метки" и "условное подключение"? да ни в жисть... этого добра (разъяснений то есть) в Инете - горы. Только бери. Начни, к примеру, отсюда.
см. выше. там ВСЕ есть.
Если это оправдано целью - они неправы. Учить ради того чтобы хоть чем-то заняться или на случай "а вдруг пригодится" - тоже можно. Впрочем сначала сделать, а потом придумать зачем оно сделано - как-то странно... Хочешь чтобы тебя похвалили? Разберись в этом вопросе (что как делается, когда что разумнее, какие есть грабли и как их обойти) и напиши небольшую, компактную, с примерами, статейку в ФАК. Вот это будет дело достойное... И эта... одного восклицательного знака вполне достаточно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||
|
|||||||
| котъ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.9.2004 Репутация: нет Всего: нет |
Akina !!!!!!
спасибо за совет !!! в общем то ты прав !!!!------ мне немного лень ! я ваще то спец по аналогу , но программирую и микроконтроллеры. а ассемблер необходим для обработки данных с МК на компе. другие языки почему то не интересны , а тут некая аналогия с микроконтроллерами , да и машину можно изучить--- это самое главное !!!!!! . И ваще то получается. В плане локальных меток я действительно не искал -- грешен . Но в плане public и external действительно немного помучался !!!!!! Вот здесь то не грешил !!!!!!! но не получается !!!!!! Просто везде где читал написано общими словами без понятных примеров. Вот и попросил тебя здесь подробнее разьяснить . Пограммирую только с октября прошлого года и мне бы было интересно узнать твое мнение относительно готовых уже работающих программ. Можно тебя попросить просмотреть их и дать рецензию ??????------- ------- там все с коментариями , быстро будет. Может изменишь свое мнение и с public & external поможешь разобраться. |
|||
|
||||
| котъ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.9.2004 Репутация: нет Всего: нет |
кстати, объясни пожалуйста --- можно ли пользоваться материалом писанным для TASM ---- для MASM6.11 в сети почти ничего нет
|
|||
|
||||
| Akina |
|
||||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Хрен с тобою.
Пример: Файл 1.asm
Файл 2.asm
Сборка (для TASM 3.1): tasm 1.asm -> 1.obj tasm 2.asm -> 2.obj tlink /t 1.obj+2.obj -> 1.com td 1.com -> возможность посмотреть в трассере что получилось в коде, и на экране - как работает. Добавлено @ 12:29
а доку по МАСМу почитать??? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||
|
|||||||
| котъ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.9.2004 Репутация: нет Всего: нет |
Akina !
СПАСИБО !!!!!! ДОБРЫЙ ТЫ ЧЕЛОВЕК !!! А ПРОГИ МОИ ХОЧЕШЬ ПОСМОТРЕТЬ ??/ Я CТАРАЛСЯ , МОЖЕТ ЧО ОРИГИНАЛЬНОЕ СЛЕПИЛ по своему невежеству- --- бывает и такое , МОЖЕТ И НЕ ОЧЕНЬ . Ваще то я не совсем дурак и своих разработок -- в аналоге, правда -- у меня не один десяток . Кстати , зря ты на меня наехал , в сети действительно TASM и указания на локальные метки и прочее в его как бы эмуляции MASMа----- ------может я не совсем грамотно выразился , но все равно не ясно до конца - будут ли эти кирпичи работать в чистом MASMе 611 ???? просто у меня опыта работы очень мало, вот и не могу сразу ориентироваться. Потому не злись сильно на вопросы , которые тебе кажутся глупыми. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
а попробуй, ёлы-палы... только собирай в ДОС-окне, чтобы матюги компилера-линкера видеть...
Насчет смотреть - ежели вправду, то не люблю рыться в чужом коде. У прынципе. Пока не подопрет, конечно... если полагаешь что твои реально работающие программы кому-то могут быть полезны и/или интересны - ну выклади ты их с исходниками на всеобщее оборзение, благо халявных сервантов под паги счас как грязи... тебе ж даже скрипты под то не надобны... а тут (али еще где) УРЛу соответственно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |