Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Assembler

Автор: 127
Дата сообщения: 05.01.2016 14:31
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
Автор: bomzzz
Дата сообщения: 05.01.2016 14:36
127
а если два процесса используют сопроцессор, ммх, ссе. при переключении процессора с процесса на процесс чиво будит?
Автор: 127
Дата сообщения: 05.01.2016 14:56
Если ось поддерживает - будет переключение контекста. Если нет - все на откуп программистам, которые, вообще то, не должны позволять запуск такой проги без поддержки со стороны оси.
Автор: bomzzz
Дата сообщения: 05.01.2016 15:26
я имел ввиду две проги разные неважно кем написанные
Автор: 127
Дата сообщения: 05.01.2016 15:41
Ответ выше
Автор: bomzzz
Дата сообщения: 05.01.2016 16:09
хорошо. тогда что значит по твоему ось поддерживает? за процессор должна при переключении данные регистров сохранять?
Автор: 127
Дата сообщения: 05.01.2016 17:27
а как по твоему осуществляется переключение задач?
ось либо сама, либо по просьбе задачи, приостанавливает ее исполнение, сохраняет контекст (все регистры, вкл фпу, ссе, авх, тсс, тлб, итд), делает свои дела, берет другую задачу, восстанавливает ее контекст, и задача продолжается, как ни в чем не бывало.
в этом и заключается поддержка осью ссе, авх и прочего.

Добавлено:
процессор САМ ничего не сохраняет, он даже не знает, что и куда ему сохранять.
а, ну и еще кеши надо сбросить при смене контекста, это тоже задача оси.
Автор: bomzzz
Дата сообщения: 06.01.2016 03:06

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

http://habrahabr.ru/post/99367/
Автор: 127
Дата сообщения: 06.01.2016 08:38
bomzzz, ну и? что из этого следует, чего я не сказал раньше?
Автор: JFK2005
Дата сообщения: 06.01.2016 19:37
Benchmark

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

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

Автор: 127
Дата сообщения: 06.01.2016 20:10
JFK2005, выглядит круто... и наверное, еще круче работает... но.
вот есть простенькое х86 консольное приложение, 3 кб. в хиеве там всего 9 опкодов.
я распаковал ЭТО, запуская x96dbg жму опен, пробую скормить тот ехе... и ничего.
проверил то же самое на х64, скормив х64 ехе - все ок.
оно, конечно, понятно, что 64 бита щас страшно модно, но большинству хватает 32, и, о ужас, у некоторых еще 16 бит в ходу...
Автор: JFK2005
Дата сообщения: 06.01.2016 20:31
127
У меня нормально всё работает. Тоже скомпилил консольное приложение

Код: #include <stdio.h>
int main(int argc, char* argv[])
{
printf("111\r\n");
return 0;
}
Автор: 127
Дата сообщения: 06.01.2016 20:39
этот? snapshot_2015-10-28_05-28.7z
Автор: JFK2005
Дата сообщения: 06.01.2016 20:47
127
Нет, snapshot_2016-01-03_10-40.7z
Автор: 127
Дата сообщения: 06.01.2016 21:01
попробовал другой х32 ехе - все норм
пересобрал первый ехе - опять не принимает...
вот для теста ехе http://sendfile.su/1190564
[more=вот код]
Код:
#include <stdio.h>
#define _USE_MATH_DEFINES
#include <math.h>

double IAPWS95( double T){
double a,b, e, r,v;

    r= T/647.096;

    v= 1 -r;

    a= v*v;
    b= sqrt( v);

    e= -7.85951783 *v
        +1.84408259 *v*b
        -11.7866497 *v*a
        +22.6807411 *v*a*b
        -15.9618719 *a*a
        +1.80122502 *v*a*a*a*b;
    
    return exp(e/r) *22.064e6;
}// IAPWS95

void main(){
int tC;

for( tC= 0; tC <=100; tC+=10) printf( "%d\t%f\n", tC, IAPWS95( tC +273.15));
}// main
Автор: JFK2005
Дата сообщения: 06.01.2016 21:22
127
Любопытно. У меня ваш .exe открывается нормально. Система - Windows 7 x64.

Скомпилировал ваш код, вот [more=ключи командной строки]cl /O1 /Os /Oy /GL /GF /FD /MD /GS- /EHsc /GR- /W1 /nologo /Zi /TP "!.!" /link /INCREMENTAL:NO /NOLOGO /MANIFEST:NO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /DYNAMICBASE:NO /MACHINE:X86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib[/more]. Компилятор - Visual C++ 2010 SP1.

