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

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

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

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
Страницы: (3) 1 2 [3]  все  ( Перейти к последнему сообщению )  
> Разработка своего ассемблера
    Всем привет!

    Тему создаю просто для отделения вопросов сабжа из темы "fasm синтаксис".

    Предыстория

    Цитата Jin X
    Вот захочу я свой асм создать (вернее, я уже хочу... начну, хотел сказать), а там такое будет! Тогда вообще непонятно станет, как дальше жать.
      Цитата Славян @
      Хотя ассемблерщиков здесь маловато, кажись...
      Я думаю, что человек 5 вполне хватит для нормального диалога.
      Другое вопрос – что это даст? Мы будет Intel'у отправлять это всё?

      Цитата Славян @
      Увы, но толк может выйти лет чрез 5, думается.
      Была бы группа побольше и посерьёзней... с обоснованием – зачем.

      Цитата Славян @
      до 0 в строке или докуда идёт считывание?
      Не знаю, это скорее шутка была :)
        Ещё пару фишек придумал:

        1. Перевод кода внутри #{} в числовое значение:
        ExpandedWrap disabled
          mov eax, not #{xor ecx,ecx}

        2. Оптимизация отдельных инструкций.
        По размеру:
        ExpandedWrap disabled
          *mov eax,0  ; преобразуется в xor eax,eax
        По скорости:
        ExpandedWrap disabled
          +dec eax  ; преобразуется в sub eax,1
          Неоднозначность же в п.1 - есть код, у коего разные варианты машинного представления.
            Славян, и что?
            Когда мы пишем xor ecx,ecx в коде, тоже есть разные варианты, но компилится в один, никого не спрашивая. А если это важно, то это решается другими способами: специальными всякими, например
            ExpandedWrap disabled
              xor ecx,ecx !rmsrc
              xor ecx,ecx !rmdst
            (обозначать, как вариант, можно и по-другому).

            Т.е.
            ExpandedWrap disabled
              mov eax, ~ #{
                  xor ecx,ecx !rmsrc
                  xor edx,edx !rmdst
                }
               
              push hidword double(3.14159265358979)
              Да ничего, ничего! :blush:
              Просто некоторая неприязнь к некоей неоднозначности... Спустя годы народ забудет отчего так, и будут вопросы с выражением: :blink:
              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
              0 пользователей:
              Страницы: (3) 1 2 [3]  все


              Рейтинг@Mail.ru
              [ Script execution time: 0,0313 ]   [ 16 queries used ]   [ Generated: 25.06.21, 09:19 GMT ]