Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

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


 
Piter ©   (2005-11-08 20:49) [41]

Anatoly Podgoretsky ©   (08.11.05 20:00) [39]
Не в AMD-64, а у него


а вы, Анатолий, с чего взяли, что у товарища WinXp 64 Bit? :)


 
Anatoly Podgoretsky ©   (2005-11-08 21:17) [42]

С чего ты это взял, что я делаю какие то предположения насчет его ОС, нигде даже намека нет.


 
Piter ©   (2005-11-08 21:38) [43]

Anatoly Podgoretsky ©   (08.11.05 21:17) [42]

тогда у кого "у него"? У автора ветки?

Откуда вы тогда взяли, что у него убрана поддержка 16-битных программ? :)


 
Игорь Шевченко ©   (2005-11-08 22:32) [44]

Piter ©   (08.11.05 19:03) [38]

А это я телепатор тренирую.


 
wp2 ©   (2005-11-08 22:37) [45]


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

А вот не надо было покупать AMD Athlon 64 2800+
Купил бы Pentium и было бы всё OK

Да и вообще поподробнее расскажи, что там за проблемы.
Покажи код!


 
Anatoly Podgoretsky ©   (2005-11-08 22:41) [46]

Piter ©   (08.11.05 21:38) [43]
Это он сам сообщил, а настроить не умеет. Обычная болезнь


 
Некто ©   (2005-11-08 22:48) [47]

никуда регистры не делись, дело скорее в ОС

http://www.wasm.ru/forum/

тут поинтересуйся, мож подскажут что (конечно не факт, что успеют что либо подсказать до того момента, когда тебе влепят 2)

у меня подобная проблема была, когда индикаторами Num, Caps и прочих Lock"оф баловался (вин2000 что-то сопротивлялся этому баловству).... я делал так, поставил vmware, поставил в него вин98 и линковал и компилил там преспокойненько тасмом (тоже не факт, что у тебя это проканает)


 
Piter ©   (2005-11-09 00:40) [48]

Игорь Шевченко ©   (08.11.05 22:32) [44]
А это я телепатор тренирую


а-а-а, ясно.

Ну и как тренировки, успешно? :)


 
Вадя   (2005-11-12 03:28) [49]

Anatoly Podgoretsky ©   (08.11.05 22:41) [46]
Где я такое сообщал? Что это вообще за параметр такой "поддержка 16-битных программ"? Какой его более глубокий смысл? Где он утанавливается?


 
Вадя   (2005-11-12 03:32) [50]

Игорь Шевченко ©   (08.11.05 18:38) [37]
 А можно ли повторить этот самый линк?


 
Piter ©   (2005-11-12 12:32) [51]

Вадя   (12.11.05 3:32) [50]

сильно сомневаюсь, что ты сейчас начнешь читать Руссиновича для решения своей проблемы :)



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

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.045 c
2-1131916842
Muh
2005-11-14 00:20
2005.12.04
Как создать папку..не файл, а папку!!


2-1131937168
homm
2005-11-14 05:59
2005.12.04
Размер


1-1131479772
злобная танька
2005-11-08 22:56
2005.12.04
оформление некого процесса


14-1131998554
vrem
2005-11-14 23:02
2005.12.04
Нежелание видеть грустное - это болезнь?


3-1129990794
Tom
2005-10-22 18:19
2005.12.04
Access + multithreading