Первая программа на ассемблере.
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.223] |
|
|
Перед отправкой сообщения внимательно прочтите правила раздела!!!

| Страницы: (5) 1 2 [3] 4 5 все ( Перейти к последнему сообщению ) |
Первая программа на ассемблере.
|
Сообщ.
#31
,
|
|
|
|
Программа обслуживания 24-битного измертельного АЦП на atmega8 AVR. Около 560 строк ассемблерного кода.
После этого чо-нить накатать на x86 уже стало не трудно, но как-то обломно и противно - до того ублюдская архитектура, даже не архитектура, а какой-то кривой забор из костылей и подпорок. |
|
Сообщ.
#32
,
|
|
|
|
Точно так же выражались те, кому пришлось сменить 8080 на х86
Но ко всему можно привыкнуть |
|
Сообщ.
#33
,
|
|
|
|
оно просто не дает тебе вызвать CreateWindow... |
|
Сообщ.
#34
,
|
|
|
|
Я думаю, достаточно висеть этой теме вверху
|
|
Сообщ.
#35
,
|
|
|
|
Я начал с Delphi BASM - так изучил все ring3-инструкции 386, далее таким же образом изучил MMX и немного SSE, асм использую исключительно для оптимизации.
Первая программа именно на чистом ассемблере была, если правильно помню, по копированию дискет из-под DOS. Цитата antigen @ Например? После этого чо-нить накатать на x86 уже стало не трудно, но как-то обломно и противно - до того ублюдская архитектура, даже не архитектура, а какой-то кривой забор из костылей и подпорок |
|
Сообщ.
#36
,
|
|
|
|
Цитата ors_archangel @ Например? Не обращай внимания ![]() Нормальная архитектура - это некоторым людям сохранение обратной совместимости с ранними моделями процессоров очень не нравится... |
|
Сообщ.
#37
,
|
|
|
|
Цитата cppasm @ Нормальная архитектура - это некоторым людям сохранение обратной совместимости с ранними моделями процессоров очень не нравится... Сопроцессор как отдельное устройство со своим стеком и командами - костыль, SSE - костыль, комплексные инструкции - костыль, защищённый режим - снова костыль. С другой стороны, если отбросить всё это наследие, получится очередной itanium - хорош, но никому не нужен. |
|
Сообщ.
#38
,
|
|
|
|
Цитата wind @ Сопроцессор как отдельное устройство со своим стеком и командами - костыль, SSE - костыль, комплексные инструкции - костыль, защищённый режим - снова костыль. С другой стороны, если отбросить всё это наследие, получится очередной itanium - хорош, но никому не нужен. Возможно это просто вопрос терминов, но я не согласен что это костыли. Это расширения. Почему сопроцессор как отдельное устройство - это костыль? У него другие типы данных, другое назначение - потому он и отдельное устройство. То же самое со всем остальным - SSE, Protected Mode. А как ты правильно заметил без обратной совместимости он даром никому нужен не будет... |
|
Сообщ.
#39
,
|
|
|
|
Ну так большинство наворотов вводилось в х86, исключительно для обеспечения работы многозадачных операционок. В тоже время это весьма простой CPU, из числа доступных, cверхмощных вычислительных платформ. Под многие его фичи (Real/Protected/MMX/SSE) очень интересно программить.
Цитата ors_archangel Я начал с Delphi BASM До сих пор восхищаюсь BASM, без которого врядли стал бы использовать Delphi. |
|
Сообщ.
#40
,
|
|
|
|
Цитата wind @ Начиная с четверок сопроцессор уже встроенный. Так о каком отдельном устройстве идет речь?Сопроцессор как отдельное устройство со своим стеком и командами - костыль Цитата wind @ Если брать в общих чертах, то не костыль, а расширение. Если же посмотреть на реализацию, то действительно костыль, с радиолюбительскими трюками защищённый режим - снова костыль Но это относится ко многим вещам. Взять хотя бы устройства видеоадаптеров. А что в этом мире совершенно?Цитата n0p @ Не представляю, как можно кодить без макросов До сих пор восхищаюсь BASM Да и простой счетчик адреса($) очень облегчает жизнь. Я уж не говорю про невозможность ариф. операций с адресами меток, про отсутствие Size(вот счастье то размеры структур самому высчитывать), да и много чего. В общем BASM тянет на игрушку, не более. Серьезные вещи на нем реализуются через костыли. |
|
Сообщ.
#41
,
|
|
|
|
А что такое BASM ? Built-in assembler или что ?
|
|
Сообщ.
#42
,
|
|
|
|
Цитата AndNot @ Начиная с четверок сопроцессор уже встроенный. Так о каком отдельном устройстве идет речь? Я об организации взаимодействия с ним. Логически он остался отдельным устройством. |
|
Сообщ.
#43
,
|
|
|
|
Цитата wind @ Я об организации взаимодействия с ним. Логически он остался отдельным устройством Это смотря какую логику прикручивать Логически и блоки работы с памятью (вычисление адреса, load\store буферы, LSU\MOB) можно рассматривать как отдельные устройства, а при желании и целочисленный умножитель тоже А если судить по стадиям обработки микроопераций, то в пеньках обработка FPU\MMX\SSE операций ничем не отличается от других - в P6 это вообще единый конвеер с общим загадочным планировщиком RS, а в NetBurst операции после ROB разделяются на несколько (практически) равноправных потоков (memory, FPU\MMX\SSE, slow-ALU, fast-ALU), направляемых на свои исполнительные блоки, поэтому приписывать FPU какое-то особый статус в такой архитектуре не приходится. А вот в архитектуре AMD операции FPU\MMX\SSE действительно выделяются в отдельный удлинненный конвеер, но связано это не с "тяжким наследием прошлого", а просто соображениями оптимизации (уменьшением длины конвеера и пенальти за непредсказаные переходы для быстрых и более популярных ALU\Mem операций, по сравнению с "медленными" FPU\MMX\SSE) и если бы AMD64 разрабатывался с нуля, то наверняка бы такое разделение сохранилось, т.к. оно логично по своей природе и к "костылям" никакого отношения не имеет ![]() PS: А вот стэковая организация регистров FPU видимо действительно пережиток прошлого и если бы не проблемы совместимости, то вполне можно было бы реализовать прямую адресацию регистров |
|
Сообщ.
#44
,
|
|
|
|
Цитата AndNot @ Не представляю, как можно кодить без макросов А я не представляю как можно с макросами ![]() Никогда не пользуюсь, всё руками... Так что на вкус и цвет... Цитата leo @ А что такое BASM ? Built-in assembler или что ? BASM - Borland Assembler. Они сами так свой встроенный ассемблер назвали, он так в справке значится ![]() Цитата AndNot @ Если брать в общих чертах, то не костыль, а расширение. Если же посмотреть на реализацию, то действительно костыль, с радиолюбительскими трюками А где там трюки если не секрет? Кроме формата дескрипторов который такой какой есть для совместимости с PMode 286, вроди ничего там такого не наблюдается... Насчёт VGA - там да, есть немного. Ну так цели такие были - разработчики адресное пространсво экономили, а не простоту обеспечивали... |
|
Сообщ.
#45
,
|
|
|
|
Цитата cppasm @ А тебе ни о чем не говорит структура дескрипторов? Выглядит, мягко говоря, уродливо. Понимаю, что совместимость, но ведь можно было реализовать совсем по другому, но инженеры предпочли съэкономить, заюзав старый формат. Один бит гранулярности чего стоит А где там трюки если не секрет? Так радиолюбители экономят транзисторы.Цитата cppasm @ Там очень много. Причем заметь, что бы избавиться от некоторых трюков, разработчики наплевали на совместимость с CGA, Hercules и тд. И правильно сделали. Насчёт VGA - там да, есть немного. |