Важная информация

User Tag List

Показано с 1 по 10 из 10

Тема: Глубоко задумался над процедурой...или обращение в Вселенскому Разуму

  1. #1
    Banned Аватар для Orionsoft
    Регистрация
    03.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Благодарностей: 176
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Глубоко задумался над процедурой...или обращение в Вселенскому Разуму

    которая бы делала следующее:
    на входе 35 байт (280 бит )
    младший бит находится в 7 разряде первого (из 35) байта

    необходимо процесс который :

    последовательно переберёт 280 битную последовательность
    если текущщий бит = 0 то записать номер (слово) этого бита в адрес выходных данных

    т.е. если в 280 битовой последовательности все биты в нуле то на выходе было б 280 слов от нулевого до 280-ого



  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    CraZZZy CodEr Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    1,548
    Благодарностей: 738
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А что делать, когда бит=1
    Something like thizzz?
    Код:
         ld hl,OutPut
         ld de,0
         exx
         ld hl,Input
         ld b,35
    lab1 ld a,(hl)
         ld c,8
    lab2 rla
         exx
         jr c,lab3
         ld (hl),e
         inc hl
         ld (hl),d
         inc hl
    lab3 inc de
         exx
         dec c
         jr nz,lab2
         inc hl
         djnz lab1
         ret
    Все любят гипножабу

  4. #3
    Banned Аватар для Orionsoft
    Регистрация
    03.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Благодарностей: 176
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style

    А что делать, когда бит=1
    Something like thizzz?
    если бит = 1 то ничего , а как пройдёт последовательность и все =1 записать AAFF например

  5. #4
    Banned Аватар для Orionsoft
    Регистрация
    03.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Благодарностей: 176
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    да , нужна и процедура которая делает из результата всё наоборот

  6. #5
    Banned Аватар для Orionsoft
    Регистрация
    03.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Благодарностей: 176
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    правильно я раскомментил ?

    Код:
         ld hl,OutPut
         ld de,0   ; счётчик бит ( 0-260 )
         exx
         ld hl,Input
         ld b,35   ; счётчик байт 
    lab1 ld a,(hl)
         ld c,8    ; счётчик бит в байте 
    lab2 rla       : 7 бит в Carry
         exx
         jr c,lab3 ; если Carry =0 ( установлен ) то 
         ld (hl),e ; иначе записывем текущий номер бита в результат 
         inc hl    ; +1 адрес результата 
         ld (hl),d
         inc hl     ; +1 адрес результата
      
    lab3 inc de    ; увеличиваем счётчик бит 
         exx          
         dec c     ; уменьшаем 8 битовый проход 
         jr nz,lab2 ; биты еще остались ?
    
         inc hl     ; перешли к следующему байту последовательности
         djnz lab1
    
         ret

  7. #6
    CraZZZy CodEr Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    1,548
    Благодарностей: 738
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Orionsoft
    правильно я раскомментил ?
    Всё почти так и есть.
    Только тут:
    Код:
         jr c,lab3 ; если Carry = 1 ( установлен ) то блок пропускается, иначе...
    Последний раз редактировалось SAM style; 12.02.2007 в 23:29.
    Все любят гипножабу

  8. #7
    Banned Аватар для Orionsoft
    Регистрация
    03.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Благодарностей: 176
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    " Этюды " - рулят !

  9. #8
    Banned Аватар для Orionsoft
    Регистрация
    03.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Благодарностей: 176
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а процедура наоборот делающая ?
    если не трудно

  10. #9
    CraZZZy CodEr Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    1,548
    Благодарностей: 738
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вход - список номеров выключеных байт (словами, по 2 байта). Список заканчивается словом #FFFF.
    Код:
         ld hl,Output     ; сначала устанавливаем все биты
         ld b,35
    lab0 ld (hl),#FF
         inc hl
         djnz lab0
         ld hl,Input
    lab1 ld e,(hl)        ; берём номер бита
         inc hl
         ld d,(hl)
         inc hl
         ld a,d            ; если он #FFFF - выход
         and e
         inc a
         ret z
         push hl
         ld a,e           ; вычисляем маску для этого бита
         and 7
         ld c,#7F
         jr z,lab3
    lab2 rrc c
         dec a
         jr nz,lab2
    lab3 ld a,d       ; вычисляем адрес байта, в котором этот бит находится
         rra
         rr e
         rra
         rr e
         rra
         rr e
         ld d,0
         ld hl,OutPut
         add hl,de
         ld a,(hl)       ; сбрасываем бит
         and c
         ld (hl),a
         pop hl
         jr lab1         ; переходим к следующему номеру
    Можно ещё одну придумать, побыстрее, но только если список будет упорядоченым - от меньшего к большему.
    Все любят гипножабу

  11. #10
    Banned Аватар для Orionsoft
    Регистрация
    03.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Благодарностей: 176
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    За что люблю спектрум - самая добрая платформа =)
    SAMstyle

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Обращение к модераторам (публичное)
    от Addison в разделе Форум
    Ответов: 37
    Последнее: 03.10.2006, 08:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •