· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Разобраться в ошибке

Посл.отвђт Сообщенiе


Дата: Ноя 16, 2003 15:29:28

Киньте кто может ссылку на перевод о сообщениях тасма об ошибках


Дата: Ноя 17, 2003 05:05:52


Дата: Ноя 17, 2003 19:54:04

Ау Volodya пока только ты можешь, что толковое сказануть да еще один только ник его забыл.
Ошибка вот какая:
Reserved word used as symbol: stack
стек делал так:
stack segment
dw 32 dup(?)
data ends
Ну и асюмку не забыл.


Дата: Ноя 18, 2003 05:56:20

EvilsInterrupt
Про твой код:
Почему имя сегмента stack, а в конце сегмента data ends, опечатка или не уважение к участникам форума?

Из документации к TASM 2.0:
'Reserved word used as symbol
(в качестве идентификатора использовано зарезервированное слово)

В вашей программе идентификатор имеет имя, которое используется в самом Турбо Ассемблере. Программа будет ассемблироваться правильно, но лучше не использовать зарезервированные слова.'

Ты используешь слово stack не информируя, компилятор, ни о признаке объединения сегментов, ни о классе сегмента.

Обычно стек оформляют так
.stack 200h
или
STACK SEGMENT PARA STACK 'STACK'
      DB      512 DUP (?)
STACK ENDS


Дата: Ноя 18, 2003 23:07:07

Благодарствую.
Но вот еще один вопросик: резервирую в стеке 32 dup(?) по совету Абеля, а ассемблер мне грит ты No stack Какого черта? Делал вот как
STACK SEGMENT
тело понятно
STACK ENDS


Дата: Ноя 18, 2003 23:09:05

Блин забыл спросить где откопать Exe2Bin.exe или ему подобный?


Дата: Ноя 19, 2003 00:58:15

EvilsInterrupt
где откопать Exe2Bin.exe или ему подобный?
А что это? Помню, был у меня в нортоне такой экзешник.


Дата: Ноя 19, 2003 05:05:00

EvilsInterrupt
No stack говорит не ассемблер, а редактор связей (aka линкер).

Делал вот как
В описании сегмента ты не указал поле "комбинирование".
Обратимся к документации к TASM 2.0:
'...директива SEGMENT позволяет вам полностью управлять атрибутами каждого сегмента. Полная форма директивы SEGMENT имеет следующий вид:

имя SEGMENT выравнивание комбинирование использование 'класс'

где поля "выравнивание", "комбинирование", "использование" и "класс" необязательны ...
...

Поле "комбинирование" управляет тем способом, с помощью которого сегменты с теми же именами в других модулях будут сочетаться с данным модулем при их компоновке. Это поле может принимать следующие значения:
AT, PRIVATE, COMMON, PUBLIC, MEMORY, STACK, VIRTUAL
...
Тип комбинирования STACK указывает компоновщику, что нужно выполнить конкатенацию всех сегментов с данным именем в один сегмент, и построить файл .ЕХЕ, чтобы при выполнении программы регистры SS:SP указывали на конец этого сегмента. Это специальный тип комбинирования, который должен использоваться только для стека и ни для чего более.'

резервирую в стеке 32 dup(?) по совету Абеля
Imho 32 байта мало. Выполнение DOS программы прерывается прерываниями, и они могут использовать ее стек.

где откопать Exe2Bin.exe
Зачем он тебе? Делай сразу com-файл.


Quantum
Это не из Нортона, это из dos'а

857413562__EXE2BIN.RAR


Дата: Ноя 19, 2003 05:27:50

q_q
Вспомнил! Не совсем в нортоне, а в ndos, т.е. нортоновский вариант доса (с дополнительными фичами и... глюками :-)


Дата: Ноя 19, 2003 18:27:45

Говоришь сразу сом а як? Если я кроме ентого файла ниче и не рублю. Кстати если знаешь инфу по данной теме, точнее всяким там комбинированиям то кинь буду очень благодарен.
Хотя и щас уже благодарен.


Дата: Ноя 19, 2003 22:42:06

И еще одна просьба как сравнить две символьоные строки.


Дата: Ноя 20, 2003 00:45:48

invoke lstrcmp, OFFSET string1, OFFSET string2


или
push OFFSET string2
push OFFSET string1
call lstrcmp           
:-)))


Дата: Ноя 20, 2003 06:03:30

Asterix
Судя по вопросам EvilsInterrupt пишет под dos.

EvilsInterrupt
Говоришь сразу сом а як?
Например, так
; test.asm
;
; Компиляция:
;  tasm.exe test;
;  tlink.exe /x /t test
;
.model tiny
.code
org 100h
_start:
  mov dx,offset msg
  mov ah,9
  int 21h
  mov ax,4C00h
  int 21h
even
msg db 'Hello, world', 13, 10, '$'
end _start


Какого - ентого файла?

инфу по данной теме, точнее всяким там комбинированиям
Не зацикливайся с комбинированием, используй 'упрощенные директивы определения сегментов'.

кинь
Rar-архив со 'Справочником программирования ТУРБО АССЕМБЛЕР 2.0' (5 текстовых файлов) занимает 463'156 байт.

как сравнить две символьоные строки
Например, побайтно.
Что является признаком конца строки?


Дата: Ноя 20, 2003 18:55:46

пытаюсь компилировать прогу, а он мне:
**fatal** Command line: Can`t ... и еще какую то дурь там выдает пересмотрел вроде все в тему.
В каких случаях не могется найтись файл?


Дата: Ноя 21, 2003 04:21:54 · Поправил: q_q

EvilsInterrupt
Какой файл не может найтись?
Например, неправильно указано имя файла (например, длинное, а компилятор любит 8.3) или файла нет в текущем каталоге и в путях перечисленных в переменной среды окружения %PATH% или ...

Если хочешь ответа на вопрос, описывай ситуацию максимально подробно. В твоем случае необходимо полный(ные) текст(ы) сообощения(ний) об ошибке(ках). И текст командной строки.

Если есть время и желание получать быстрые и точные ответы на свои вопросы, то ознакомься и применяй на практике: Как правильно задавать вопросы.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.069