· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Проблема синтаксиса

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Ноя 23, 2003 01:23:02

Asterix, упертый ты мой, код Black_mirror НАМНОГО эффективнее! Что лишний раз доказывает - НЕ НУЖНО использовать эти примаханые макросы там, где НЕ НУЖНО. Я твою программу на С налабаю гораздо быстрее. А если уж писать на АССЕМБЛЕРЕ, то надо писать на ассемблере, а ни хрен знает на чем!


Дата: Ноя 23, 2003 02:22:35

volodya

Код от Black_mirror не соответствует моей процедуре.
Но, даже если бы я это писал на чистом асме то не стал бы использовать
всякие sbb, потому как это уже оптимизация с коей нужно повозиться,
а написал бы так как в листинге от Olly, другое дело что единожды
повозившись с оптимизацией этого кода далее его можно пихать
в другие программы без каких-либо доработок ;-)


Дата: Ноя 23, 2003 02:47:49

Не пойму никак чё у вас SBB постоянно упоминается как какая то суперхитрая команда, банальное вычитание с учётом займа с предыдущих разрядов. Вычесть следующие пару разрядов и учесть при этом займ который сделали из них предыдущие. Работа какой-нить DAS для понимания действительно может быть сложна для тех кто плохо в школе выучил свойства позиционных систем. А то нашли тоже хитрость - вычесть а из б да ещё вычесть заем "в уме" :)


Дата: Ноя 23, 2003 06:37:24

Прошу прощения, в моем коде есть ошибки, там вместо некоторых sbb должно быть adc.

Вот исправленный код, полностью соответствующий процедуре Asterix'а:
  cmp al,'f'+1
  sbb ebx,ebx
  cmp al,'a'
  adc ebx,0
  and ebx,'A'-'a'
  add al,bl
  cmp al,'F'+1
  sbb ebx,ebx
  cmp al,'A'
  adc ebx,0
  cmp al,'9'+1
  sbb ebx,0
  cmp al,'0'
  adc ebx,0
  cmp al,VK_BACK+1
  sbb ebx,0
  cmp al,VK_BACK
  adc ebx,0
  and eax,ebx
  ret

Здесь вообще нет переходов, поэтому никакие макросы для генерации меток и переходов не нужны.
Хотя на самом деле лучше использовать таблицу трансляции. Перекодирование будет осуществлятся всего парой комманд, и можно будет обойтись без вызова специальной процедуры. Правда табличка может быть великовата.


Дата: Ноя 23, 2003 06:50:55

Black_mirror

Спасибо.

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.063