Консультация онлайн # 189761

Раздел: Assembler
Автор вопроса: Strannik (Посетитель)
Дата: 11.09.2016, 00:17 Консультация неактивна
Поступило ответов: 1
Здравствуйте! У меня возникли сложности с таким вопросом:
Купил книгу Олега Калашникова Ассемблер это просто. Дисковода у меня нет..поэтому решил скачать файлы по книге с сайте:http://kalashnikoff.ru. Сайт оказался не рабочим..вернее там другая инфа по недвижимости. Где мне взять нужные файлы по книге?
Здравствуйте, Strannik!

У меня тоже 32-х битная семерка и все работает. Пиратка или нет, тут роли не играет. Скорее всего, Вы что-то не так делаете.

Внимательно прочитайте Установка и настройка Microsoft MASM 6.11.

У меня стоит много компиляторов(см. рисунок) и одна папка для рабочих программ (_my)


С MASM как и с TASM работают в командной строке, чтобы запустить её Вам нужно:

WIN + R появится окно Run, нужно набрать CMD и нажать ОК
или
Start -> All program -> Accessories -> Command Prompt(я отправил ярлык на рабочий стол и изменил его параметры, поэтому мне не нужно переходить в рабочую папку, она открывается сразу(см. рисунок))

В результате откроется окно команндной строки

Левое верхнее окно стандартный запуск, нижнее - с измененными настройками и я пропускаю переход в рабочую папку с помощью команд: D: -> CD Cat\_my.

Дальше я работаю с помощью ВАТ-файлов(т.к. компиляторов много, я прописываю каждый раз полный путь к нужному, а не прописываю их адреса в PATH).

MASM:

D:\CAT\_Lang\Masm\Masm.613\BIN\ml 160601b.asm /c
D:\CAT\_Lang\Tasm\tasm.2\tlink 160601b.obj /t


TASM:

D:\CAT\_Lang\Tasm\tasm.4\BIN\tasm 160601b
D:\CAT\_Lang\Tasm\tasm.4\BIN\tlink 160601b /t



После компиляции? в этой же командной строке набираю имя 160601b и программа запускается. Если есть ошибки компиляции или в коде, иправляю их и все повторяется с момента компиляции.

Для графики использую DOSBox. Отладчик AFDpro или Debug.

Удачи!

Зенченко Константин Николаевич

Старший модератор
20.09.2016, 19:27
Нет оценки ответа

Мини-форум консультации # 189761

Лысков Игорь Витальевич

Советник

ID: 7438

290678

= общий =    12.09.2016, 09:48
Что именно Вас интересует?
Программы, как то masm, tasm, CodeView, afd легко найти в инете.
Если исходники к книге, могу дать...
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Strannik

Посетитель

ID: 400534

290679

= общий =    12.09.2016, 18:16
спасибо..зашел в ближайший бутик и скопировал диск на флешку за 30 руб..меня интересовали исходники. Но возник новый вопрос. CodeView..он не идет под Виндовс семь на 32.. или я что то неправильно делаю?
Лысков Игорь Витальевич

Советник

ID: 7438

290681

= общий =    12.09.2016, 19:15
Исходники: enclosures.exe (148.1 кб)
Хм, CodeView, действительно, не идет под Win7. Кстати, никогда не пользовался, специально попробовал... smile
Предполагаю, CodeView пытается как-то манипулировать тем, к чему Win7 не дает доступ... Например, верхней памятью...
Под XP32 вполне работает.
Могу порекомендовать старенький AFD или TurboDebug из пакета TASM-а
В общем-то, AFD для простеньких досовских программ вполне достаточно.
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Strannik

Посетитель

ID: 400534

290683

= общий =    12.09.2016, 19:32
ок..спасибо..или поставить эмулятор операционки XP32
Лысков Игорь Витальевич

Советник

ID: 7438

290684

= общий =    12.09.2016, 19:37
Попробуйте, если хочется smile
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Strannik

Посетитель

ID: 400534

290686

