Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не проходит трансляция, Программа запускает установленный браузе 
:(
    Опции темы
serrggeee
Дата 5.3.2012, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

; winurl.asm
; Пример программы для win32
; Запускает установленный по умолчанию браузер на адрес, указанный в строке URL.
; Аналогично можно запустить любую программу, документ и какой угодно файл.
; для которого определена операция open.
;
 
includelib kernel32.inc
include  shell32.inc
        .386
        .model flat
        .const
URL     db      "http://www.lionking.org/`cubbi/",0
        .code
_start:         ; Метка точки входа должна начинаться с подчёркивания.
        xor     ebx,ebx        
        push    ebx                             ; Для исполняемых файлов - способщ показа.
        push    ebx                             ; Рабочач директория.
        push    ebx                             ; Командная строка.
        push    offset URL                      ; Имя файла с путём.
        push    ebx                             ; Операция open или print (если NULL - open).
        push    ebx                             ; Индентификатор окнаб
        call    shellExecute                    ; ShellExecute (NULL,NULL,url,NULL,NULL,NULL)
        push    ebx                             ; Код выхода.
        call    ExitProcess                     ; ExitProcess(0)
end     _start 

и нужно ещё два inc файла

Код

kernel32.inc
; kernel32.inc
; включаемый файл с определениями функций и kernel32.dll
ifdef   _TASM_
        includelib      import32.lib
                ; Имена используемых функций.
                extrn   __imp__ExitProcess@4:dword
        ExitProcess     equ     __imp__ExitProcess@4
endif


Код

shell32.inc
; kernel32.inc
; включаемый файл с определениями функций и kernel32.dll
ifdef   _TASM_
        includelib      import32.lib
                ; Имена используемых функций.
                extrn   __imp__ExitProcess@4:dword
        ExitProcess     equ     __imp__ExitProcess@4
endif


но трансляция не проходит
PM MAIL   Вверх
500mhz
Дата 5.3.2012, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

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



и что пишет?


--------------------

PM MAIL ICQ   Вверх
serrggeee
Дата 6.3.2012, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



вот полный путь до исходника  "C:\masm32\bin\Hello World\ISHODNIC\winurl.asm"

а вот что пишет CMD 
  

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\Сергей>c:\masm32\bin\ml.exe   /coff /c   .\ISHODNIC\wi
nurl.asm
Microsoft ® Macro Assembler Version 6.14.8444
Copyright © Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: .\ISHODNIC\winurl.asm
MASM : fatal error A1000: cannot open file : .\ISHODNIC\winurl.asm

C:\Documents and Settings\Сергей>

C:\Documents and Settings\Сергей>
PM MAIL   Вверх
500mhz
Дата 6.3.2012, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

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



Код


include 'win32ax.inc'


section "code" readable writeable executable


start:

        invoke ShellExecute,0,0,URL,0,0,0
        invoke ExitProcess,0
URL:
        db "http://www.lionking.org/`cubbi/",0

.end start                                                


fasm все прекрасно компилит и работает )


--------------------

PM MAIL ICQ   Вверх
serrggeee
Дата 6.3.2012, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



у меня MASM а на сколько я знаю есть небольшая разница в коде я не имею ту разницу то что вы
записали "invoke ShellExecute,0,0,URL,0,0,0", я через call, а то что  в  fasm  start, а в masm start_ или же можно брать ваш код и компилировать? Вот что ещё я хотел спросить вот эти файлы kernel32.inc shell32.inc которые я создал хотя я их немного не верно написал но нив этом суть как их включать, я вообще так сделал у меня в одной директории bin папка Hello World я так её назвал потому что первое пришло на ум вот в этой папке папка INCLUDE и папка ISHODNIC где соответственно в одной мною созданные файл inc а в другой исходник, так вот в чё м вопрос найдёт компилятор эти файлы так как в masm32 ecmь свои файлы inc
 
PM MAIL   Вверх
500mhz
Дата 6.3.2012, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

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



я масмом 100 лет честно говоря не пользовался и под рукой не имею.
а вам именно на масме все это делать приспичило?


--------------------

PM MAIL ICQ   Вверх
serrggeee
Дата 6.3.2012, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



да я им пользуюсь
PM MAIL   Вверх
Evjeny
Дата 6.3.2012, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



serrggeee, укажите полный путь к файлу