http://sendfile.su/1190570
Автор: 127
Дата сообщения: 06.01.2016 21:42
Я уже сплю завтра отвечу
Автор: 127
Дата сообщения: 07.01.2016 12:48
что то я так и не понял, что вчера было... сегодня ВСЕ нормально отлаживается
Автор: Benchmark
Дата сообщения: 07.01.2016 20:08
JFK2005

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

Пробовал один из билдов прошлой осенью. Он тупо "не знал" большинство команд из AVX/AVX2. Содержимое XMM/YMM/ZMM регистров отображалось, а сами инструкции в окне дизассемблера - нет. Там были сплошные db...
Автор: JFK2005
Дата сообщения: 07.01.2016 21:47
Benchmark
Свежий билд понимает AVX2. Только что скомпилировал простенькую программку с ключом /QxCORE-AVX2 и загрузил в x32dbg:

Автор: bomzzz
Дата сообщения: 08.01.2016 05:42
вот масм32 с AVX. но не проверял у меня проц только ссе2 поддерживает.

http://rghost.ru/7PYBf9XzB
это обычный

http://rghost.ru/6f97sqB5S
а этот усовершенстваванный
Автор: 127
Дата сообщения: 20.01.2016 14:50

Цитата:
Содержимое XMM/YMM/ZMM регистров отображалось, а сами инструкции в окне дизассемблера - нет. Там были сплошные db...
инструкции видны. но!
эти так называемый отладчики с ММХ/ССЕ/АВХ - все это херня на постном масле извините!
вот я отлаживаю прогу с плавающей точкой. в х64 варианте ВСЯ математика с ПТ идет через ссе... но сами регистры ссе отображаются в ХЕКСЕ!!!
лепота! я что, в уме должен эти хексы в десятичную форму переводить, что ли???
в чем тогда помощь в отладке заключается, если я то же самое могу увидеть в HIEW? ровно с такой же степенью понятности!
я понимаю, что регистры ссе многофункциональные. ну так отслеживайте, какая инструкция только что выполнилась, и какая будет следом, и парсите регистр соответственно!!!
Автор: Benchmark
Дата сообщения: 20.01.2016 15:57
127

Цитата:
вот я отлаживаю прогу с плавающей точкой. в х64 варианте ВСЯ математика с ПТ идет через ссе... но сами регистры ссе отображаются в ХЕКСЕ!!!

В "мультимедийных" регистрах MMX/SSE/AVX, в отличие от FPU, обычно содержится не одно большое число, а векторы из нескольких чисел. Да, было бы приятно навести курсор мыши на содержимое такого регистра в hex'е, и получить во всплывающей подсказке отображение его элементов в виде floating point. Но это пока мечты.
Автор: 127
Дата сообщения: 20.01.2016 18:24
я в курсе, что там векторы. и дебаггер тоже в курсе, какую инструкцию он только что прогнал, и какая следующая, и как они эти векторы интерпретируют. как минимум, ширину и тип операндов можно узнать. а в текущем виде, толку от такой "отладки" - 0.0E0
Автор: Benchmark
Дата сообщения: 20.01.2016 18:28
127

Цитата:
а в текущем виде, толку от такой "отладки" - 0.0E0

В текущем виде для таких целей удобнее использовать Visual Studio. Там даже чисто ассемблерные функции и писать, и отлаживать гораздо удобнее.
Автор: lormutryas
Дата сообщения: 28.01.2016 05:28

Цитата:
http://rghost.ru/6f97sqB5S
а этот усовершенстваванный

файл удалён, а что там военного по сравнению с 10.00.40219.01?
или секретные разработки пантеона включены в экзамплы?
Автор: Antono89
Дата сообщения: 20.02.2016 22:08
виртуальные машины кто-то создавал?
Автор: bomzzz
Дата сообщения: 21.02.2016 00:34
там более полные библиотеки позволяющие писать драйверы
Автор: lormutryas
Дата сообщения: 22.02.2016 15:56

Цитата:
там более полные библиотеки позволяющие писать драйверы

ну мне оно не к спеху, сейчас вообще не программирую, но за развитием masm32 слежу еще с первых пакетов хатчесона 2001-2002 годов
но если вдруг понадобится не откажите в любезности поделиться..благодарю заранее
Автор: bomzzz
Дата сообщения: 22.02.2016 16:08
http://rghost.ru/8JwLlJCls

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384

Предыдущая тема: .NET GUI компоненты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.