|
|
| Посл.отвђт | Сообщен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 Спасибо. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.063 |