т.е. итоговый вызов ml:

C:\Documents and Settings\Сергей>c:\masm32\bin\ml.exe   /coff /c "C:\masm32\bin\Hello World\ISHODNIC\winurl.asm"

кавычки в пути обязательны, так как есть пробел (\Hello Word\)
PM MAIL WWW   Вверх
serrggeee
Дата 6.3.2012, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\Сергей>c:\masm32\bin\ml.exe   /coff /c "C:\masm32\bin\
Hello World\ISHODNIC\winurl.asm"
Отказано в доступе.

C:\Documents and Settings\Сергей>
PM MAIL   Вверх
Evjeny
Дата 6.3.2012, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



поставте необходимые права на папку(и)

если есть антивирус возможно он блокирует (хотя скорее всего вряд ли)
PM MAIL WWW   Вверх
serrggeee
Дата 6.3.2012, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



у меня не стоит антивирусник наверное он и блокирует masm прийдётся переустановить

Добавлено через 8 минут и 4 секунды
вот что пишет cmd 
"Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\Сергей>c:\masm32\bin\ml.exe   /coff /c "C:\masm32\bin\
Hello World\ISHODNIC\Step_One.asm"
Microsoft ® Macro Assembler Version 6.14.8444
Copyright © Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: C:\masm32\bin\Hello World\ISHODNIC\Step_One.asm
C:\masm32\bin\Hello World\ISHODNIC\Step_One.asm(7) : fatal error A1000: cannot o
pen file : 'shell32.inc'

C:\Documents and Settings\Сергей>"
PM MAIL   Вверх
serrggeee
Дата 6.3.2012, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я ещё заметил одно чудо у меня есть исходник который компилится нормально но только через батник вот что содержит батник "@   echo  ___________STEP_ONE_________________________________________

@   C:\masm32\bin\ml.exe   /coff /c   .\ISHODNIC\Step_One.asm"

но если я ввожу эту же команду  в cmd результат следующий:

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\Сергей>@   C:\masm32\bin\ml.exe   /coff /c   .\ISHODNI
C\Step_One.asm
Microsoft ® Macro Assembler Version 6.14.8444
Copyright © Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: .\ISHODNIC\Step_One.asm
MASM : fatal error A1000: cannot open file : .\ISHODNIC\Step_One.asm

C:\Documents and Settings\Сергей>


то есть та же ошибка fatal error A1000 
PM MAIL   Вверх
Evjeny
Дата 6.3.2012, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

includelib kernel32.inc
 это неправильно

Код

include с:\masm32\include\kernel32.inc
include с:\masm32\include\shell32.inc

includelib с:\masm32\lib\kernel32.lib
includelib с:\masm32\lib\shell32.lib


в include/includelib указывайте полный путь к файлам, либо устанавливайте пути через переменные среды, либо еще как-нибудь - интеренет в помощь

Это сообщение отредактировал(а) Evjeny - 6.3.2012, 20:11
PM MAIL WWW   Вверх
serrggeee
Дата 6.3.2012, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я поменял часть кода на то что вы советовали 
Код

include с:\masm32\include\kernel32.inc
include с:\masm32\include\shell32.inc
includelib с:\masm32\lib\kernel32.lib
includelib с:\masm32\lib\shell32.lib


теперь вот что показывает:
"Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\Сергей>c:\masm32\bin\ml.exe   /coff /c .\ISHODNIC\Step
_One.asm
Microsoft ® Macro Assembler Version 6.14.8444
Copyright © Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: .\ISHODNIC\Step_One.asm
MASM : fatal error A1000: cannot open file : .\ISHODNIC\Step_One.asm

C:\Documents and Settings\Сергей>"
PM MAIL   Вверх
serrggeee
Дата 6.3.2012, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



транляцию я сделал и получил файл obj но не через cmd а через батник теперь не получатеся сделать линковку вот что выходит:
"Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\Сергей>if EXIST Step_One.obj c:\masm32\bin\link.exe /S
UBSYSTEM:WINDOWS   .\Step_One.obj
Microsoft ® Incremental Linker Version 5.12.8078
Copyright © Microsoft Corp 1992-1998. All rights reserved.

Step_One.obj : fatal error LNK1190: invalid fixup found, type 0x0002

C:\Documents and Settings\Сергей>"
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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