Каталогы

Ассемблер MASM611-Помощь.

Страницы: 1
Ассемблер MASM611-Помощь.
 
Я начинающий. Создаю программу на ассемблере,ассемблирую на MASM611 создается фаил с расширением obj. Далее в компоновщеке LINK.EXE даю команду >LINK.EXE prog.obj/t . Должен создаться фаил с расширением COM, но не создается.Также пробовал через ML.EXE командой >ML.EXE prog.ASM / AT и также через Turbo Assembler (TASM) командой >TASM.EXE prog.ASM  создается фаил obj и дальше через (линковщика) TLINK.EXE команда >TLINK.EXE prog.obj /t .  Ошибок при этом компьютер не выдает. Почему не создается фаил типа COM :?:  :?:  :?: , в чем у меня ошибка  и проблема? С файлом расширения типа EXE проблем нет.
Еще вопрос. Чем отличаются машинные коды файла с расширением COM и файлы с расширением EXE ? В общем что это за расширения.
 
Цитата
bulat писал(а):
Также пробовал через ML.EXE командой >ML.EXE prog.ASM / AT

ML.EXE prog.ASM / AT должно работать на все 100
если не работает, то проверь:
1. Действительно ли у тебя версия MASMа не ниже 6.11
2. Файлы ml.exe и link.exe должны находится в одной директории
3. Если файл name.asm не находится в одной директории с файлами ml.exe и link.exe, необходимо в команде указать путь к этому файлу
4. ключ /AT пишется большими буквами

Цитата
bulat писал(а):
Чем отличаются машинные коды файла с расширением COM и файлы с расширением EXE ?  

размер com не может превышать 64 килобайта (100h)
в exe необходимо определить сегмент стека, в com этого не требуится
в com весь код, данные и стек программы находятся в одном сегменте
первые два байта заголовка exe — символы «MZ» или «ZM»
 
желаю успехов в изучении
 
Благодарю Вас ghost  за ответ.
       ghost  писал(а):
1. Действительно ли у тебя версия MASMа не ниже 6.11
2. Файлы ml.exe и link.exe должны находится в одной директории
3. Если файл name.asm не находится в одной директории с файлами ml.exe и link.exe, необходимо в команде указать путь к этому файлу
 
Проверил:
1.Да действительно версия MASMа 6.11
2.Файлы ml.exe и link.exe находится в одной директории
    В командной строке набираю команду:C:MASM611BINML.EXE prob 1.asm /AT
Enter
Получил результат:
Assembling:prob  
fatal error A1000: cannot open file: proba
Как я понимаю не указан путь к файлу. Вопрос, как указать путь к файлу в этой команде ?
Путь такой: D:as serprob 1.asm.
Спасибо.
 
2bulat
C:MASM611BINML.EXE D:as serprob 1.asm /AT

и папку as ser лучше переименовать к примеру в as_ser
 
Цитата
bulat писал(а):
Благодарю Вас ghost  за ответ.
       ghost  писал(а):
1. Действительно ли у тебя версия MASMа не ниже 6.11
2. Файлы ml.exe и link.exe должны находится в одной директории
3. Если файл name.asm не находится в одной директории с файлами ml.exe и link.exe, необходимо в команде указать путь к этому файлу
 
Проверил:
1.Да действительно версия MASMа 6.11
2.Файлы ml.exe и link.exe находится в одной директории
    В командной строке набираю команду:C:MASM611BINML.EXE prob 1.asm /AT
Enter
Получил результат:
Assembling:prob  
fatal error A1000: cannot open file: proba
Как я понимаю не указан путь к файлу. Вопрос, как указать путь к файлу в этой команде ?
Путь такой: D:as serprob 1.asm.
Спасибо.

Короче так файл должен быть в той же директории что масм и линкер это раз.....
Второе имена папок и файлов не должны содержать пробелов и каких либо других имволов кроме латинницы

и ещё интересно нафига ты линкуешь asm файл ???
"C:MASM611BINML.EXE prob 1.asm /AT "

Наверно правельнее будет так

C:MASM611BINMASM.EXE prob1.asm
C:MASM611BINML.EXE /AT prob1.OBJ

а ещё правельнее будет так

CD C:MASM611BIN
MASM.EXE prob1.asm
ML.EXE /AT prob1.OBJ

и вообще пиши на турбо ассемблере....

