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


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



от: Alexandr Sinyakov
кому: All
дата: 13 Feb 2007
Hello, Orionsoft Ori> правильно я раскомментил ? Всё почти так и есть. Только тут: ┌─- code ─── jr c,lab3 ; если Carry = 1 ( установлен ) то блок пропускается, иначе... └── code ───

от: Alexandr Sinyakov
кому: All
дата: 13 Feb 2007
Hello, Orionsoft А что делать, когда бит=1 Something like thizzz? ┌─- code ─── 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 └── code ───

от: Orionsoft
кому: All
дата: 13 Feb 2007
Hello, All которая бы делала следующее: на входе 35 байт (280 бит ) младший бит находится в 7 разряде первого (из 35) байта необходимо процесс который : последовательно переберёт 280 битную последовательность если текущщий бит = 0 то записать номер (слово) этого бита в адрес выходных данных т.е. если в 280 битовой последовательности все биты в нуле то на выходе было б 280 слов от нулевого до 280-ого :eek; :v2_jawdr:;

от: Orionsoft
кому: All
дата: 13 Feb 2007
Hello, Orionsoft да , нужна и процедура которая делает из результата всё наоборот :v2_blink:

от: Orionsoft
кому: All
дата: 13 Feb 2007
Hello, Orionsoft правильно я раскомментил ? ┌─- CODE ─── 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 └── CODE ───

от: Orionsoft
кому: All
дата: 13 Feb 2007
Hello, SAM style " Этюды " - рулят ! :v2_clapp:

от: Orionsoft
кому: All
дата: 13 Feb 2007
Hello, SAM style SAM> А что делать, когда бит=1 SAM> Something like thizzz? если бит = 1 то ничего , а как пройдёт последовательность и все =1 записать AAFF например

от: Orionsoft
кому: All
дата: 13 Feb 2007
Hello, Orionsoft а процедура наоборот делающая ? если не трудно :rolleyes:

от: Alexandr Sinyakov
кому: All
дата: 13 Feb 2007
Hello, Orionsoft Вход - список номеров выключеных байт (словами, по 2 байта). Список заканчивается словом #FFFF. ┌─- code ─── 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 ; переходим к следующему номеру └── code ─── Можно ещё одну придумать, побыстрее, но только если список будет упорядоченым - от меньшего к большему.

от: Orionsoft
кому: All
дата: 13 Feb 2007
Hello, SAM style За что люблю спектрум - самая добрая платформа =) SAMstyle :v2_cheer:




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

Похожие статьи:
Кодинг - Разбор опечаток из предыдущей статьи...
Железо - Мнение пользователя о скорпионовском контроллере IDE HDD - SMUC.
Найдено в интернете - Hacker online: Soft антиАОН.
Фантазия - компьютерная новелла по игре "Night Run".
Outro - Адреса редакции.

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