Важная информация

User Tag List

Показано с 1 по 10 из 30

Тема: Вопрос на засыпку: что делает эта подпрограмма?

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    263
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вопрос на засыпку: что делает эта подпрограмма?

    входные данные result_lh
    сумма двух квадратов

    выходные данные L - result_l

    Код:
    count_round
    ;                LDY     rezult_h        ; y=(rezult_h)
    ;                LDA     rezult_l        ; a=(rezult_l)
    ;                STA     factor_2        ; (factor2)=(rezult_l)
    	ld	de,(rezult_1)
    			;	d(y=result_h)
    			;	e=factor2
    
    ;                 LDX     #0              ; x=0
    ;                 STX     rezult_l        ; rezult_l=0
    ;                 LDA     #8
    ;                 STA     factor_1        ; ctr=8 repeat 16 times
    
    	ld	bc,#0800
    			;	b=factor_1
    			;	c=x
    	ld	l,0	
    			;	l=rezult_l
    count_loop
    ;                 CPX     rezult_l        ; x=(result_l)?
    		
    	ld	a,c
    	cp	l
    
    ;                 BCC     skip_decr       ; jr nc
    	jr	nc,skip_decr
    
    ;                 BNE     no_chek_round   ; jr nz
    	jr	nz,no_chek_round
    
    
    
    ;                 CPY     #$40 ; '@'      ; y(rezult_h)=#40?
    	ld	a,d
    	cp	#40
    
    ;                 BCC     skip_decr       ; jr nc
    	jr	nc,skip_decr
    
    
    
    no_chek_round
    ;                 TYA
    ;                 SBC     #$40 ; '@'      ; y(result_h)-#40
    ;                 TAY
    
    	ld	a,d
    	sbc	a,#40	
    	ld	d,a
    
    ;                 TXA
    ;                 SBC     rezult_l        ; x-result_l
    ;                 TAX
    
    	ld	a,c
    	sbc	a,l
    	ld	c,a
    
    skip_decr
    
    ;                 ROL     rezult_l        ; rezult_l*2
    
    	rl	l
    
    
    ;                 ASL     factor_2        ; <(factor2)(result_l)
    ;                 TYA
    ;                 ROL     A               ; <y
    ;                 TAY
    ;                 TXA
    ;                 ROL     A               ; <x
    ;                 TAX
    
    	sla	e
    	rl	d
    	rl	c
    
    ;                 ASL     factor_2        ; <(factor2)(result_l)
    ;                 TYA
    ;                 ROL     A               ; <y
    ;                 TAY
    ;                 TXA
    ;                 ROL     A               ; ;<x
    ;                 TAX
    
    	sla	e
    	rl	d
    	rl	c
    
    ;                 DEC     factor_1
    ;                 BNE     count_loop
    
    	djnz	count_loop
    
    ;                 RTS
    	ret
    С уважением,
    Jerri / Red Triangle.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 40
    Последнее: 13.02.2022, 22:16
  2. Что делает данная схемка (инвертор и 2 диода)?
    от PATHNK в разделе Несортированное железо
    Ответов: 7
    Последнее: 10.09.2013, 15:15
  3. вопрос на засыпку
    от Red_Ant в разделе Игры
    Ответов: 5
    Последнее: 15.09.2006, 18:34
  4. Вот что делает РЕКЛАМА!
    от Firestarter в разделе Форум
    Ответов: 12
    Последнее: 26.01.2005, 18:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •