ZXNet эхоконференция «code.zx»


тема: быстрое деление/умножение



от: Kirill Frolov
кому: All
дата: 23 Mar 2001
Hемедленно нажми на RESET, All! Пытаюсь драйвер винта для ис-доса (и не только) сделать. А тут надо CHS адресацию в LBA пересчитывать и обратно. Если из CHS в LBA то получается два 16-битных умножения, а если из LBA в CHS то одно умножение и два 16-битных деления с остатком. А если вспомнить сколько времени спек делит 16-битные числа то страшно становится подумать как же оно тормозить будет! Hа одно деление уходит только несколько тысяч тактов, да и на умножение не намного меньше. :-( Можно провести оптимизацию: ; HLDE=LBA, HL'=трек DE'=секторов в треке LD B, 4 L1 ЕX DE, HL ADD HL, HL EX DE, HL ADC HL, HL DJNZ L1 LD B, 28 EXX LD HL, 0 LD DE, (HEADS*SECTORS) EXX L2 EX DE, HL ADD HL, HL EX DE, HL ADC HL, HL EXX CCF JR NC, L3 ADD HL, DE L3 ADC HL, HL EXX DJNZ L2 Получается около 2-х тыс. тактов. :-( Hа ОДHУ операцию! :-( Дизассемблером ещё не пытался смотреть -- неужели так каждый драйвер винта тормозит? :-( ) * Originally in CODE.ZX * Crossposted in ZX.SPECTRUM




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
warЫz! - Convertor ZX-Screen to BMP, CASH Remember v1.1, Hrip v1.03, ALASM 4.4.
Их нравы - Чапай и его правила.
Реклама - Реклама и объявления.
Sobaka.ру - postbox: "собственно, вот и оно, то, ради чего отчасти и делался [крик - ваши отзывы, эмоции и даже Зло. Писем пришло много..."
Scene - эпический отчет о поездке CPU на CAFe'2002.

В этот день...   8 мая