Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на Ассемблере как общего так и конкретного характера.
 
важное примечание
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
 
короче, тут не сборище придурков-альтруистов, которым нечего делать и они ждут-не дождутся когда вы их попросите
что-то сделать _за_ вас
если позарез надо и вы даже готовы заплатить, тогда вам сюда
удачи
 
некоторые ресурсы
http://www.wasm.ru/ Самый популярный русскоязычный ресурс. https://wasm.in/
Ассемблер - книги (ASM, Assembler)
 
Просьба все большие листинги оформлять тегом more.
 
если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:42 29-11-2006 | Исправлено: akaGM, 17:44 11-06-2020
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
побаловался с тиками, действительно на современных процессорах (а моему 12 лет) эти операции быстрые, медленными они были давным давно. причем
 
   
 
если не врет два такта для ссе против пяти
 
   
 

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 07:56 15-09-2015 | Исправлено: bomzzz, 08:07 15-09-2015
GregScorp

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет




Прекращайте флудить, а то получите бан.

Всего записей: 10 | Зарегистр. 13-11-2007 | Отправлено: 07:24 22-09-2015
GeorgeMame

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как наиболее безболезненно подружить интеловский фортран с ассемблером (x64)? Дело в том, что этот фортран еще не поддерживает FMA, который в 2 раза быстрей AVX, хотя опция для поддержки FMA существует.

Всего записей: 141 | Зарегистр. 24-07-2015 | Отправлено: 15:39 22-09-2015
1lex1

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В x86 для инструкций MMX есть регистры MM(0...8) по 64 бита, а для SSE — XMM(0...8) по 128 бит. Регистры MM — младшие половины XMM или это другие регистры и их можно независимо использовать?

Всего записей: 278 | Зарегистр. 22-11-2013 | Отправлено: 12:17 05-01-2016
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
технология SSE позволяла преодолеть две основные проблемы MMX: при использовании MMX невозможно было одновременно использовать инструкции сопроцессора, так как его регистры были общими с регистрами MMX, и возможность MMX работать только с целыми числами.

 
Добавлено:

Цитата:
Расширение MMX включает в себя восемь 64-битных регистров общего пользования MM0—MM7. Для совместимости со способами переключения контекста процессора в существующих ОС Intel была вынуждена объединить в программной модели процессора восемь регистров MMX с мантиссами восьми регистров FPU. Аппаратно это могут быть разные устройства, но с точки зрения программиста — это одни и те же регистры. Таким образом, нельзя одновременно пользоваться командами математического сопроцессора и MMX.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 12:21 05-01-2016 | Исправлено: bomzzz, 12:23 05-01-2016
1lex1

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz, спасибо, я это видел. Но из этого не следует наличие или отсутствие связи между ММ или ХММ.

Всего записей: 278 | Зарегистр. 22-11-2013 | Отправлено: 14:16 05-01-2016
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как бы физически это не было исполнено, ссе можно использовать вместе с ммх. в конце концов это не сложно проверить

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 15:19 05-01-2016
127



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1lex1, XMM регистры и команды независимы от FPU & MMX.  
а вот AVX YMM & ZMM регистры есть надмножество SSE XMM.  
XMM is low 128 bits of YMM, which is low 256 bits ZMM.  
https://en.wikipedia.org/wiki/Advanced_Vector_Extensions

Всего записей: 599 | Зарегистр. 08-11-2015 | Отправлено: 15:31 05-01-2016
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
127
а если два процесса используют сопроцессор, ммх, ссе. при переключении процессора с процесса на процесс чиво будит?

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 15:36 05-01-2016
127



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если ось поддерживает - будет переключение контекста. Если нет - все на откуп программистам, которые, вообще то, не должны позволять запуск такой проги без поддержки со стороны оси.

Всего записей: 599 | Зарегистр. 08-11-2015 | Отправлено: 15:56 05-01-2016
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я имел ввиду две проги разные неважно кем написанные

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:26 05-01-2016
127



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ответ выше

Всего записей: 599 | Зарегистр. 08-11-2015 | Отправлено: 16:41 05-01-2016
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хорошо. тогда что значит по твоему ось поддерживает? за процессор должна при переключении данные регистров сохранять?

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:09 05-01-2016
127



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а как по твоему осуществляется переключение задач?
ось либо сама, либо по просьбе задачи, приостанавливает ее исполнение, сохраняет контекст (все регистры, вкл фпу, ссе, авх, тсс, тлб, итд), делает свои дела, берет другую задачу, восстанавливает ее контекст, и задача продолжается, как ни в чем не бывало.  
в этом и заключается поддержка осью ссе, авх и прочего.
 
Добавлено:
процессор САМ ничего не сохраняет, он даже не знает, что и куда ему сохранять.  
а, ну и еще кеши надо сбросить при смене контекста, это тоже задача оси.

Всего записей: 599 | Зарегистр. 08-11-2015 | Отправлено: 18:27 05-01-2016
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Первое, что нужно сделать перед использованием AVX — убедиться, что система его поддерживает. В отличие от разных версий SSE, для использования AVX требуется его поддержка не только процессором, но и операционной системой (ведь она должна теперь сохранять верхние 128-бит AVX регистров при переключении контекста). К счастью, разработчики AVX предусмотрели способ узнать о поддержке этого набора инструкций операционной системой.

http://habrahabr.ru/post/99367/

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 04:06 06-01-2016
127



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz, ну и? что из этого следует, чего я не сказал раньше?

Всего записей: 599 | Зарегистр. 08-11-2015 | Отправлено: 09:38 06-01-2016
JFK2005



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Benchmark

Цитата:
вот понадобилось недавно задействовать AVX/AVX2. Оказалось, что кроме windbg и отладчика, встроенного в свежие версии IDA, воспользоваться-то и нечем.  

Есть вот такая модная штука, называется x64dbg. Отладчик бесплатный, с открытыми исходниками.
 

Всего записей: 2056 | Зарегистр. 26-10-2005 | Отправлено: 20:37 06-01-2016 | Исправлено: JFK2005, 20:39 06-01-2016
127



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JFK2005, выглядит круто... и наверное, еще круче работает... но.  
вот есть простенькое х86 консольное приложение, 3 кб. в хиеве там всего 9 опкодов.  
я распаковал ЭТО, запуская x96dbg жму опен, пробую скормить тот ехе... и ничего.  
проверил то же самое на х64, скормив х64 ехе - все ок.  
оно, конечно, понятно, что 64 бита щас страшно модно, но большинству хватает 32, и, о ужас, у некоторых еще 16 бит в ходу...

Всего записей: 599 | Зарегистр. 08-11-2015 | Отправлено: 21:10 06-01-2016
JFK2005



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
127
У меня нормально всё работает. Тоже скомпилил консольное приложение

Код:
#include <stdio.h>
int main(int argc, char* argv[])
{
  printf("111\r\n");
  return 0;
}

Загрузил в x86dbg - нормально отлаживается. Для 32-битных программ нужно использовать x32dbg, для 64-разрядных - x64dbg. Хотя по идее, 64-битный отладчик должен нормально принимать и 32-битный код.

Всего записей: 2056 | Зарегистр. 26-10-2005 | Отправлено: 21:31 06-01-2016
127



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
этот? snapshot_2015-10-28_05-28.7z

Всего записей: 599 | Зарегистр. 08-11-2015 | Отправлено: 21:39 06-01-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru