User Tag List

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

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    04.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  3. #2

    Регистрация
    04.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    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

  4. #3

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  5. #4

    Регистрация
    04.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #5

    Регистрация
    04.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  7. #6

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 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         ; переходим к следующему номеру
    Можно ещё одну придумать, побыстрее, но только если список будет упорядоченым - от меньшего к большему.
    Все любят гипножабу

  8. #7

    Регистрация
    04.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

Похожие темы

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

Ваши права

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