З.Ы. ФАЙЛЫ С КОДОМ ПРОГРАММЫ ЛУЧШЕ ВСЕГО ДЕРЖАТЬ В ПАПКЕ С МАСМОМ И ЛИНКЕРОМ ТОГДА ПРОБЛЕММ НЕ БУДЕТ.... ТЕМ БОЛЕЕ ЭТИ ФАЙЛЫ МЕСТА ОЧЕНЬ МАЛО ЗАНИМАЮТ..........
HP nc6310 (+fingerprint sensor)
Centrino Duo 1.86 Ghz
1024 mbram
120gb hdd
GMA 950 =)
 
Цитата
wawa писал(а):


Короче так файл должен быть в той же директории что масм и линкер это раз.....

З.Ы. ФАЙЛЫ С КОДОМ ПРОГРАММЫ ЛУЧШЕ ВСЕГО ДЕРЖАТЬ В ПАПКЕ С МАСМОМ И ЛИНКЕРОМ ТОГДА ПРОБЛЕММ НЕ БУДЕТ.... ТЕМ БОЛЕЕ ЭТИ ФАЙЛЫ МЕСТА ОЧЕНЬ МАЛО ЗАНИМАЮТ..........

это по началу
потом их становится слишком много

Цитата
wawa писал(а):

Наверно правельнее будет так

C:MASM611BINMASM.EXE prob1.asm
C:MASM611BINML.EXE /AT prob1.OBJ

я думаю правельней будет так:
C:MASM611BINMASM.EXE prob1.asm
C:MASM611BINlink.EXE /T prob1.OBJ
это относится к версиям masm ниже 6.11

Цитата
wawa писал(а):

и вообще пиши на турбо ассемблере....

ну тут вопрос спорный
у каждого свой вкус

2bulat
маленький совет
не стоит изучать asm по рассылкам калашникова
найди в сети Абеля "Ассемблер и программирование для IBM PC"
 
Цитата
ghost писал(а):


это по началу
потом их становится слишком много

Ну он же все таки учится а потом сам поймет что и как


Цитата
ghost писал(а):


я думаю правельней будет так:
C:MASM611BINMASM.EXE prob1.asm
C:MASM611BINlink.EXE /T prob1.OBJ
это относится к версиям masm ниже 6.11

Да какая разница главное чтобы работало

Цитата
ghost писал(а):


ну тут вопрос спорный
у каждого свой вкус

Эт точно... посто я с тасма начинал.... вот и привык

Цитата
ghost писал(а):


2bulat
маленький совет
не стоит изучать asm по рассылкам калашникова
найди в сети Абеля "Ассемблер и программирование для IBM PC"

А ещё могешь скачать классную книгу Iceleon'a на сайте wasm.ru
просто суперская.. да ещё и под вин32... тем более что писать под дос скучно..... (хотя полезно)
HP nc6310 (+fingerprint sensor)
Centrino Duo 1.86 Ghz
1024 mbram
120gb hdd
GMA 950 =)
 
Благодарю Вас ghost и wawa .
У меня все получилось файл с расширением COM создан.
Тагже обезательно воспользуюсь Вашим советом:
найди в сети Абеля "Ассемблер и программирование для IBM PC"
А ещё могешь скачать классную книгу Iceleon'a на сайте wasm.ru
просто суперская.. да ещё и под вин32... тем более что писать под дос скучно..... (хотя полезно)
Ну пока все . Спасибо Огромное.
 
Здраствуйте.
Программка(на Ассемблере) для практики, которая выводит в верхний левый угол экрана весёлую рожицу на синем фоне:

CSEG segment
org 100h

_beg:
mov ax,0B800h
mov es,ax
mov di,0

mov ah,31
mov al,1
mov es:[di],ax

mov ah,10h
int 16h

int 20h

CSEG ends
end _beg
__________________________
Почему данная программка не выводит веселую рожицу?
Выводит только мигающий курсор. Спасибо!
 
Цитата
bulat писал(а):
Здраствуйте.
Программка(на Ассемблере) для практики, которая выводит в верхний левый угол экрана весёлую рожицу на синем фоне:

CSEG segment
org 100h

_beg:
mov ax,0B800h
mov es,ax
mov di,0

mov ah,31
mov al,1
mov es:[di],ax

mov ah,10h
int 16h

int 20h

CSEG ends
end _beg
__________________________
Почему данная программка не выводит веселую рожицу?
Выводит только мигающий курсор. Спасибо!

Потому что ты под ХР сидишь... хочешь что бы все корректно работало ставь DOS 6.11 и будет тебе счастье
HP nc6310 (+fingerprint sensor)
Centrino Duo 1.86 Ghz
1024 mbram
120gb hdd
GMA 950 =)
Страницы: 1
Читают тему (гостей: 1)
Главная
Каталог
Қалаулар
0 Себет
Кіру