Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

"Переправка" кода линкером

562
20 апреля 2005 года
tarekon
175 / / 19.08.2003
Линкер подменяет код. Вместо, допустим,
 
Код:
mov cur_pri, bx

пишет
 
Код:
mov [di], ebx
mov bx, 0001
add [bp-77], ah
sbb ax, 0131
add [bx+si], al

по информации debug'ера.
Т.е. вместо 16 битного кода - 32 битный.
Ключ /3 стоит. Без него появляется сообщение "32 bit record encountered". В коде, помимо 16 битных команд, есть инструкции fsin и fcos. Вообще, что это за сообщение про 32битную запись и когда оно может возникать и почему код изменяется?
8.3K
22 апреля 2005 года
_edge [tkm]
48 / / 04.04.2005
попробуй явно указать размер операнда из памяти.
т.е. например вместо mov [priatki],bx написать
mov word ptr [priatki],bx. надеюсь поможет :]
9.5K
27 апреля 2005 года
sky
6 / / 18.02.2005
_edge [tkm]
Не поможет, дело совсем в другом. ;-)

tarekon
Код не изменяется, просто компилишь ты в 32-битный код, а дебагер понимает его как 16-битный.

Команда mov [cur_pri], bx имеет следующий 32-битный код: 66 89 1D ХХ ХХ ХХ ХХ. Последние 4 байта (ХХ ХХ ХХ ХХ) - адрес операнда cur_pri.
В 16-битном варианте дебагер понимает код 66 89 1D как mov [di], ebx, а далее распознает адрес как команды. Спорю на что угодно, что cur_pri у тебя находится по адресу 00 00 01 BB !!! )))))))))))

P.S.
32-record encountered (обнаружена 32-разрядная запись) - Обнаружен объектный файл, содержащий 32-битовые записи 80386, а параметр /3 не используется.
Видимо ты скомпилил как 32-битный код, соответственно компоновщик требует, чтобы и линковали его с использование 32-бит. Посмотри, возможно что-то не так с ключами компилятора или в тексте проги устанавливается 32-битность...

P.P.S.
В гугле по запросу "32 bit record encountered" первая же ссылка ведет на описание этой ошибки. )))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог