Форум: "Потрепаться";
Текущий архив: 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