навскидку, можно сделать колдунства:
Код:
inc d
; dec de ;удалили
ld a, c
...
dec de ;вставили
ld (de), a
; dec de ;удалили
-1 байт
Код:
; ld a, b ;удалили
.l1 ; цикл по байтам в линии
; push af ;удалили
push bc ;вставили
;...
; pop af ;удалили...
; dec a
; jr nz, .l1
; pop bc
; push bc
; ex de, hl
; ld c, b
; ld b, a
pop bc ;вставили...
djnz .l1
pop af
push af
ld c,a
ex de, hl
-3 байта
Код:
rlc (hl)
rra
; jr c, .s1 ;удалили...
; add hl,bc
; jr .l0
;.s1
; add hl,bc
ex af,af' ;вставили...
add hl,bc
ex af,af'
jr nc,.l0
-1 байт
если захотелось слегка ускорить внутренний цикл, то можно так:
Код:
ld a, 0x80
rlc (hl)
rra
.l0 ; цикл по байтам
add hl,bc
rlc (hl)
rra
; jr c, .s1
; add hl,bc
; jr .l0
;.s1
; add hl,bc
jr nc,.l0
add hl,bc
+1 байт