= общий =    12.09.2016, 22:16
МASM 6.10-6.13 у вас не найдется?
Лысков Игорь Витальевич

Советник

ID: 7438

290687

= общий =    13.09.2016, 10:54
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Strannik

Посетитель

ID: 400534

290695

= общий =    13.09.2016, 21:03
Ну вот..продолжаю дальше вас пытать. Я пишу програмки на Delphi 7 но с ассемблером решил в плотную заняться только недавно..хотя попыток было множество..хоть и низкоуровневый язык..но для меня трудноват. Так же не могу понять..как программы на ассемблер установить. Вот вы дали мне архив..в папке много дисков..запустил сетап с первого диска..вышло дос окно..установил..появилась папка MASM61 ..куча всего в папке и ничего не работает..
Strannik

Посетитель

ID: 400534

290732

= общий =    18.09.2016, 21:54
Вы знаете, разобрался с установкой. Даже нашел в нете как установить компоновщик: Очевидно, самым разумным шагом будет указать в переменной окружения path операционной системы пути ко всем этим подкаталогам. В этом случае системе будет известно о каждом файле, входящем в любой из этих подкаталогов.
Но вот беда..при запуске MASM.EXE выдает ошибку что, НЕ ЯВЛЯЕТСЯ ПРИЛОЖЕНИЕМ WIN 32. Поможете с установкой?
Лысков Игорь Витальевич

Советник

ID: 7438

290737

= общий =    19.09.2016, 18:15
Подозреваю, что у Вас таки 64-битная система.
У меня на 32-битной win7 - никаких проблем!
Как вариант, найдите DosBox и запускайте из-под нее
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Strannik

Посетитель

ID: 400534

290738

= общий =    19.09.2016, 18:25
ну что вы..у меня 32-битная система. Просто пиратская версия.
Лысков Игорь Витальевич

Советник

ID: 7438

290739

= общий =    19.09.2016, 18:35
Константин Николаевич, есть что сказать по данному поводу?
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Зенченко Константин Николаевич

Старший модератор

ID: 31795

290741

= общий =    20.09.2016, 12:10
У меня тоже 32-х битная семерка и тоже все работает как у Игоря Витальевича. Пиратка или нет тут роли не играет. Скорее всего, Вы что-то не так делаете.
У меня стоит много компиляторов(см. рисунок) и одна папка для рабочих программ(_my)

WIN + R появится окно Run, нужно набрать CMD и нажать ОК или
Start -> All program -> Accessories -> Command Prompt
В результате откроется окно команндной строки

Нужно перейти в рабочую папку D:-> CD _Cat\_my(это так у меня).
Чтобы сразу открывалась рабочая папка нужно изменить свойства ярлыка(см. рисунок)
Дальше я работаю с помощью ВАТ-файлов

D:\CAT\_Lang\Masm\Masm.613\BIN\ml 160601b.asm /c
D:\CAT\_Lang\Tasm\tasm.2\tlink 160601b.obj /t


или

D:\CAT\_Lang\Tasm\tasm.4\BIN\tasm %1
D:\CAT\_Lang\Tasm\tasm.4\BIN\tlink %1 /t


и все запускается в командной строке. Для графики исполmзую DOSBox. Отладчик AFDpro или Debug.
Последнее редактирование 20.09.2016, 15:22 Зенченко Константин Николаевич (Старший модератор)
=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile
Strannik

Посетитель

ID: 400534

290746

= общий =    20.09.2016, 19:07

WIN + R появится окно Run, нужно набрать CMD и нажать ОК

ДАЖЕ НА ЭТОМ ЭТАПЕ У МЕНЯ ПИШЕТ ЧТО НЕ МОЖЕТ НАЙТИ CMD блин..ну буду как нибудь сам пытаться решить проблему..спасибо
Strannik

Посетитель

ID: 400534

290747

= общий =    20.09.2016, 19:10
вот MASM32 9.0 Release устанавливается без проблем..
Лысков Игорь Витальевич

Советник

ID: 7438

