Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/35: Рейтинг темы: голосов - 35, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 10

fasm, win 7 64, процессор 64

07.07.2013, 15:53. Показов 7662. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Процессор на моём компе Intel® Core™ i3-2370M Processor
(3M Cache, 2.40 GHz). Его архитектура 64 битная. ОС у меня win 7 тоже 64 бит.
Я так понимаю, что FASM он для программирования такого процессора как у меня. Я прав?
Ещё прошу посоветуйте пожалуйста информацию по архитектуре 64 битных процессоров!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.07.2013, 15:53
Ответы с готовыми решениями:

Процессор для Win 8
Имеется старенький комп: мать EP-4PDA3I-3, процессор Intel Pentium 4 3,0 Ghz, DDR 1 гиг, ОС -Windows ХР. Прочитал на сайте Майкрософт что...

Процессор,проги,win 7?
Привет, у меня возник вопрос. Когда давал на сборку мне новых внутренностей поставили на 4х ядерку Win 7 (х64) и кучу разных прог, я хочу...

Win 10 Грузит Процессор на 100%
Привет,я уже весь ютуб обшарил но ответа не нашел в чем проблема. У меня стоит вин 10 про х64 (При этом казус в диспетчере висят...

43
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
21.07.2013, 21:59
Студворк — интернет-сервис помощи студентам
а виню я во всем не неграмтных разработчиков процов компании Intel\AMD,как можно подумать на первый взгляд, а совместимость... она тормозит прогресс
0
Модератор
10476 / 5771 / 3411
Регистрация: 17.08.2012
Сообщений: 17,528
21.07.2013, 22:08
Цитата Сообщение от Troll_Face Посмотреть сообщение
совместимость... она тормозит прогресс
Вот и я о том же... Хотя... Кто мешал Intel в защищённом виртуальном режиме I286 применить иную систему комманд? Инерция, коммерция... Побыстрее выпустить процессор на рынок...
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
21.07.2013, 22:46
Troll_Face,
Доступ к 64-битным регистрам и новым регистрам осуществляется через специальный REX-префикс. Таким образом, все опкоды команд, которые работают с 64-битными регистрами, увеличиваются в размере как минимум на 1 байт, и возникает серьёзная проблема оптимизации кода.
Тут вот сразу не догнал, как одно из другого вытекает. Фраза на мой взгляд подмена понятий. Что то типа "Новый ковш экскаватора шире на метр, таким образом он в два раза больше старого и возникает серьёзная проблема с копанием маленьких ям" точка. Казалось бы да, серьёзный недостаток. А то что в чистом поле новый экскаватор в два раза быстрее котлован отроет осталось за кадром.
Команды PUSHAD/POPAD по непонятным причинам теперь уже не поддерживаются
Т.е. увеличенная на байт команда это серьёзная проблема для оптимизации, а заталкивание в стек шеснадцати восмибайтных регистров за раз это рындец как оптимально. Мне вот как раз видится оптимизация 64 битныхкоманд в том, что бы основные вычисления распихать по новым регистам часть которых API функции не затрагивают. Да и стек опять же пореже трогать, на что то же 8 доп регистров припаяли. Кому то видимо для того что бы гордо их не
замечать.
Если необходимо занести 64-битное значение в ячейку памяти, надо начала занести его в регистр, а потом из регистра - в память; таким образом, ряд действий, которые в защищённом режиме выполнялись за один шаг, теперь будет выполняться в два шага.
Опять же повторюсь. Каким образом ты видишь занос значения (неважно 64 битного или ещё какого) в память если оно само находится там же? В том или ином виде перенос информации из ячейки в ячейку невозможен без посторонней (читай процессора) помощи. Как ты себе вообще представляешь переключение одной ячейки другой ячейкой без всего? Если и есть такой опткод в архитектуре, то мне видится это неким макросом на уровне железа.
Значительные изменения в long mode претерпела сегментация. Сегментация в long mode поддерживается только частично: все сегменты начинаются с адреса Oh и покрывают всё 64-битное адресное пространство, проверка лимита не производится. В дескрипторах данных игнорируются почти все поля, в дескрипторе кода игнорируется большинство полей. Также в long mode механизм многозадачности не поддерживается аппаратно - его надо реализовывать программно
Тут я вообще не в зуб ногой. судить не берусь. Сегменты памяти мне знакомы лишь по недолгому и без сожаления забытому ассемблерному детству в Калашникове "Ассемблер это просто" да и те упомянуты вскользь и красиво обойдены мотивировкой - мы будем писать только COM в одном сегменте. Так что пока бог миловал.

Добавлено через 12 минут
Ты сам себе ответил на свои вопросы:
Цитата Сообщение от Troll_Face Посмотреть сообщение
честно говоря мне проще юзать stdcall. помнить, что первые 4 (или сколько там) параметра нужно пихать в регистры, а другие нужно помещать в стек в обратном порядке, да еще и вроде бы вычитать из него 4*8, если не ошибаюсь, байт. на кой?
Цитата Сообщение от Troll_Face Посмотреть сообщение
а виню я во всем не неграмтных разработчиков процов компании Intel\AMD,как можно подумать на первый взгляд, а совместимость... она тормозит прогресс
Ты привык так, а не эдак и тебе удобней. Но и прогресс тебе тоже нужен. Вот Intel\AMD и вынуждены как в том анекдоте, одной ногой в социализме, а другой в коммунизме стоять.
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
21.07.2013, 22:56
Цитата Сообщение от Полный 30h Посмотреть сообщение
А то что в чистом поле новый экскаватор в два раза быстрее котлован отроет осталось за кадром
а где чаще эксковатор роет: в поле, или же в населенном пункте? и часто тебе приходится ворочать 64-битные числа? КМК в обычных прогах они редко трогаются. в узких областях да, они нужны, но ведь не везде. а компили ЯВУ будут юзать 64 битные реги для всего. вот и размер увеличился.
Цитата Сообщение от Полный 30h Посмотреть сообщение
Опять же повторюсь. Каким образом ты видишь занос значения (неважно 64 битного или ещё какого) в память если оно само находится там же? В том или ином виде перенос информации из ячейки в ячейку невозможен без посторонней (читай процессора) помощи. Как ты себе вообще представляешь переключение одной ячейки другой ячейкой без всего? Если и есть такой опткод в архитектуре, то мне видится это неким макросом на уровне железа.
эм... боюсь спросить: а как по-твоему происходит такая штука??
Assembler
1
mov dword [ds:ololo], 12345678h
согласно твоей теории это все "магия"
Цитата Сообщение от Полный 30h Посмотреть сообщение
Т.е. увеличенная на байт команда это серьёзная проблема для оптимизации, а заталкивание в стек шеснадцати восмибайтных регистров за раз это рындец как оптимально. Мне вот как раз видится оптимизация 64 битныхкоманд в том, что бы основные вычисления распихать по новым регистам часть которых API функции не затрагивают. Да и стек опять же пореже трогать, на что то же 8 доп регистров припаяли. Кому то видимо для того что бы гордо их незамечать.
пожалуй тут я с тобой соглашусь. но опять таки пример: я пишу процедурину для офигеть_какого_вычисления. юзаю там все регистры. я должен их сохранить, ибо головная программа может хранить в них свою инфу.

Добавлено через 3 минуты
Цитата Сообщение от Полный 30h Посмотреть сообщение
Ты сам себе ответил на свои вопросы
эээ, ты не понял. я не ответил на свои вопросы. это два совершенно разных вопроса: совместимость и соглашения по вызову.
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
21.07.2013, 23:12
Цитата Сообщение от Troll_Face Посмотреть сообщение
эм... боюсь спросить: а как по-твоему происходит такая штука?? Код ASM1
mov dword [ds:ololo], 12345678h
предположу что адрес и значение заносится опткодом в процессорный буфер откуда по полученному адресу выносится обратно в память. Потому как вряд ли современные ячейки памяти обладают своей логикой по перемещению данных.
пожалуй тут я с тобой соглашусь. но опять таки пример: я пишу процедурину для офигеть_какого_вычисления. юзаю там все регистры. я должен их сохранить, ибо головная программа может хранить в них свою инфу.
опять же только мои предположения, были произведены какието иследования по частоте использования данной команды после чего сделана поправка на частоту её употребления в свете открывшихся восьми регистров. И люди пришли к выводу что усложнение архитектуры по этому поводу большее зло чем падение производительности за её отсутствием. Опять же на примере этой команды хочу обратить твоё внимание на предыдущий вопрос. вернее ответить вопросом на вопрос
1. какова ширина шины данных 32 разрядного процесора в битах?
2. сколько бит суммарно по этой шине пролазит из процессора в память после выполнения всего одной команды PUSHA?
3. Каким образом 256 бит пролазит по 32 разрядной шине всего за одну команду? Что это чудо господне, или всё же макрос на уровне железа позволяющий затолкать восемь раз по 32 бита экономя на опкодах.
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
21.07.2013, 23:18
Цитата Сообщение от Полный 30h Посмотреть сообщение
какова ширина шины данных 32 разрядного процесора в битах
вроде как 32
Цитата Сообщение от Полный 30h Посмотреть сообщение
сколько бит суммарно по этой шине пролазит из процессора в память после выполнения всего одной команды PUSHA
этим вопросом не задавался. по идее больше 32 не должно пройти. мб команда работает в несколько проходов, но как-то на стороне проца она сделана более грамотно, нежели чем несколько push'ов.

Добавлено через 2 минуты
боюсь мы спорим о разном. ты мне говоришь о том, что для твоих целей 64 битный проц тебя устраивает, для моих же целей его архитектура глупа. но что поделать. придется смириться. ибо более продвинутого предложить не могу
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
21.07.2013, 23:40
Цитата Сообщение от Troll_Face Посмотреть сообщение
этим вопросом не задавался. по идее больше 32 не должно пройти. мб команда работает в несколько проходов,
Думаю примерно так же она работает как и в случае с пересылкой одной командой из памяти в память.
Цитата Сообщение от Troll_Face Посмотреть сообщение
для твоих целей 64 битный проц тебя устраивает, для моих же целей его архитектура глупа.
Наверное истина где то посередине. Я начал изучать ассемблер сравнительно недавно и не так глубоко, поэтому не имею стойкой привязанности к какой то из архитектур, у тебя же есть свои наработки которые в новой архитектуре менее эфективны поэтому ты принимаешь её не очень.
Мы с тобой как новосёл и местный, меня всё устраивает потому что я по другому не пробовал, а если пробовал то не прикипел. Тебя же многое не устраивает, старый магазин снесли, автобус теперь не там ходит, ещё и эти новосёлы со своей хернёй.
1
Модератор
10476 / 5771 / 3411
Регистрация: 17.08.2012
Сообщений: 17,528
21.07.2013, 23:46
Вообще... 64-разрядная арифметика у процессоров Intel появилась тогда, когда Intel создали I8087. Один из форматов данных этого сопроцессора - двоичное целое 64-битное число. А вот разрядность шины данных... Да, это X64... Один и тот же модуль памяти стали делить на так называемые ранги, и сейчас возможно пересылать в память 64 разряда за один цикл.
0
21.07.2013, 23:47

Не по теме:

Полный 30h, а ты всему аналоги на "простецком языке для простаков" приводишь? :)

