Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Конфликты Assembler. Что делать???


Автор: Сергей Харламов 4.3.2004, 21:10
Хочу писать проги на Asме...
Я вообще-то в только в SoftIce да в SoftIce...
Принцип знаю, но почему-то меня TASM и MASM игнорируют... не запускают даже собственные exampl'ы... Я уже и так и сяк... и под Windows и под DOS... и с оболочкой и без...
Появляются ошибки типа "No program entry point" или "Stack not found"...
Подскажите, в чем проблемаconfused.gif
У меня P100, 48 RAM и т.д. и т.п., но разве в этом гвоздьconfused.gif

Автор: Jin X 5.3.2004, 23:11
Может, для начала, исходники покажеть и как ты их компилишь?

Автор: Сергей Харламов 6.3.2004, 16:40
Да какая разницаconfused.gif
Любые!
Вот например на Tasm простейший вывод Hello:
.MODEL SMALL
.STACK 100h
.DATA
Message DB 'Hello',13,10,'$'
.CODE
mov ax,@Data
mov dx,ax
mov ah,9
mov dx,OFFSET Message
int 21h
mov ah,4ch
int 21h
END
Ошибка: "No stack found"

Сначала думал, что, естесственно, проблема со stack. Ладно, изменил на 200h... такая же фигня. И всякое изменение .STACK не приводило к каким-то изменениям. А у других примеров бывает "No Program Entry Point"... Я уже просто задолбался!!!
Компилю как положено: ассемблирую(нет проблем)...линкую(не тут то было). Все стандартно, в лучших традициях!
Вот так!

Автор: Kurt 6.3.2004, 22:19
Значит так.
Вот твой исправленный HelloWorld (проверен - все 100% работает smile.gif):
Код
.model small
.stack 100h
.data
mes db "Hello, world!!!",0ah,0dh,"$"
.code
start:
mov ax,@data
mov ds,ax
mov ah,09h
mov dx, offset mes
int 21h
mov ax,4c00h
int 21h
end start


Компилировался и линковался tasm5.0.
Все как у тебя, "в лучших традициях" (smile.gif), но обрати вниание на два момента:
Код
start:
и
Код
end start

В tasm в конце нужно указать точку входа в программу (entry point) (в данном случае это метка start).
Т.е. тебе надо писать
Код
метка:
....
end метка


Все. Enjoy it.

Автор: oleg1973 7.3.2004, 02:01
org 100h
mov dx,met
mov ah,9
int 21h
ret
met:
db 'hello world!$'
компилить в фасме

Автор: Сергей Харламов 7.3.2004, 15:49
Огромное всем спасибо за внимание!!!
Отдельная благодарность Kurt!!!!!!!!!!!!!!!
Я про эту метку нигде не слышал, да и понятия не имел, что она так важна!
Все работает...без проблем.
Вот только пример Oleg1973 еще не пробовал, но все равно спасибо, ребята!
Assembler FOREVER!

Автор: Kurt 7.3.2004, 20:19
Цитата
Assembler FOREVER!

Согласен. smile.gif
Я советую тебе зарегестрироваться - здесь много людей, всегда готовых помочь..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)