290748

= общий =    20.09.2016, 19:21
Ну так masm32 - 32-битное приложение smile
Нет CMD - "хорошая" сборка... smile
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Зенченко Константин Николаевич

Старший модератор

ID: 31795

290750

= общий =    20.09.2016, 19:32
Что-то тут не так.

-----
Прикрепленные файлы:

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile
Strannik

Посетитель

ID: 400534

290751

= общий =    20.09.2016, 19:39
у меня так

-----
Прикрепленные файлы:

Strannik

Посетитель

ID: 400534

290752

= общий =    20.09.2016, 19:43
попробуйте продублировать до мелочей установку..я разархивирую папку masm613.zip захожу в папку диск 1 и запускаю сетап..далее появляется меню на синем экране..первая строке..ентер..далее подтверждаю yes..на диск с установилось папка MASM611 захожу в папку BIN и пытаюсь запустить файл MASM.EXE
Последнее редактирование 20.09.2016, 19:44 Strannik (Посетитель)
Зенченко Константин Николаевич

Старший модератор

ID: 31795

290754

= общий =    21.09.2016, 11:59

на диск с установилось папка MASM611 захожу в папку BIN и пытаюсь запустить файл MASM.EXE


Скорее всего, Вы что-то не так делаете.


Вы читали, мой ответ?

С MASM как и с TASM работают в командной строке, чтобы запустить её Вам нужно:


Не с проводника запускать, а с КОМАНДНОЙ СТРОКИ.
В прикрепленном файле работа с Tasm, для MASM аналогично, только команда:ML name.asm

-----
Прикрепленные файлы:

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile
Strannik

Посетитель

ID: 400534

290755

= общий =    21.09.2016, 19:06
Настройка. Если установка пакета MASM 6.11 производилась с параметрами по-умолчанию, то в результате диск C:\ будет содержать ноый каталог, а именно: C:\MASM611\. (Если пакет MASM 6.11 был установлен на диске отличном от диска C:\, то при настройках путей к файлам MASMа следует указывать именно этот диск!. Например, D:\MASM611 и т.п.).

Теперь остались сущие пустяки: нужно указать Windows где ей следует искать файлы и программы установленного пакета.

После установки каталог \MASM611\ содержит в себе несколько папок, или подкаталогов: \BIN\, \BINR\, \LIB\, \INCLUDE\, \HELP\, \INIT\, \SAMPLES\.

Очевидно, самым разумным шагом будет указать в переменной окружения path операционной системы пути ко всем этим подкаталогам. В этом случае системе будет известно о каждом файле, входящем в любой из этих подкаталогов.

Итак, проделываем в Windows следующий путь: «Пуск», «Мой компьютер». В открывшемся окне, вверху-слева, находим и жмем на графу «Просмотр сведений о системе». Открываем пункт «Дополнительно». В нижней части открывшегося окна нажимаем на пункт «Переменные среды».

Вновь открывшееся окно будет разделено на две половины: верхнюю и нижнюю. Нас интересует нижняя половина, в которой нужно найти строчку, начинающуюся со слова path.

Предупреждение! Будте внимательны при редактировании переменной среды path: добавляйте новые значения только в конец строки! Изменение предустановленных параметров может привести к неработоспособности некоторых установленных программ или системы в целом!

Кликаем по этой строчке двойным щелчком мыши. Откроется небольшое окошко «Изменение системной переменной», в котором будет выделена синим цветом указанная строка.


Кликаем мышкой в конец выделенной строки, переводим раскладку клавиатуры в латинскую и ставим сразу же за последним символом, символ точки с запятой «;».

Теперь нужно (без пробелов!) дописать в этой строке полные пути к нашим подкаталогам, разделяя каждый из них сиволом точки с запятой. Пишем, начиная с подкаталога BIN: C:\MASM611\BIN;C:\MASM611\BINR;C:\MASM611\LIB;C:\MASM611\INCLUDE;C:\MASM611\HELP;C:\MASM611\INIT;C:\MASM611\SAMPLES

