На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
Страницы: (5) 1 2 [3] 4 5  все  ( Перейти к последнему сообщению )  
> Первая программа на ассемблере.
   
Собственно сабж :-)
Гости не могут просматривать результаты голосования.
Гости не могут голосовать 
    Программа обслуживания 24-битного измертельного АЦП на atmega8 AVR. Около 560 строк ассемблерного кода.
    После этого чо-нить накатать на x86 уже стало не трудно, но как-то обломно и противно - до того ублюдская архитектура, даже не архитектура, а какой-то кривой забор из костылей и подпорок.
      Точно так же выражались те, кому пришлось сменить 8080 на х86 :) Но ко всему можно привыкнуть :)
        Цитата Дьяволица @
        правда ? :( а я думала можно
        а откуда ты это помнишь ? ;)

        оно просто не дает тебе вызвать CreateWindow...
          Я думаю, достаточно висеть этой теме вверху ;)
            Я начал с Delphi BASM - так изучил все ring3-инструкции 386, далее таким же образом изучил MMX и немного SSE, асм использую исключительно для оптимизации.
            Первая программа именно на чистом ассемблере была, если правильно помню, по копированию дискет из-под DOS.

            Цитата antigen @
            После этого чо-нить накатать на x86 уже стало не трудно, но как-то обломно и противно - до того ублюдская архитектура, даже не архитектура, а какой-то кривой забор из костылей и подпорок
            Например?
              Цитата ors_archangel @
              Например?

              Не обращай внимания :)
              Нормальная архитектура - это некоторым людям сохранение обратной совместимости с ранними моделями процессоров очень не нравится...
                Цитата cppasm @
                Нормальная архитектура - это некоторым людям сохранение обратной совместимости с ранними моделями процессоров очень не нравится...

                Сопроцессор как отдельное устройство со своим стеком и командами - костыль, SSE - костыль, комплексные инструкции - костыль, защищённый режим - снова костыль. С другой стороны, если отбросить всё это наследие, получится очередной itanium - хорош, но никому не нужен.
                  Цитата wind @
                  Сопроцессор как отдельное устройство со своим стеком и командами - костыль, SSE - костыль, комплексные инструкции - костыль, защищённый режим - снова костыль. С другой стороны, если отбросить всё это наследие, получится очередной itanium - хорош, но никому не нужен.

                  Возможно это просто вопрос терминов, но я не согласен что это костыли.
                  Это расширения. Почему сопроцессор как отдельное устройство - это костыль?
                  У него другие типы данных, другое назначение - потому он и отдельное устройство.
                  То же самое со всем остальным - SSE, Protected Mode.
                  А как ты правильно заметил без обратной совместимости он даром никому нужен не будет...
                    Ну так большинство наворотов вводилось в х86, исключительно для обеспечения работы многозадачных операционок. В тоже время это весьма простой CPU, из числа доступных, cверхмощных вычислительных платформ. Под многие его фичи (Real/Protected/MMX/SSE) очень интересно программить.
                    Цитата ors_archangel
                    Я начал с Delphi BASM

                    До сих пор восхищаюсь BASM, без которого врядли стал бы использовать Delphi.
                      Цитата wind @
                      Сопроцессор как отдельное устройство со своим стеком и командами - костыль
                      Начиная с четверок сопроцессор уже встроенный. Так о каком отдельном устройстве идет речь?
                      Цитата wind @
                      защищённый режим - снова костыль
                      Если брать в общих чертах, то не костыль, а расширение. Если же посмотреть на реализацию, то действительно костыль, с радиолюбительскими трюками :D Но это относится ко многим вещам. Взять хотя бы устройства видеоадаптеров. А что в этом мире совершенно?
                      Цитата n0p @
                      До сих пор восхищаюсь BASM
                      Не представляю, как можно кодить без макросов <_< Да и простой счетчик адреса($) очень облегчает жизнь. Я уж не говорю про невозможность ариф. операций с адресами меток, про отсутствие Size(вот счастье то размеры структур самому высчитывать), да и много чего. В общем BASM тянет на игрушку, не более. Серьезные вещи на нем реализуются через костыли.
                        А что такое BASM ? Built-in assembler или что ?
                          Цитата AndNot @
                          Начиная с четверок сопроцессор уже встроенный. Так о каком отдельном устройстве идет речь?

                          Я об организации взаимодействия с ним. Логически он остался отдельным устройством.
                            Цитата 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 видимо действительно пережиток прошлого и если бы не проблемы совместимости, то вполне можно было бы реализовать прямую адресацию регистров
                              Цитата AndNot @
                              Не представляю, как можно кодить без макросов

                              А я не представляю как можно с макросами :)
                              Никогда не пользуюсь, всё руками...
                              Так что на вкус и цвет...

                              Цитата leo @
                              А что такое BASM ? Built-in assembler или что ?

                              BASM - Borland Assembler.
                              Они сами так свой встроенный ассемблер назвали, он так в справке значится :)

                              Цитата AndNot @
                              Если брать в общих чертах, то не костыль, а расширение. Если же посмотреть на реализацию, то действительно костыль, с радиолюбительскими трюками

                              А где там трюки если не секрет?
                              Кроме формата дескрипторов который такой какой есть для совместимости с PMode 286, вроди ничего там такого не наблюдается...
                              Насчёт VGA - там да, есть немного.
                              Ну так цели такие были - разработчики адресное пространсво экономили, а не простоту обеспечивали...
                              Сообщение отредактировано: cppasm -
                                Цитата cppasm @
                                А где там трюки если не секрет?
                                А тебе ни о чем не говорит структура дескрипторов? Выглядит, мягко говоря, уродливо. Понимаю, что совместимость, но ведь можно было реализовать совсем по другому, но инженеры предпочли съэкономить, заюзав старый формат. Один бит гранулярности чего стоит :lol: Так радиолюбители экономят транзисторы.
                                Цитата cppasm @
                                Насчёт VGA - там да, есть немного.
                                Там очень много. Причем заметь, что бы избавиться от некоторых трюков, разработчики наплевали на совместимость с CGA, Hercules и тд. И правильно сделали.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (5) 1 2 [3] 4 5  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.1135 ]   [ 17 queries used ]   [ Generated: 24.08.26, 04:54 GMT ]