23.02.2018, 07:39 [+3 UTC]
в нашей команде: 2 560 чел. | участники онлайн: 2 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.44 (14.02.2018)

Общие новости:
02.01.2018, 09:46

Форум:
11.02.2018, 23:11

Последний вопрос:
22.02.2018, 17:35

Последний ответ:
21.02.2018, 16:44

Последняя рассылка:
22.02.2018, 23:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
13.12.2010, 16:24 »
Detsle
Спасибо большое))) очень хорошо написал) Всё понятно! Выручил! [вопрос № 181294, ответ № 264718]
06.12.2012, 05:55 »
Иванов Анатолий Николаевич
+5 Благодарю за помощь! С уважением, Анатолий. [вопрос № 186888, ответ № 271793]
21.05.2012, 23:53 »
Иван Васильевич Митяев
Огромное спасибо! [вопрос № 186131, ответ № 270924]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 384
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 352
Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 335

Перейти к консультации №:
 

Консультация онлайн # 66143
Раздел: • Assembler
Автор вопроса: дим
Отправлена: 08.12.2006, 18:33
Поступило ответов: 1

s segment
org 100h
start:

mov ah, 09
mov dx, offset string
int 21
int 20

string db 'PRIVET$'

s ends
end start

Программа вроде верно написана
Но вот при линковке(использую MASM под виндоус) пишет следующее

asmmmmmm.obj:fatal error LNK1190: invalid fixup found, type 0x0001
_
Link Error

В чем дело?

поравьте, если что не так
спасибо

Состояние: Консультация закрыта

Ответ # 130701 от Вiктор

Здравствуйте, дим!
Компилятор и линкер проглотят и INT 21H, и INT 21.
Но правильнее INT 21H, потому что это нужный номер прерывания. А если задавать просто 21, то когда запустите исполняемый модуль, то он зависнет (если тянет на десятичные номера, пишите 33).
А насчёт "invalid fixup found" - насколько я помню это ругательство на неверный номер. (типа запихнуть 257 в однобайтовую ячейку и т.п.). В коде на первый взгляд проблем нет. Единственное предложение - перенаберите на всякий случай все цифры ещё раз, может там буква "о" вместо нуля где-то.... (или ещё что-то такое, может русская буква вместо латиницы. А ещё посмотрите на номер строки, на которую ругается)
Попробуйте также сделать пустую програму, т.е. начало и сразу выход. Если и дальше будет ругаться, то ошибку будет легче найти (меньше вариантов), а если не будет - то добавляйте нужные строки в уже работающий код (и если заглючит - будете знать, что ошибка в них).
(P.S. сам знаю что ответ плохой, но вдруг поможет?)


Консультировал: Вiктор
Дата отправки: 09.12.2006, 01:16

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

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

Посетитель

ID: 21133

# 1

= общий = | 08.12.2006, 18:55 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Единственное, к чему придерусь: INT 21H и INT 20h, всё-таки подразумевались шестнадцатеричные номера прерываний. TASM+TLINK реагирует вполне нормально (Warning: no stack)


Посетитель

ID: 27945

# 2

= общий = | 08.12.2006, 19:10 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

если их исправить на INT 21H и INT 20h ничего не изменится пробовал несколько раз не знаете что означает эта ошибка? invalid fixup found


Посетитель

ID: 520

# 3

= общий = | 09.12.2006, 01:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

ох, кажется сильно ошибся. Если компилирует нормально и выдаёт obj, то в тексте наверно ошибок нет. Ошибки при линковке, а я проглядел.... Проверьте какой линкер и ассемблер вы используете, может быть они разных типов, 16 и 32-битные? И ещё, проверьте - вы задаёте именно скомпилированный ассемблером obj-файл, а не какой-нибудь переименованный в obj некомпилированный текстовый файл? (Простите если несправиедливо подозреваю вас в ошибке, но мне кажется что если бы линкеру задать текстовый файл, то он ругался бы подобным образом). И ещё одна бредовая идея- проверьте одинаковй ли формат у obj-файлов. Вроде бы есть COFF-формат и ещё какой-то, и они несовместимы. Если вдруг ассемблер и линкер настроены на разные форматы, то я думаю линкер ругался бы подобным образом.


Посетитель

ID: 20205

# 4

= общий = | 09.12.2006, 03:16 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

>не знаете что означает эта ошибка? >invalid fixup found http://msdn2.microsoft.com/en-us/library/ha0f0278.aspx Error Message: invalid fixup found, type type Solution: The object file is corrupt. Recompile. Т.е. это сообщение говорит об испорченом объектном модуле (*.obj), может возникнуть при ошибке в библиотеках (*.lib) линковщика. Посмотрите ответы на вопрос № 18207 http://rusfaq.ru/info/question/18207 PS: исправил номера прерываний и TASM 4.1 "проглатил": tasm /m9 a.asm tlink /t a.asm


Посетитель

ID: 419

# 5

= общий = | 14.12.2006, 18:13 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

установите формат объектног офайла один и тот же для ассемблера, и для связного

 

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 2.92178 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.44 от 14.02.2018