Задача: вывести число 0-255 на экран как можно быстрее (имхо краткость кода уже нужна только писателям 512b интро). Вот мой вариант:
Код:
prnnm: LD A,число
LD HL,.dectb
LD DE,адрес_на_экране
LD B,3
.loop1: LD C,"0"-1
.loop2: INC C
SUB (HL)
JR NC,.loop2
ADD A,(HL)
PUSH AF
LD A,C
CALL prnNUM ;вывод числа
POP AF
INC E
INC HL
DJNZ .loop1
RET
.dectb: DB 100,10,1
prnNUM: ;вывод числа через стек
;в DE - ADDR (на начале строки!)
;в A - число
PUSH BC,DE,HL
LD BC,адресшрифта
LD H,0
LD L,A
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,BC
LD (.savsp+1),SP
LD SP,HL
EX DE,HL
POP DE
LD (HL),E
INC H
LD (HL),D
INC H
POP DE
LD (HL),E
INC H
LD (HL),D
INC H
POP DE
LD (HL),E
INC H
LD (HL),D
INC H
POP DE
LD (HL),E
INC H
LD (HL),D
.savsp: LD SP,0
POP HL,DE,BC
RET