Модераторы: ZeeLax, powerfox
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> LD bug 
:(
    Опции темы
MAKCim
Дата 20.1.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 3
Всего: 207



Код

/* test.S */
.text
    pushl    $0xFFFFFFFF

компилирую
Код

# gcc -c test.S

линкую
Код

# ld --oformat binary a.o -o a

смотрю в hex-е
Цитата

6A FF

 smile  smile 
должно быть
Цитата

68 FF FF FF FF




--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bilbobagginz
Дата 20.1.2007, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



а не надо какой-то флажок, для 64 бит ?


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
MAKCim
Дата 20.1.2007, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 3
Всего: 207



Цитата

а не надо какой-то флажок, для 64 бит ? 

какие 64 бита?
не понял
68h - КОП для push с 16/32-ым непосредственным операндом
6Ah - КОП для push с 8-ым непосредственным операндом

Это сообщение отредактировал(а) MAKCim - 20.1.2007, 22:26


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bilbobagginz
Дата 21.1.2007, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



а как же операнд: $0xFFFFFFFF ? это не число в 64 бита ? ( я не очь силён в интелевском ассемблере, но по-моему число ... толстое )




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
kirjanov
Дата 21.1.2007, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 22.1.2006
Где: Dark wood of erro r

Репутация: нет
Всего: 15



Цитата(bilbobagginz @  21.1.2007,  02:00 Найти цитируемый пост)
а как же операнд: $0xFFFFFFFF ? это не число в 64 бита ?

вообще байт представляется двумя hex цифирями(4 бита называются тетрадой, 1 hex значение на тетраду), если посчитать сколько F у операнда, то получиться 8 - т.е. - 4байта(а ля int для x86)

MAKCim,  нашел что для архитектуры H8/300 ld может сдлать такое:
Цитата

synthesizing instructions
    ld finds all mov.b instructions which use the sixteen-bit absolute address form, but refer to the top page of memory, and changes them to use the eight-bit address form. (That is: the linker turns `mov.b @aa:16' into `mov.b @aa:8' whenever the address aa is in the top page of memory). 

ld


Это сообщение отредактировал(а) kirjanov - 21.1.2007, 12:03
PM MAIL   Вверх
MAKCim
Дата 21.1.2007, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 3
Всего: 207



kirjanov, 
архитектура у меня самая обычная - i386
к тому же вроде как тут речь про mov, а у меня push
да, удивительно, но факт
Код

pushl    $0xFFFFFF0F

идет нормально
а
Код

pushl    $0xFFFFFFAF

уже срезается
с mov при любых числах проблем не возникает
 smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
kirjanov
Дата 21.1.2007, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 22.1.2006
Где: Dark wood of erro r

Репутация: нет
Всего: 15



Цитата(MAKCim @  21.1.2007,  16:34 Найти цитируемый пост)
к тому же вроде как тут речь про mov, а у меня push

я прекрасно умею читать, что написано, и хотел сказать только то, что ld это делает, и в твоем случае, в целях оптимизации
PM MAIL   Вверх
bilbobagginz
Дата 21.1.2007, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



Цитата

если посчитать сколько F у операнда, то получиться 8

смотря когда считаешь smile smile не знаю как я посчитал, но тогда получалось 64, а сейчас 32 ...






--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
MAKCim
Дата 21.1.2007, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 3
Всего: 207



Цитата

и в твоем случае, в целях оптимизации 

хороша оптимизация: хотел 4 байта сохранить, а сохранился 1  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
pythonwin

В этом форуме предпочтительны вопросы на следующие темы:

  • Конкретные вопросы о конкретном ПО. В таких вопросах желательно привести точные данные о программе: версия программы, версия ОС, версия ядра, и проблему в форме: сделал Х, хотел получить Y, а получил Z.
  • Неконкретные вопросы о выборе ПО
  • Обзоры - как дополнение в ветку Обзоры


  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программное обеспечение под *NIX системы | Следующая тема »


 




[ Время генерации скрипта: 0.0924 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.