Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];

Вниз

asm & AMD64   Найти похожие ветки 

 
Вадя   (2005-11-06 15:41) [0]

Я счастливый обладатель процессора AMD Athlon 64 2800+ в институте мне дали задание написать на ассемблере программу, но я обнаружил, что ни TASM 2.0, 5.0, и flatasm 164 не захотели выполняться на моей машине.
 Вопрос: почему? На сколько я понимаю архитектура-то у них одинаковая, x86. А может дело не в процессоре? Дело в ОС?


 
tesseract ©   (2005-11-06 18:54) [1]


>  TASM 2.0, 5.0, и flatasm 164 не захотели выполняться на
> моей машине.

Что не выполняется - компилятор или программа?
На какой оси сидим и под какую ос пишем ?

Athlon по набору команд полноценный x86 процессор. Проблема в софте.


 
Piter ©   (2005-11-06 19:12) [2]

tesseract ©   (06.11.05 18:54) [1]
Athlon по набору команд полноценный x86 процессор


ну он все таки 64-битный :)

То есть, в принципе, регистры теперь не 32, а 64 и наверяка остальное может быть другое. КОнечно, у него наверняка эмуляция должна быть для 32 битного режима (я не очень разбираюсь в этом).

Так что по теории может быть и из-за процессора.


 
DrPass ©   (2005-11-06 19:14) [3]

Многие очень старые программы принципиально не работают на современныъ скоростных процессорах. Их лучше запускать из-под эмулятора. DOSBox замечательно подойдет


 
tesseract ©   (2005-11-06 19:21) [4]


> То есть, в принципе, регистры теперь не 32, а 64 и наверяка
> остальное может быть другое. КОнечно, у него наверняка эмуляция
> должна быть для 32 битного режима (я не очень разбираюсь
> в этом).

Не путай режим 64 битных команд, защищённый режим (i386) и реальный режим (real mode не помню про него уже). В каждом режиме свой метод работы.
> Многие очень старые программы принципиально не работают
> на современных скоростных процессорах.


WWW.mingw.org// avrfreaks.com // citkit.ru - ссылки на новые ассемберы под разные процессоры.


 
DrPass ©   (2005-11-06 19:23) [5]


> Piter ©   (06.11.05 19:12) [2]


> Так что по теории может быть и из-за процессора.

Это невозможно, все х86-процессоры 100% совместимы по инструкциям с предыдущими поколениями. Проблема может быть либо в ОС, либо в функциях, завязанными на скорости процессора (например, печально известная процедура delay в Turbo Pascal)


 
Anatoly Podgoretsky ©   (2005-11-06 19:49) [6]

Piter ©   (06.11.05 19:12) [2]
Нет нужды эмулировать то, что поддержано на уровне от x86-16 до x86-64


 
Piter ©   (2005-11-06 22:49) [7]

ну вот хорошо, вот например ассемблерные комманды.

Ведь есть такое:

move AX, DX

А тут регистры теперь 64-битные, возможно будет не тот результат с какими-то коммандами...


 
DrPass ©   (2005-11-06 22:58) [8]


> Piter ©   (06.11.05 22:49) [7]
> ну вот хорошо, вот например ассемблерные комманды.
>
> Ведь есть такое:
>
> move AX, DX

mov AX, DX - это операция над 16-битными регистрами, независимо от типа процессора, и на древнем советском К1810ВМ88, и на Opteron 840. Чтобы процессор работал как 64-разрядный, он должен
а) быть переведен в этот режим и
б) получать специальные команды для 64-разрядных операций.
Т.е. если программа не умеер работать в новых режимах, старые 16-битные регистры от нее никуда не денутся (хоть логически и являются частью логических 64-битных в соответствующем режиме). Если, конечно, ОС позволит ей работать.


 
Anatoly Podgoretsky ©   (2005-11-06 23:06) [9]

Piter ©   (06.11.05 22:49) [7]
Вот ты привел 16 битные регистры, точно так же есть и 32 битные и 64 битные.


 
wicked ©   (2005-11-06 23:58) [10]

хммм.... насчет 16/32 битов сомнения меня берут...
афаир, mov ax, dx и mov eax, edx кодируются одинаково, а разрядность данной операции выбирается процессором во время исполения в зависимости от установленного флажка в дескрипторе кодового сегмента... для изменения (инвертирования, если быть точным) такого выбора разрядности используются префиксы смены разрядности данных (0x66) и адреса (0x67).... так что один и тот же код будет и 16, и 32 разрядным....
про 64 бита не скажу - не интересовался....


 
Anatoly Podgoretsky ©   (2005-11-07 00:13) [11]

Не сомневайся, префиксы как бы "часть команды", такой же префикс есть и для 64 бит. Переход в 16/32.64 бита


 
Eraser ©   (2005-11-07 00:33) [12]


> Piter ©   (06.11.05 19:12) [2]
>
> tesseract ©   (06.11.05 18:54) [1]
> Athlon по набору команд полноценный x86 процессор
>
> ну он все таки 64-битный :)
>
> То есть, в принципе, регистры теперь не 32, а 64 и наверяка
> остальное может быть другое. КОнечно, у него наверняка эмуляция
> должна быть для 32 битного режима (я не очень разбираюсь
> в этом).
>
> Так что по теории может быть и из-за процессора.

В 64 разрядных процессорах Intel действительно существует "предпроцессор" для 32 битного кода, который каким-то образом преобразует его в 64 битный.
AMD пошли по другому пути, там используются 64 разрядные регистры даже для 32 битного кода, из-за этого производительность 32 разрыдных систем не падает.
Вроде так.
Если допустил неточности - извините, я тоже в этом не очень рабираюсь )


 
Вадя   (2005-11-07 16:38) [13]

В том-то и дело, что не работает ни транслятор, ни линкер.
 У меня Windows XP Profession SP 2.


 
Anatoly Podgoretsky ©   (2005-11-07 16:40) [14]

Windows XP Profession SP 2 не является ни транслятором, ни компоновщиком.


 
Вадя   (2005-11-07 16:44) [15]

Anatoly Podgoretsky ©   (07.11.05 16:40) [14]
 Умный, там вопрос был за систему.


 
Игорь Шевченко ©   (2005-11-07 16:57) [16]


> в институте мне дали задание написать на ассемблере программу


Я все понимаю, кроме одного - ты рассчитываешь на форуме встретить преподавателй из твоего института ? Даже если и так, не проще ли с ними напрямую поообщаться ? В том самом институте, где тебе дали, рассказать им про беду с Windows XP SP2, может, чего дельного посоветуют или там пару влепят...


 
Вадя   (2005-11-07 17:12) [17]

Игорь Шевченко ©   (07.11.05 16:57) [16]
 Про инст это просто небольшая преамбула.  Препод не знает, что это может быть, и ничего не посоветовал, поэтому я и решил спросить других.


 
LordOfRock ©   (2005-11-07 22:17) [18]

>Я счастливый обладатель процессора AMD Athlon 64 2800+ в

Как видно, не такой уж и счастливый, коль ассемблер не работает :-)


 
DrPass ©   (2005-11-08 00:21) [19]


> Eraser ©   (07.11.05 00:33) [12]

Вряд ли. Скорее всего, ты спутал с архитектурой IA64 (Itanium и иже с ним). Это процессоры не из семейства х86, и у них для совместимости есть отдельное (мягко говоря, не слишком быстрое) 32-битное х86 ядро.
В 64-битных P4, как и в Athlon64 все наверняка проще. А ситуация

> там используются 64 разрядные регистры даже для 32 битного
> кода

вряд ли имеет место - в процессорах 6 поколения и старше регистры - понятие условное. Вернее, сами регистры-то реальные, но их структура совершенно отличается от привычной AH/AL/AX/EAX и т.д., и их намного больше. Что и в какой физический регистр записать, решает на самом деле не программист, а процессор.


 
Lamer@fools.ua ©   (2005-11-08 00:28) [20]

>>DrPass ©   (08.11.05 00:21) [19]

>Что и в какой физический регистр записать, решает на самом деле не программист, а процессор.

А по техническому заданию в качестве входных данных он готовую программу на выходе не выдаёт? Нет? Очень жаль.  :o)


 
Piter ©   (2005-11-08 00:32) [21]

Народ! А объясните тогда еще такую вещь. А что за процессоры Sempron?

Смотрю в прайсе - они тоже 64-битные бывают! А вроде где-то слышал, что первые 64-битные у AMD - это A64.

Sempron"ы какие-то неполноценные 64-битные или как дело обстоит?


 
Gero ©   (2005-11-08 00:53) [22]


> Sempron"ы какие-то неполноценные 64-битные

Да, урезанный L2.
64-битные только Sempron64, обычные 32-битные.


 
Piter ©   (2005-11-08 01:03) [23]

Gero ©   (08.11.05 0:53) [22]
Да, урезанный L2


и все? Остальное все ок?

Просто A64 3000+ бьет по любым тестам самый крутой Sempron, 3400+ кажется...

Неужели все из-за кеша?


 
Eraser ©   (2005-11-08 02:32) [24]


> Piter ©   (08.11.05 01:03) [23]
>
> Gero ©   (08.11.05 0:53) [22]
> Да, урезанный L2
>
> и все? Остальное все ок?
>
> Просто A64 3000+ бьет по любым тестам самый крутой Sempron,
>  3400+ кажется...
>
> Неужели все из-за кеша?

Sempron отличный поцессор, отличается от атлона примерно так же как Duron в "давние" временя. Ессено атлон лучше, но разницы почти нету, имхо... зато цена бюджетная!


 
Eraser ©   (2005-11-08 02:34) [25]


> DrPass ©   (08.11.05 00:21) [19]
>
>
> > Eraser ©   (07.11.05 00:33) [12]
>
> Вряд ли. Скорее всего, ты спутал с архитектурой IA64 (Itanium
> и иже с ним).

Угу, именно с ним и попутал.

> Это процессоры не из семейства х86

А winXP64 поддерживает их архитектуру?


 
Lamer@fools.ua ©   (2005-11-08 09:07) [26]

>А winXP64 поддерживает их архитектуру?

Нет такой ОС. Есть WinXP x64. Причём "x64" ~ "x86-64".
Наверняка, есть и WinXP IA64, поскольку под IA64 есть 2-й .NET Framework :o)

З.Ы.
Кому интересно почитать о x86-64, качайте с сайта AMD доку:
AMD64 Architecture Programmers" Manual (5 томов, в сумме около 17 МБ).


 
tesseract ©   (2005-11-08 11:01) [27]


> Вряд ли. Скорее всего, ты спутал с архитектурой IA64 (Itanium
> и иже с ним). Это процессоры не из семейства х86, и у них
> для совместимости есть отдельное (мягко говоря, не слишком
> быстрое) 32-битное х86 ядро.


Itanic - VLIW процессор. Ядра там никакого нет. Эмуляция программная.


 
ZeroDivide ©   (2005-11-08 14:06) [28]


> не захотели выполняться на моей машине


Че пишут? или виснут или что?


 
ZeroDivide ©   (2005-11-08 14:08) [29]

Конкретно TASM 5.0 что пишет?


 
Piter ©   (2005-11-08 17:02) [30]

Eraser ©   (08.11.05 2:32) [24]
Ессено атлон лучше, но разницы почти нету, имхо..


хм. СТранно. Я уже упомянул, что A64 3000+ бьет в любых тестах Sempron 3400+.
Разве это нету разницы?


 
Gero ©   (2005-11-08 17:21) [31]


> Я уже упомянул, что A64 3000+ бьет в любых тестах Sempron
> 3400+.

Маркировка у них может сильно отличаться.


 
Piter ©   (2005-11-08 17:24) [32]

Gero ©   (08.11.05 17:21) [31]

согласен. Но маркирует ведь сама AMD.

Тем более, тут вот что интересно. Sempron 3400+ стоит на уровне с A64 3000+

То есть, выходит, что A64 не просто БЫСТРЕЕ, а лучше в соотношении цена/производительность - а это уже определяющий параметр для обычного покупателя :)


 
Piter ©   (2005-11-08 17:24) [33]

Piter ©   (08.11.05 17:24) [32]
Sempron 3400+ стоит на уровне с A64 3000+


конечно, имеется в виду не стоИт, а стОит


 
Вадя   (2005-11-08 17:54) [34]

"Не удается выполнить ...\TASM.exe"


 
Игорь Шевченко ©   (2005-11-08 17:56) [35]

Вадя   (08.11.05 17:54) [34]

Так поддержка 16-битных программ убрана - чему удивляться ?


 
Piter ©   (2005-11-08 18:26) [36]

Игорь Шевченко ©   (08.11.05 17:56) [35]
Так поддержка 16-битных программ убрана


В AMD64? :)))


 
Игорь Шевченко ©   (2005-11-08 18:38) [37]

Piter ©   (08.11.05 18:26) [36]

В системе Windows для 64-битной платформы, вообще-то. Ты тут выкладывал линк на последнего Руссиновича, так неплохо бы самому почитать - там все-вске написано.


 
Piter ©   (2005-11-08 19:03) [38]

Игорь Шевченко ©   (08.11.05 18:38) [37]
В системе Windows для 64-битной платформы, вообще-то


а с чего вы взяли, что у человека WinXP 64 bit то?


 
Anatoly Podgoretsky ©   (2005-11-08 20:00) [39]

Piter ©   (08.11.05 18:26) [36]
Не в AMD-64, а у него.


 
DrPass ©   (2005-11-08 20:49) [40]


> Piter ©   (08.11.05 17:24) [32]
> Тем более, тут вот что интересно. Sempron 3400+ стоит на
> уровне с A64 3000+
>
> То есть, выходит, что A64 не просто БЫСТРЕЕ, а лучше в соотношении
> цена/производительность - а это уже определяющий параметр
> для обычного покупателя :)

Дело в том, что рейтинг Athlon"a меряется в "Пентиумах", а Sempron"а - в "Селеронах". АМД видимо окончательно решила добить покупателя :)
Поэтому сравнивать их нужно по тактовой частоте.
Кстати, Sempron64 2500+ (1.4ГГц) при разгоне до 2100 ГГц (а так разгоняются абсолютно все экземпляры, со штатным кулером и без поднятия напряжений) выходит на уровень Athlon64 3200



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.042 c
1-1131051613
Toxa_ua
2005-11-04 00:00
2005.12.04
ComponentCount в TEdit


2-1132343732
Alois
2005-11-18 22:55
2005.12.04
Расчёт числа Эйлера


2-1132480106
Сергей_1
2005-11-20 12:48
2005.12.04
COM-порт управление сигналами RX и TX


4-1128056562
VY
2005-09-30 09:02
2005.12.04
как переместить кнопку на форме


1-1131535708
Goast
2005-11-09 14:28
2005.12.04
Проблема с Image





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский