Вход - список номеров выключеных байт (словами, по 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 ; переходим к следующему номеру
Можно ещё одну придумать, побыстрее, но только если список будет упорядоченым - от меньшего к большему.