Обратите внимание: после последнего указанного подкаталога символ точки с запятой или любой другой символ ставить не нужно!

Теперь остается только закрыть каждое открытое окно нажатием соответствующей кнопки «OK». После перезагрузки компьютера пакет Microsoft MASM 6.11 будет готов к работе.

Создание командных файлов. Пришло время проверить макроассемблер на работоспособность. Как ни странно, но использовать вышеуказанные подкаталоги напрямую, мы не будем. Хотя во многих учебниках по ассемблеру можно заметить противоположное: для создания файлов используется либо подкаталог BIN, либо создается специальный подкаталог в каталоге MASM611. Возникает один законный вопрос: для чего мы указывали пути к нашим подкаталогам в переменной среды path?.. Ответ на него такой: для того, чтобы можно было обращаться к файлам, находящимся в данных подкаталогах, из любого места операционной системы. Это значит, что мы можем создать пустую папку на Рабочем столе и вызывать из нее нужные нам программы из пакета MASM 6.11. Для этих целей используют командные файлы.

Создадим пустой каталог на Рабочем столе, и дадим ему имя source.

Запустите программу Блокнот (Пуск — Все программы — Стандартные — Блокнот), и напишите в открывшемся редакторе всего одну строчку следующего содержания:
edit.com


Теперь нужно сохранить этот файл в нашем каталоге source под любым именем,но обязательно с расширением .bat, например — edit.bat.Для этого переходим в Блокноте: Файл — Сохранить как. Теперь следует выбрать в качестве каталога для сохранения файла, наш каталог source.В поле Имя файла: нужно ввести edit.bat, а в поле Тип файла: выбрать из списка Все файлы. В последнем поле — Кодировка — должно стоять ANSI.

Сохраняем наш файл.

Точно таким же образом создается второй файл, имя которого будет cmd.bat, а содержимым — строка cmd.exe. Сохраняется этот файл точно так же в наш каталог source.

Теперь у нас в распоряжении есть две программы, входящие в состав Windows: edit.com (простой текстовый редактор — наследие Windows, перешедшее из DOS) и cmd.exe (Командная строка Windows), запускаемые созданными нами файлами — edit.bat и cmd.bat соответственно.

Запускать эти файлы следует двойным кликом мыши по соответствующему файлу.

Тестирование. Запускаем файл cmd.bat, и переводим клавиатуру в латинскую раскладку. Набираем в открывшемся окне команду qh. Если появляется окно со строкой «QuickHelp cannot open c.hlp» — не обращаем на это внимания и просто жмем клавишу Enter. (Появление этого окна объясняется тем, что программа быстрой помощи пакета MASM 6.11 не может найти и открыть файл c.hlp. Где находится данный файл — не грех поинтересоваться у Билла Гейтса. Можно лишь догадываться, что это файл помощи по языку Си ?..).

Поскольку окно с сообщением об ошибке — появилось, значит установленный нами пакет работает. После нажатия клавиши Enter, появляется окно программы QuickHelp. Переходы по меню осуществляются либо при помощи мыши, либо клавишей Tab. Выход из программы осуществляется по нажатию клавиши X.


Файл edit.bat запускает текстовый редактор. Принцип создания и сохранения файлов в нем точно такой же, как и в обычном Блокноте. Но для наших целей он гараздо удобней последнего: вместо выбора типа файла, мы просто пишем нужные нам имя и расширение и сохраняем файл. Cписок поддерживаемых команд редактора можно просмотреть клавишей F1. Выход из редактора осуществляется через меню Файл.

Зенченко Константин Николаевич

Старший модератор

ID: 31795

290761

= общий =    22.09.2016, 12:33

Настройка. Если установка пакета MASM 6.11 производилась с параметрами по-умолчанию . . . . . . Выход из редактора осуществляется через меню Файл.



Мда, всё нет.

Специально установил MASM, по умолчанию на диск С, везде нажимал ENTER


Скопировал LINK.EXE с папки BINR в папку BIN.

