Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при компилляции! 
:(
    Опции темы
wrvu
Дата 23.12.2009, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите как правильно задать компиллятору команду для данного кода:
Код

.MODEL small
.STACK 200h
.DATA
  StringBuffer db 81 dup(?)
.CODE
start: 
  mov ax,2 
  mov ds,ax
  mov ah,0Fh                 
  int 10h
end start


Я прописываю так: ml /c /coff namefile.asm 
Ошибка:  Assembling: namefile.asm
namefile.asm(11) : warning A4023: with /coff switch, leading underscore required for start address : start

------------
Какой в этоге вообще должен получиться файл .com .exe?
Подскажите правильные команды!
мой вариант:
ml /c /coff namefile.asm
link  /subsystem:windows namefile.obj


Это сообщение отредактировал(а) wrvu - 23.12.2009, 16:34
PM MAIL   Вверх
500mhz
Дата 23.12.2009, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


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

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



в теории ЕХЕ должен получиться, для СОМ нужно указать org 0x100

пс
а чем обусловлен выбор компилятора? не проще ли в фасме скомпилить нажав F9 ? 


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

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


Новичок



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

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



500mhz благодарен за ответ. Не в простоте дело, использую компиллятр MASM - компиляция также происходить от одного нажатия клавиши. Но не в нажимании дело, я хочу изучить прерывания, поискал в интернете информацию не нашел.

Если кто владеет такой информацией о прерываниях, и как правильно задавать команды компиллятору, поделитесь пожалуйста. 
PM MAIL   Вверх
airyashov
Дата 23.12.2009, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(wrvu @  23.12.2009,  16:29 Найти цитируемый пост)
Какой в этоге вообще должен получиться файл .com .exe?
Подскажите правильные команды!
мой вариант:
ml /c /coff namefile.asm
link  /subsystem:windows namefile.obj


exe
ml namefile.asm - достаточно





--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
wrvu
Дата 23.12.2009, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



airyashov Благодарю за ответ, вот только бы еще правильную команду для link. Иду пробовать твой вариант!!  smile 
-----------------------------------------------
Попробовал, вариант на верном пути, только все равно ошибка.
Код

 Assembling: musor2.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/z2 
"musor2.obj" 
"musor2.exe" 
NUL 
LINK : warning LNK4044: unrecognized option "z2"; ignored
musor2.obj : warning LNK4033: converting object format from OMF to COFF
musor2.obj : warning LNK4078: multiple ".data" sections found with different attributes (C0220040)
LINK : fatal error LNK1181: cannot open input file "musor2.exe"


 Не пойму в чем дело!  smile 
---------------------
Помогите! не могу скомпиллировать, что бы получился рабочий файл .exe
Код

.model small,c
.stack 100h
.data
  StringBuffer db 81 dup(?)
.code
start: 
  mov ax,2 
  mov ds,ax
  mov ah,0Fh                 
  int 10h
end start


Это сообщение отредактировал(а) wrvu - 23.12.2009, 23:28
PM MAIL   Вверх
airyashov
Дата 24.12.2009, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



незнаю что за масм у Вас 6,11 результат нормальный exe

L:\asm\MASM611\BIN>ml 2.asm
Microsoft ® Macro Assembler Version 6.11
Copyright © Microsoft Corp 1981-1993.  All rights reserved.

 Assembling: 2.asm

Microsoft ® Segmented Executable Linker  Version 5.31.009 Jul 13 1992
Copyright © Microsoft Corp 1984-1992.  All rights reserved.

Object Modules [.obj]: 2.obj
Run File [2.exe]: "2.exe"
List File [nul.map]: NUL
Libraries [.lib]:
Definitions File [nul.def]:

L:\asm\MASM611\BIN>




--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
wrvu
  Дата 24.12.2009, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



airyashov Благодарю за ответ. Помоги мне и на дальше разобраться, у маня Масм вот какой, сообщение после компиляции с ошибкой:

Microsoft ® Macro Assembler Version 6.15.8803
Copyright © Microsoft Corp 1981-2000.  All rights reserved
 Assembling: musor2.asm
Microsoft ® Incremental Linker Version 5.12.8078
Copyright © Microsoft Corp 1992-1998. All rights reserved.

/z2 
"musor2.obj" 
"musor2.exe" 
NUL 
LINK : warning LNK4044: unrecognized option "z2"; ignored
musor2.obj : warning LNK4033: converting object format from OMF to COFF
musor2.obj : warning LNK4078: multiple ".data" sections found with different attributes (C0220040)
LINK : fatal error LNK1181: cannot open input file "musor2.exe"


В чем же ошибка?
airyashov А возможно, прикрипить твой Масм для пробы? Может в версиях разница...

Это сообщение отредактировал(а) wrvu - 24.12.2009, 01:11
PM MAIL   Вверх
wrvu
Дата 24.12.2009, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо за помощь, разобрался с ошибкой, проблемма была в версии LINK.EXE. Получился файл .exe я так понимаю 16-битная программа? Каким отладчиком ее можно просмотреть?  smile 
PM MAIL   Вверх
Mikl_
Дата 24.12.2009, 04:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



wrvu
Вот здесь я прикреплял afdpro -- для 16-разрядных программ достаточно хороший отладчик, еще для этих целей есть insight, td

Это сообщение отредактировал(а) Mikl_ - 24.12.2009, 06:13
PM MAIL   Вверх
wrvu
Дата 24.12.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо Mikl_, подскажи, вот к примеру такой код
Код

.model small,c
.stack 100h
.data
  StringBuffer db 81 dup(?)
.code
start: 
  mov ax,2 
  mov ds,ax
  mov ah,0Fh                 
  int 10h
end start

может быть .exe 32 бит? Хочу углубиться в изучение портов (USB), как вообще они работают, если имееться такая информация, с радостью почитаю.  smile 
PM MAIL   Вверх
Mikl_
Дата 24.12.2009, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



wrvu
32-разрядные инструкции в 16-разрядных программах (COM, EXE для DOS, OVR, DRV)
делаются путем указания перед инструкции .586 например
Код
.286;<-- команды для микропроцессора 80286
.model tiny ;<-- модель памяти для COM программ
.code
org 100h
start: mov ah,9
          mov dx, offset Hello
          int 21h
.586;<-- далее пойдут инструкции для Пня
       cpuid; <-- инструкция Pentium'a
.286; <-- снова переходим на инструкции 80286
         retn
Hello db 'Hello, world!$'   
end start
 
либо если старый компилятор и не знает новых команд пишешь в кодах например для cpuid -- db 0Fh, 0A2h
PM MAIL   Вверх
wrvu
Дата 24.12.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Mikl_ Благодарю заответ! Я так понял,что мне нужно идти читать книжки  smile 
Подскажите, если писать программу, которая бы работала с USB портом, нужно использовать прерывания?
PM MAIL   Вверх
Mikl_
Дата 25.12.2009, 04:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



wrvu
Если писать программы для Windows, то там нет прерываний в привычном для DOS понимании, там всё делается через WinAPI-функции
PM MAIL   Вверх
wrvu
Дата 26.12.2009, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я так понял, что с помощью IP-функций также можно использовать порт USB?  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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