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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
скрытую память выше адреса видео карты можно сделать доступной для данных создав рам диск. так же как в досе XMS было выше 1 мб
 
Добавлено:
VSuite.Ramdisk.Server.Edition
SuperCache.SuperVolume.2010
SuperSpeedRamDisk

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:31 03-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят извините тупо не знаю. Надо сохранить регистры все инструкции PUSHAD/POPAD не работают - версия 64 разряда. Подскажите плиз

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 18:17 04-03-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
погугли не такая команда должна быть pusha это 16 бит, pushad 32 бит, а для 64 еще наверняка какую то букву прилепили в конец

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 18:26 04-03-2012
MERCURY127



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

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 18:55 04-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а по-моему, аналогов в 64-версии ещё нет...

Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 19:01 04-03-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ужас с этим 64 битами
 
Добавлено:
а я только до ссе и ммикс добрался   , до 64 наверно уже никогда не доберусь

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:05 04-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а может и правда PUSHFQ, не юзал пока...

Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 19:20 04-03-2012
cp58

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
Нету такой инструкции, да и зачем? r8-15 регистры просто так дали?
akaGM

Цитата:
а может и правда PUSHFQ, не юзал пока...

Эта инструкция записывает в стек регистр флагов RFLAGS.

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 20:27 04-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
БЛИН щас на PUSH EDI ругается
 
Добавлено:
Короче асм переписывать придётся
 
Добавлено:
cp58
Я ничиго не понял, ламер я

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 20:27 04-03-2012
cp58

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

Цитата:
БЛИН щас на PUSH EDI ругается

push rdi
 
Добавлено:
delover

Цитата:
Короче асм переписывать придётся  

Поэтому люди используют язык C и лишь малую часть делают вставками ассемблера.

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 20:31 04-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот хочу
Подробнее...
 
Добавлено:

Цитата:
Поэтому люди используют язык C и лишь малую часть делают вставками ассемблера.

В 1994 сишный LZSS работал в 3 раза медленнее чем мой TURBO PASCAL. Си это бренд и только.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 20:38 04-03-2012
cp58

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

Цитата:
Вот хочу

Сохраняйте в стеке x64 регистры, делов то.(но лучше не тащить этот старый код и переписать с использованием новых регистров r8-15 и стек не нужен будет вобще для этой задачи, с fastcall и подавно)

Цитата:
В 1994 сишный LZSS работал в 3 раза медленнее чем мой TURBO PASCAL. Си это бренд и только.

Тут сказать нечего.

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 20:53 04-03-2012
delover

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

Цитата:
лучше не тащить этот старый код

Этот старый код шифрует данные реальные новые данные и юзается на полную, реальные датасеты, как раз там где FB загибается. Писать сиё на языках высокого уровня просто идиотизм мне кажется.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 21:02 04-03-2012
Benchmark



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

Цитата:
а по-моему, аналогов в 64-версии ещё нет

 
Ну почему же:
PUSHAQ / POPAQ - Push/pop all 64-bit general registers (except for RSP)

Всего записей: 6833 | Зарегистр. 01-10-2002 | Отправлено: 21:09 04-03-2012
cp58

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

Цитата:
Ну почему же:
PUSHAQ / POPAQ - Push/pop all 64-bit general registers (except for RSP)

Впервые слышу, откуда информация?
Посчитайте сколько вставит в стек эта инструкция(960 байт).
delover

Цитата:
Этот старый код шифрует данные реальные новые данные и юзается на полную, реальные датасеты, как раз там где FB загибается. Писать сиё на языках высокого уровня просто идиотизм мне кажется.

Ну все, уморили вы меня.
Какая задача? Напишите код на ассемблере, я на Си.
Современные компиляторы высокого уровня генерируют очень быстрый код, который может улучшить только программист, хорошо понимающий архитектуру процессора. Вы слышали про конвейер, SIMD?

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 21:22 04-03-2012 | Исправлено: cp58, 21:25 04-03-2012
Benchmark



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

Цитата:
Впервые слышу, откуда информация?

Из мануалов Intel.
 

Цитата:
Посчитайте сколько вставит в стек эта инструкция(960 байт)

Количество регистров на 64-бит процессорах увеличилось, разрядность - тоже.
 
P.S. Звиняюсь, перечитал тред, нужна стандартная команда-аналог PUSHAD/POPAD. Стандартной нет. Но это никак не мешает написать простейший макрос, выполняющий данную функцию. У самого именно так.

Всего записей: 6833 | Зарегистр. 01-10-2002 | Отправлено: 21:41 04-03-2012 | Исправлено: Benchmark, 21:53 04-03-2012
akaGM

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

Цитата:
PUSHFQ Valid in 64-bit mode Push RFLAGS.
 
In 64-bit mode, the instruction’s default operation is to decrement the stack pointer
(RSP) by 8 and pushs RFLAGS on the stack. 16-bit operation is supported using the
operand size override prefix 66H. 32-bit operand size cannot be encoded in this
mode. When copying RFLAGS to the stack, the VM and RF flags (bits 16 and 17) are
not copied; instead, values for these flags are cleared in the RFLAGS image stored on
the stack.
 
 
opcode
 

ELSE IF 64-bit MODE (* In 64-bit Mode *)
  IF OperandSize = 64
      THEN
         push (RFLAGS AND 00000000_00FCFFFFH);
(* VM and RF RFLAG bits are cleared in image stored on the stack; *)
      ELSE
         push (EFLAGS); (* Lower 16 bits only *)
  FI;
...


Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 22:13 04-03-2012 | Исправлено: akaGM, 22:22 04-03-2012
cp58

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

Цитата:
Из мануалов Intel.  

Про x64 инструкции корректнее ссылаться на amd, но не суть, ведь такой инструкции нет.

Цитата:
Количество регистров на 64-бит процессорах увеличилось, разрядность - тоже.  

К чему это вобще? Я вел к нецелесообразности такой инструкции, поскольку гоняется ~128 байт.
P.S. Выше я оговорился про 960 байт, конечно я имел ввиду бит.

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 00:07 05-03-2012 | Исправлено: cp58, 02:18 05-03-2012
delover

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

Цитата:
Какая задача? Напишите код на ассемблере, я на Си.  
Современные компиляторы высокого уровня генерируют очень быстрый код, который может улучшить только программист, хорошо понимающий архитектуру процессора. Вы слышали про конвейер, SIMD?

Полный код в предыдущем посте был и не изменился. Вы слышали про такие инструкции как  

Код:
 
        MOV     EDI, P            <-Вот сдесь
        MOV     ESI, EDI  
        MOV     ECX, Count     <-Вот сдесь
        PUSH    EDI  
        PUSH    ECX  
        XOR     EAX, EAX  
@@1:    LODSB                   <-Вот сдесь
 

Это как раз в архитектуре процессора позволяет мне шифровать таблицу с 2750000 записей. Я разбиваю эту таблицу на 2 таблицы загоняю в FireBird, он не может зафечить ни одну из них - Out of Memory. Моя программка открывает эту таблицу за 1 секунду, что было бы невозможно если бы шифрование было на языке высокого уровня. Инструкция LODSB заточена в архитектуре процессора на прямолинейное движение по массиву байтов, оптимизировать на ассемблере есть чего.
 
Добавлено:
Да кстати всю библиотечку не в качестве рекламы:
http://sourceforge.net/p/vdbi/home/Home/
Если кто захочет помочь - зарегаю, там есть SVN проект в доступе.
 
Добавлено:
Benchmark
Спасибо начну испытывать.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 09:09 05-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В XE2 ещё немного бажный ассемблер, неправильно параметру в процедуру передаются, похоже решение purepascal было обосновано. Придётся согласиться с ЦП и писать пурь аналог.
 
Добавлено:
Да не всё так просто оптимизатор ассемблера в XE2 не завершон - это радует. Пока борюсь с тем что есть.
 
Добавлено:
Напишу яснее синтаксис директив register - pascal и особенно stdcall ещё не изучен. Думаю скора буде гатова

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 18:30 05-03-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 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