Нажал кнопку WIN одновременно с кнопкой R
Появилось окно RUN дальше смотрите каркинку и по стрелкам


Набросал код в блокноте и записал в папку BIN. :
Код [Assembler]
.MODEL tiny
.code
.186
org	100h
start:
	mov	ax,3
	int	10h
	mov	ax,0b800h
	mov	es,ax
	xor	dx,dx
	xor	di,di
	mov	cx,256
	cld
@@01:	call	@@02
	mov	al,'-'
	stosw
	mov	al,dl
	stosw
	mov	al,' '
	stosw
	inc	dx
	loop	@@01
	xor	ax,ax
	int	16h
	ret
@@02:	mov	al,dl
	shr	al,4
	call	@@03
	mov	al,dl
@@03:	and	al,0fh
	add	al,'0'
	cmp	al,'9'
	jbe	@@04
	add	al,7
@@04:	mov	ah,7h
	stosw
	ret
	end	start


В томже окне набираю имя файла(видно на картинке) и получил результат

Жму любую кнопку завершаю программу.
Всё. Зачем так пудрить себе мозги.
Последнее редактирование 22.09.2016, 12:37 Зенченко Константин Николаевич (Старший модератор)
=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile
Strannik

Посетитель

ID: 400534

290764

= общий =    22.09.2016, 19:14


Специально установил MASM, по умолчанию на диск С, везде нажимал ENTER


ну вот..уже кое что есть..вот сделал по вашим шагам и вот что получилось..мои ошибки ? так же набрал в текстовом редакторе код программы, а сохранять его как надо..под расширением .asm? или в текстовом? Поймите..я работал только с высокоуровневым программированием..там все намного проще..с DOS Программаторами я туп..только из за этого у меня пропадал интерес к ассемблеру..но спустя времени опять пытался.. так что потерпите еще немного посмотрите на скрин..меня смущает слово фатал эррор..

-----
Прикрепленные файлы:

Зенченко Константин Николаевич

Старший модератор

ID: 31795

290771

= общий =    23.09.2016, 10:07

Набросал код в блокноте и записал в папку BIN.


Ошибка - компилятор не может открыть файл.
Причина, скорее всего в следующем:
1)У Вас стоит опция скрывать известные типы файлов(отмечено зеленым) в свойствах папки;
2)Когда сохраняли файл, сохранили его как 160601b.asm.txt из-за значения указаного в поле "Записать как"(красным), а нужно 160601b.asm

-----
Прикрепленные файлы:

Последнее редактирование 23.09.2016, 10:01 Зенченко Константин Николаевич (Старший модератор)
=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile
Strannik

Посетитель

ID: 400534

290781

= общий =    23.09.2016, 19:58

)У Вас стоит опция скрывать известные типы файлов(отмечено зеленым) в свойствах папки;


вы имели ввиду скрывать защищенные системные файлы..стоит у меня галочка?
Strannik

Посетитель

ID: 400534

290782

= общий =    23.09.2016, 20:08
не может найти программу чем открыть файл .asm

-----
Прикрепленные файлы:

darka777

Посетитель

ID: 400486

290795

= общий =    24.09.2016, 23:07
[q=400534][/q]

Если верить переводу с англ, то он имел ввиду снять галочку напротив "скрывать расширения для зарегистрированных типов файлов"... Разве нет?

P.S. Я тоже слежу за вашим топиком, потому что у нас с вами похожая проблема. Вот мой вопрос: http://rfpro.ru/question/189804#290794
Последнее редактирование 24.09.2016, 23:10 darka777 (Посетитель)
Strannik

Посетитель

ID: 400534

290797

= общий =    25.09.2016, 11:11

снять галочку напротив "скрывать расширения для зарегистрированных типов файлов"


на скрине видно, да и по умолчанию оно и так снята.. Я считаю, в книге Калашникова надо уделять особое внимание установки компилятора под DOS это не 32 разрядная программа и требует особого скрупулезного внимание к установке и наладке на рабочий режим.
Последнее редактирование 25.09.2016, 11:13 Strannik (Посетитель)
Strannik