0
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
22.07.2013, 00:11
Troll_Face,

Не по теме:

ну я как бы для надёжности что мои слова правильно истолкованы будут. А то пошутил тут раз, видимо сложно, а человек простой попался, так надулся, чуть резинка на трусах не лопнула]:->с тех пор на бытовом языке свою мысль поясняю.

1
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
22.07.2013, 02:11
Цитата Сообщение от Полный 30h Посмотреть сообщение
Я начал изучать ассемблер сравнительно недавно и не так глубоко, поэтому не имею стойкой привязанности к какой то из архитектур, у тебя же есть свои наработки которые в новой архитектуре менее эфективны поэтому ты принимаешь её не очень.
я и сам асм не особо давно изучаю. просто подался в глубь системного кодинга. вот там как раз и изучил реальный режим работы камня, защищенный, и недавно столкнулся с длинным. все эти REX-префиксы, PUSH'ы POP'ы фигня по сравнению с тем, что было сделано в корне. как я уже сказал из 8 описываемых байт для сегмента (каждый сегмент в этих режимах нужно описать подробно: права доступа, начало\конец, прочая хуерга) испльзуется 13 бит. остальные нужны для защищенного, т.е. пережитки совместимости. еще одна вещь: чтобы перейти в этот длинный режим нужно сначала перейти в защищенный, а уже потом в длинный. идиотизм. собственно в защищенном режиме особо страшных действий для перехода не выполняется. можно было сразу сделать, но нет. ну и подытожить это можно вышеприведенными наборами команд. собственно поэтому и говорю, что это "говнопроц" (да простят меня другие программисты)
0
 Аватар для Vadimych
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
22.07.2013, 07:26
Цитата Сообщение от Полный 30h Посмотреть сообщение
Взять хотя бы таблицу ASCII. Сто лет назад бы уже собраться программистам и Ко. сходить на кладбище и забить осиновый кол в могилу того кто межу 1-9 и A-F двоеточий и стрелок напихал
Видимо, у разработчиков таблицы были более веские основания для создания её в нынешнем виде, чем удобства ещё не родившегося в то время пользователя cyberforum.ru с символичным ником Полный 30h.
0
Модератор
10476 / 5771 / 3411
Регистрация: 17.08.2012
Сообщений: 17,528
22.07.2013, 09:05
Цитата Сообщение от Vadimych Посмотреть сообщение
у разработчиков таблицы
Не было у Бемера никаких веских оснований! Код был писан по принципу "а пусть будет вот так", долго не был популярен (в то время куда более популярным был код EBCDIC, ещё более кривой: существовало не менее 6 версий его, между собой несовпадающих), а с распространением американских компьютрных технологий по миру ASCII был принят стандартом де-факто. Ну да, кривой, но все уже пользуются, что делать...
1
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16376 / 7688 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
22.07.2013, 09:20
Цитата Сообщение от Vadimych Посмотреть сообщение
Видимо, у разработчиков таблицы были более веские основания для создания её в нынешнем виде
В те далекие времена байт состоял из 6 битов и во всю использовалась 8-ричная система счисления, поэтому "отцу-создателю" ASCII-кодировки не пришло в голову ставить рядом цифры 0-9 и буквы A-F
1
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
22.07.2013, 11:31
Цитата Сообщение от Troll_Face Посмотреть сообщение
чтобы перейти в этот длинный режим нужно сначала перейти в защищенный, а уже потом в длинный. идиотизм. собственно в защищенном режиме особо страшных действий для перехода не выполняется. можно было сразу сделать, но нет. ну и подытожить это можно вышеприведенными наборами команд. собственно поэтому и говорю, что это "говнопроц" (да простят меня другие программисты)
Мне до таких тонкостей как до Китая раком поэтому видимо оно меня не трогает, так что не принимай моё довольство по поводу 64 бит близко к сердцу.

