Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2011, 17:53   #1
Studik
Пользователь
 
Аватар для Studik
 
Регистрация: 07.05.2010
Сообщений: 34
По умолчанию Организация параметров в *.com

Доброго времени суток. Я не так уж и давно начал изучать ассемблер, но по книге уже дошел до создания вирусов и поиску файлов. А интересующий меня вопрос все еще в ней не рассматривался, а именно как сделать так что бы программа для Dos понимала параметры. Например программа складыват 2 числа-параметра A и B; в DOS команда будет выглятеть примерно так:
c:\Summa /2 /4
c:\6
c:\
Объясните пожалуйста принцип написания подобной программы и, если кому не будет трудно, открытый код этой программы.
Всем заранее спасибо.
Если бы все люди были идеальны, то любого человека можно было бы заменить любым другим...
Studik вне форума Ответить с цитированием
Старый 01.03.2011, 18:35   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

параметры складываются начиная с 0х81-го байта в псп.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 01.03.2011, 18:54   #3
Studik
Пользователь
 
Аватар для Studik
 
Регистрация: 07.05.2010
Сообщений: 34
По умолчанию

За ссылочку спасибо, думаю разберусь, но от коментариев к строкам 4 - 6 не откажусь
Код:
1) org   100h
2)
3) ; int 21h subfunction 9 requires '$' to terminate string
4) xor   bx, bx
5) mov   bl, [80h]
6) mov   byte [bx + 81h], '$'
7)
8) ; print the string
9) mov   ah, 9
10) mov   dx, 81h
11) int   21h
12)
13) ; exit
14) mov   ax, 4C00h
15)int   21h
Если бы все люди были идеальны, то любого человека можно было бы заменить любым другим...
Studik вне форума Ответить с цитированием
Старый 01.03.2011, 19:21   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
4) xor   bx, bx  --- очищаем bx

5) mov   bl, [80h]  --- получаем длину командной строки в bl

6) mov   byte [bx + 81h], '$'  --- в конец командной строки записываем символ $
                               --- это нужно, чтобы функция печати строки на экран, которая вызывается ниже
                               --- знала, где конец строки
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 01.03.2011, 19:33   #5
Studik
Пользователь
 
Аватар для Studik
 
Регистрация: 07.05.2010
Сообщений: 34
По умолчанию

Огромное спасибо. Тема закрыта
Если бы все люди были идеальны, то любого человека можно было бы заменить любым другим...
Studik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организация скинов Shad0w64bit Компоненты Delphi 5 03.09.2010 13:45
Организация видеоконференции. the_deer_one Свободное общение 5 29.07.2010 10:24
Организация поиска в бд Rainkhz БД в Delphi 8 05.07.2010 21:46
Организация цикла mephist Microsoft Office Excel 2 17.07.2009 16:27
Организация сокетов mar4elo Работа с сетью в Delphi 1 01.01.2009 16:50