Посетитель

ID: 400534

290801

= общий =    25.09.2016, 13:17
ну вот, поставил виртуальную ОС Win XP проделал те же манипуляции...создал файл 160601b.asm в нем ассемблерный код программы. Запустил этот файл и выдало вот что:
Я так понял. ошибка в синтаксисе программы?

-----
Прикрепленные файлы:

Strannik

Посетитель

ID: 400534

290803

= общий =    25.09.2016, 13:26
а по книге запустил учебный файл у меня создался файл с расширением.obj и .exe

-----
Прикрепленные файлы:

Последнее редактирование 25.09.2016, 13:27 Strannik (Посетитель)
darka777

Посетитель

ID: 400486

290804

= общий =    25.09.2016, 14:30
Ну у меня например по умолчанию везде галочки были поставлены... Хотя что толку, я сняла ее, у меня все равно все то же!( Я даже поочередно со всех галочки начала снимать, ничего не меняется)
Да, мне тоже кажется это упущение, что на этом не заострялось внимание. Однако Калашников написал и без этого годную книгу. Мб на том сайте кроме установочных файлов были еще и ЦУ по установке? Но он же не знал, что домен вот так вот будет продаваться... Жалко, что даже зеркала никакого не сделали( Потому что даже сама установка, для человека, который только приобщается к низкоуровневому миру, это проблематично. Я все точно делала отсюда, откуда и советовали Установка и настройка MASM 6.11 . Однако тех файлов он не находит!

ну вот, поставил виртуальную ОС Win XP проделал те же манипуляции...

а для чего вам XP? Вы хотите сказать это все только под нее?
На 7-ке х32 же тоже работают!
Последнее редактирование 25.09.2016, 14:31 darka777 (Посетитель)
Strannik

Посетитель

ID: 400534

290808

= общий =    25.09.2016, 15:12

а для чего вам XP?


потому что под XP? 98 и ниже семейство DOS работает лучше и комфортней чем под семерку и выше..вот например Скачать CodeView отладчик под семерку не пашет а в xp проблем нет..
Strannik

Посетитель

ID: 400534

290832

= общий =    26.09.2016, 18:43
Я ВОТ ЗАПУСКАЮ mi 160601b.asm/AT но выводит фотал эррор..это ошибка в программе? если компилятор не пропускает..
Зенченко Константин Николаевич

Старший модератор

ID: 31795

290838

= общий =    27.09.2016, 11:47

Я ВОТ ЗАПУСКАЮ mi 160601b.asm/AT но выводит фотал эррор..это ошибка в программе? если компилятор не пропускает..


ML не Mi
=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile
Strannik

Посетитель

ID: 400534

290839

= общий =    27.09.2016, 18:40

ML не Mi


Сори Константин Николаевич..конечно ML, опечатка вышла..это я и имел ввиду.. ошибка все равно..вот..посмотрите скрин
запустил два разных файла..
Последнее редактирование 27.09.2016, 18:43 Strannik (Посетитель)
Strannik

Посетитель

ID: 400534

290840

= общий =    27.09.2016, 18:41

-----
Прикрепленные файлы:

Зенченко Константин Николаевич

Старший модератор

ID: 31795

290841

= общий =    28.09.2016, 09:26
На вход подается ASM-файл. Ключи-опции отделяются пробелом.
Скачайте Tasm(ссылка на загрузку в статье). В отличии от MASM'а командная строка не сильно замороченная. Достаточно набрать :
tasm name,,,
tlink name,,,
запятые после имени позволяют генерировать различные вспомогательные файлы: листинги, перекресные ссылки, карты и т.д., ну еще макросы более продвинутые были во времена ДОСа. К примеру CALL name,val1,val2 автоматически создает передачу параметров через стек.
=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile
Strannik

Посетитель

ID: 400534

290845

= общий =    28.09.2016, 18:43
спасибо., начну прорабатывать этот вариант smile
Strannik

Посетитель

ID: 400534

290846

= общий =    28.09.2016, 19:47

Ключи-опции отделяются пробелом.


Решил еще на последок за морочится с MASM' и вставить пробелы в команды..как в скрине..да..ошибки теперь нет..но вышло..вот такие сообщения..что сие значит?

-----
Прикрепленные файлы:

Strannik

Посетитель

ID: 400534

290847

= общий =    28.09.2016, 19:52
[q=400534][/q]
ну а на файл ..ошибки в самом коде..компилятор об этом сообщает

Код [Assembler]
.MODEL tiny
.code 
.186 
org   100h
start:
   mov   ax,3 
   int   10h
   mov   ax,0b800h
   mov   es,ax 
   xor   dx,dx 
   xor   di,di 
   mov   cx,256 
   cld 
@@01:   call   @@02 
   mov   al,'-' 
   stosw 
   mov   al,dl 
   stosw 
   mov   al,' ' 
   stosw 
   inc   dx 
   loop   @@01 
   xor   ax,ax 
   int   16h
   ret 
@@02:   mov   al,dl 
   shr   al,4 
   call   @@03 
   mov   al,dl 
@@03:   and   al,0fh
   add   al,'0' 
   cmp   al,'9' 
   jbe   @@04 
   add   al,7 
@@04:   mov   ah,7h
   stosw 
   ret 
   end   start


-----
Прикрепленные файлы:

Последнее редактирование 29.09.2016, 10:52 Лысков Игорь Витальевич (Советник)
Лысков Игорь Витальевич

Советник

ID: 7438

290848

= общий =    29.09.2016, 11:15
По предыдущему сообщению:

что сие значит?

Во-первых, параметр /AT надо писать слитно. Об этом говорит сообщение Invalid command-line option : /
Что означает: некорректная опция командной строки: /. Не знает компилятор, что такое /. Надо писать /AT
Во-вторых, из файла ASM формируется объектный файл OBJ. Это еще не программа, а заготовка.
Чтобы объектные файлы стали программой, их надо "слинкировать". ML умеет и компилировать, и линкировать (точнее, вызывает для этих целей соответствующие программы masm и link).
Программой может стать и один OBJ-файл, и объединение нескольких, а также модулей из библиотек... В нашем случае имеем один OBJ-модуль.
В-третьих, т.к. опция для создания COM-файла задана некорректна, создается по-умолчанию EXE-файл.
Что и пишется далее.
В последующих строках указывается, что файлы MAP (отчет о линкировании), LIB (библиотеки) и def (некоторые предустановки) не заданы. Нам они не нужны.
И наконец, no steck segment говорит о том, что в программе отсутствует сегмент стека. Для COM-программы
задание стека даже противопоказано. С ним можно построить только EXE-программу.
Так что, это даже нужное предупреждение
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Лысков Игорь Витальевич

Советник

ID: 7438

290849

= общий =    29.09.2016, 11:18
По последнему коду не вижу ошибок. Все корректно...
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Strannik

Посетитель

ID: 400534

290851

= общий =    29.09.2016, 17:29

По последнему коду не вижу ошибок. Все корректно...


а раз корректно, почему не компилируется и не линкуется?

Во-первых, параметр /AT надо писать слитно


вы правы..нужно между .asm сделать пробел, далее слитно и все получилось..вот скрин
но второй файл так же не компилируется..хотя код корректный..

-----
Прикрепленные файлы:

Strannik

Посетитель

ID: 400534

290852

= общий =    29.09.2016, 17:30
вот и com файл появился

-----
Прикрепленные файлы:

Strannik

Посетитель

ID: 400534

290853

= общий =    29.09.2016, 17:32
А всем, кто наблюдает за этой темой..я все таки работаю в виртуалке программы VMware Workstation и стоит ОС ХР

-----
Прикрепленные файлы:

Последнее редактирование 29.09.2016, 17:32 Strannik (Посетитель)
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.