А если так? ;)
Код:_no_xor:
jp P,A_меньше_B
CCF
ret
A_меньше_B: ; A<B
SCF
ret
Вид для печати
Если я правильно написал, то не работает.Код:or a
sbc hl,de
jp PO,.nx
ld a,h
xor a, #80
.nx
jp P,.amb
CCF
ret
.amb
SCF
ret
Sergey, Исправил конец на вот так:
И заработало! :)Код:jp M,A_меньше_B
ld hl,#0000 ; HL>=DE
ret
A_меньше_B: ; HL<DE
ld hl,#0001
ret
Текущая версия тестов. 6 разных процедур тестируются на совпадение результатов.
а нельзя ли поменять LD HL,nnnn на установку флага С?
Думали тема раскрыта? - Ха! :)
Заменяем EX DE,HL, время которого ПРИБАВЛЯЕТСЯ к 16-битному вычитанию, на вычитание HL из DE с помощью 8-битной арифметики, которое выполняется ВМЕСТО 16-битного вычитания. Идея использования 8-й арифметики взята из SDCC.
34/33 такта. Среднее время выполнения 33,5.Код:LD A,H ; 4
XOR D ; 4
JP P,CHD ; 10
; EX DE,HL ; 4
ld a,e ; 4
sub l ; 4
ld a,d ; 4
sbc a,h ; 4
<ветвление по результату сравнения (CF)>
CHD SBC HL,DE ; 15
<ветвление по результату сравнения (CF)>