Цитата Сообщение от Vadimych Посмотреть сообщение
Видимо, у разработчиков таблицы были более веские основания для создания её в нынешнем виде, чем удобства ещё не родившегося в то время пользователя cyberforum.ru с символичным ником Полный 30h.
Да да, расскажи мне про утерянную мудрость предков, мудрых атлантов и их технологии обогнавшие время, Ментор ты наш доморощенный.

Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Не было у Бемера никаких веских оснований!
Цитата Сообщение от Mikl___ Посмотреть сообщение
В те далекие времена байт состоял из 6 битов и во всю использовалась 8-ричная система счисления, поэтому "отцу-создателю" ASCII-кодировки не пришло в голову ставить рядом цифры 0-9 и буквы A-F
На святое замахнулись?! С того места где высказался полупочтенный Vadimych, неважно по какому поводу, существует всего два мнения - ЕГО и НЕПРАВИЛЬНОЕ.
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
22.07.2013, 14:38
Про память-память:
Кто не читал, пусть почитает про ModR/M. Сразу всё встанет на свои места и вопросов больше не будет.
0
Модератор
10476 / 5771 / 3411
Регистрация: 17.08.2012
Сообщений: 17,528
22.07.2013, 15:41
Цитата Сообщение от sh2ezo Посмотреть сообщение
почитает про ModR/M
Ну да. Память-память там нет. Хотя передача память-память всё же возможна с помощью комманд работы с цепочками (строками). И что же должно встать на свои места и почему вопросов больше не возникнет, например, по ущербности системы комманд процессоров линии X86?
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
22.07.2013, 16:01
Cyborg Drone, я говорил только про инструкции типа память-память, операнды для которых задавались бы напрямую. Про недостатки архитектуры я даже не заикался, если вы не заметили. Если делать суперкрутой x86, в котором будет напрямую память-память присутствовать, то придется специально под одну эту чертову инструкцию вводить дофига дополнительных битиков и байтиков, которых и без того много, а посему оно нафиг никому не сдалось. Кому надо, тот свою архитектуру пилит и юзает.
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
22.07.2013, 16:04
Цитата Сообщение от sh2ezo Посмотреть сообщение
дофига дополнительных битиков и байтиков
это каких?
0
Модератор
10476 / 5771 / 3411
Регистрация: 17.08.2012
Сообщений: 17,528
22.07.2013, 16:15
Troll_Face, разных Просто берёшь и делаешь нафиг другую систему комманд, что sh2ezo и советует. Только это будет уже не X86.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.07.2013, 16:15

Как установить win 7 на новый биус с процессор I7 7700HQ
Добрый день ребята, кто знает как поставить вин 7 на новый биус с процессором I7 7700HQ купил ноут HP там стояла 10ка, решил переустановить...

Сколько разрядную систему Win(32\64 бит) понимает мой процессор?
Здравствуйте господа форумчане! Помогите плиз разобраться. Замучился гуглить. Собственно вопрос: поддерживает ли мой процессор 64-ёх...

Вызываю dll (написанную на vc++2008) из Fasm. Через 40 секунд вылет из программы.Без вызова dll из Fasm программа не вылетает.
Программа на vc++2008: #include "MathFuncsDll.h" #include <stdexcept> using namespace std; namespace MathFuncs { ...

После обновления Win 8.1 до Win 10, можно ли поставить старую Win 8.1 на другой ПК ?
Имеется лицензия Windows 8.1. которую обновил до Windows 10, можно ли теперь поставить струю Windows 8.1. на другой компьютер ? Если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru