С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Огромедное спасибо) С 99 не брался за асм... ух и тяжко)))
---------- Post added at 15:09 ---------- Previous post was at 15:03 ----------
А за одно можно код генератора случайных чисел с возможностью задания пределов???
УКНЦ+FDD+HDD; ZX-NEXT; Scorpion 256k; ZXM Phoenix+TurboSoundFM; Spectrum 48k; ZX Hobbit; Radio 86RK
я использую такой рандомизатор:
от длины и "рандомности" строки в rnd_data зависит рандомность генератора.Код:rnd: ld a,(rnd_data_e - 1) ld hl,rnd_data dup rnd_data_e - rnd_data - 1 add a,(hl) ld (hl),a inc hl edup add a,(hl) ld (hl),a ret rnd_data: db "HBF^db" rnd_data_e:
чем длинее строка - тем рандомнее числа, но тем медленней работает.
4-8 символов обычно хватает для любых случаев.
чтоб в заданных пределах, то это уже сложней.
если надо от N до N+(2^x)-1, то можно так:
например если надо от 30 до 61, то пойдёт такой метод:
and 31
add a,30
если в совсем любых пределах, то без умножения не получится.
надо делить на 4 так: rrca:rrca:and %00111111 - 4 байта, 11 тактов при безваите
АААААА! вот это меня плющит))))
первоначально хотел написать 7 тактов))
и ведь точно знаю, и считал ведь именно так: 4+4+7, но получилось 11...))))
Код:;A=range - число будет в границах от 0 до range-1 Random push af call rand_ pop af ld c,a ld b,0 ex de,hl call mod ld a,l ret rand_ LD D,0 LD BC,(rnd) LD H,C LD L,#FD LD A,B OR A SBC HL,BC SBC A,D SBC HL,BC SBC A,D LD E,A SBC HL,DE JR NC,r1 INC HL r1 LD (rnd),HL RET rnd DW 0 mod LD A,16 LD HL,0 m0 RL E RL D RL L RL H SBC HL,BC JR NC,m1 ADD HL,BC m1 CCF DEC A JR NZ,m0 RET
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)