Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение папки в которой лежит прога, на FASM, и еще передача параметров в командную... 
:(
    Опции темы
fAL
  Дата 27.1.2005, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.10.2004

Репутация: нет
Всего: нет



Дайте пожалуйсто исходничек маленькой программки выдающий ввиде MessageBox'а адрес папки из которой она запущена ("C:\..."), и еще если можно исходничек(уже другой жалательно, а то я не разберусь) маленькой програмки передающий чего либо в командную строку (типа формат це smile ).... Язык fasm, формат exe
Не судите строго, я новичек smile
smile
PM MAIL   Вверх
Akina
Дата 27.1.2005, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Под Виндой? под ДОСом?

И нахрена дубли плодить?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
fAL[SCHOOL]
Дата 28.1.2005, 17:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Akina @ 27.1.2005, 15:27)
Под Виндой? под ДОСом?

И нахрена дубли плодить?

Под Винду эстественно, а дубли для того что-бы больше народу прочитало
  Вверх
Chingachguk
Дата 30.1.2005, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 3
Всего: 18



Код

.386
.model flat,stdcall
option casemap :none  ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib

[b]include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib[/b]

...

.data?
lpCmdLine     dd ?
.code

 invoke GetCommandLine
 mov lpCmdLine,eax       ; address command line

.data
MsgCaption db 'MsgBox',0
.code

 invoke MessageBox,NULL,lpCmdLine,addr MsgCaption,MB_OK



--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
fAL
Дата 30.1.2005, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.10.2004

Репутация: нет
Всего: нет



Чингачгук, спасибо за ответ, но я новичек и поэтому врядли смогу перевести это дело с masm на fasm smile
PM MAIL   Вверх
Chingachguk
Дата 31.1.2005, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 3
Всего: 18



Гм. Ну дай мне пример простой программы на fasm - чтобы я врубился в синтаксис



--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Guest
Дата 31.1.2005, 11:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Chingachguk @ 31.1.2005, 00:05)
Гм. Ну дай мне пример простой программы на fasm - чтобы я врубился в синтаксис

Вот в одном туториале нашел:

КОД:
; с этого символа начинается строка комментариев :-)
format PE GUI 4.0 ;сообщаем компилятору, что хотим создать GUI-приложение под windows,
;ведь фасм может работать под разными платформами
;*****************************************
entry start ;указываем точку входа, т. е. с какой метки начинает выполняться программа
;*****************************************
include 'c:\fasm\include\win32a.inc' ;подключаем файл, который будет определять вызов WinАРI-функций
; Вместо «c:\fasm» пропишите свой путь к папке с фасмом
;*****************************************
section '.data' data readable writeable ;секция данных
;в данном случае мы инициализируем две строки, оканчивающиеся нулевым символом,
;Все строки должны оканчиваться нулём, почему?.. А догадайтесь сами :-)
message db 'fasm - это круто',0
caption db 'Типа название',0
;*****************************************
section '.code' code readable executable ; здесь будет наш код
start: ;точка входа, не забыли что эт такое?..
;вызываем виндошную функцию, выводящую MessageBox
invoke MessageBox,NULL,message,caption,MB_OK
;завершаем работу программы
invoke ExitProcess,NULL
;*****************************************
section '.idata' import data readable writeable
library kernel,'KERNEL32.DLL',user,'USER32.DLL'
import kernel,ExitProcess,'ExitProcess'
import user,MessageBox,'MessageBoxA'
;*****************************************

  Вверх
oleg1973
Дата 1.2.2005, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 2
Всего: 34



Код

include '%fasminc%/win32ax.inc'

.code
start:
       invoke GetCurrentDirectory,512,buff
       invoke MessageBox,0,buff,buff,0
       invoke ExitProcess,0
buff:
       times 512 db 0
.end start                                      

упростим немнога код smile


и вот чуть не забыл насчет командной строки,
там еще проще , делаем invoke GetCommandLine
получаем указатель на asciz строку вида "C:\test.exe parametr"
в случае если наш файл лежал в корне диска С и звался тест.ехе
ну и сам parametr если он конешно был передан файлу



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
fAL[SCHOOL]
Дата 1.2.2005, 13:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(oleg1973 @ 1.2.2005, 11:59)
Код

include '%fasminc%/win32ax.inc'

.code
start:
       invoke GetCurrentDirectory,512,buff
       invoke MessageBox,0,buff,buff,0
       invoke ExitProcess,0
buff:
       times 512 db 0
.end start                                      

упростим немнога код smile


и вот чуть не забыл насчет командной строки,
там еще проще , делаем invoke GetCommandLine
получаем указатель на asciz строку вида "C:\test.exe parametr"
в случае если наш файл лежал в корне диска С и звался тест.ехе
ну и сам parametr если он конешно был передан файлу

Получил следующий код
Код

format PE GUI 4.0
entry start

include 'D:\assembler\INCLUDE\win32a.inc'
include 'D:\assembler\INCLUDE\win32ax.inc'


section '.code' code readable executable start:

      invoke GetCurrentDirectory,512,buff
      invoke MessageBox,0,buff,buff,0
      invoke ExitProcess,0

buff:
      times 512 db 0


section '.idata' import data readable writeable
library kernel,'KERNEL32.DLL',user,'USER32.DLL'
import kernel,ExitProcess,'ExitProcess'
import user,MessageBox,'MessageBoxA'
                                                               


Но этот код не работает,
говорит что ошибка в 68 строке файла stdcall.inc в фразе "purge rstargs#first@args"


  Вверх
oleg1973
Дата 1.2.2005, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 2
Всего: 34



Код

format PE GUI 4.0
entry start
include 'c:\fasm\INCLUDE\win32a.inc'
section '.code' code readable executable
start:
     invoke MessageBox,0,buff,buff,0
     invoke ExitProcess,0
buff:
     times 512 db 0


section '.idata' import data readable writeable
library kernel,'KERNEL32.DLL',\
       user,'USER32.DLL'

import kernel,\
      ExitProcess,'ExitProcess'
import user,\
      MessageBox,'MessageBoxA'


я сморю ленивый ты smile)))
а GetCurrentDirectory сам подумай как прикрутить


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.1091 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.