Вращение бинарного изображения вокруг своей оси на произвольный угол. Освоение предметной области ВИСУ на примере практической задачи работы с визуальными сценами, страница 5

add a,b

jnc perep

inc r5

jmp perep

ch3:           mov dph,#0

mov dpl,#0

mov a,consty

mov b,new_coord_y

add a,b

mov r0, a

mov r1, #0

mov r2, #177

mov r3, #0

lcall mul42

mov a, constx

mov b,new_coord_x

subb a,b

mov b, r4

add a,b

jnc perep

inc r5

jmp perep

ch4:           mov dph,#0

mov dpl,#0

mov a,consty

mov b,new_coord_y

add a,b

mov r0, a

mov r1, #0

mov r2, #177

mov r3, #0

lcall mul42

mov a, constx

mov b,new_coord_x

add a,b

mov b, r4

add a,b

jnc perep

inc r5

gradex:    

perep:       mov a, dph_pix

mov dph, a

mov a,#9Ch

add a,dph

mov dph,a

mov dph_pix,a

mov dpl, dpl_pix

;mov r0, dph

;mov r1, dpl

mov a, #FFh ;записываем красный цвет в новую точку

movx @dptr, a

ret

INCLUDE ASMS\4081_1\v_cam\init_inc.asm

INCLUDE ASMS\4081_1\v_cam\tune_inc.asm

INCLUDE ASMS\4081_1\v_cam\upl_inc.asm

INCLUDE ASMS\4081_1\v_cam\cap_inc.asm

INCLUDE ASMS\4081_1\v_cam\umnogeni.asm

INCLUDE ASMS\4081_1\v_cam\delenie.asm

;Диапазон адресов памяти 8100h  -  8300h задействован!

;Диапазон адресов памяти 9C00h - FFFFh задействован!

org 9000h

cotg_h:

.db FFh, 6Fh, 4Ah, 37h, 2Ch, 25h, 1Fh, 1Bh, 18h, 16h

.db 14h, 12h, 10h, 0Fh, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh, 0Ah 

.db 0Ah, 09h, 09h, 08h, 08h, 08h, 07h, 07h, 07h, 06h 

.db 06h, 06h, 06h, 05h, 05h, 05h, 05h, 04h, 04h, 04h 

.db 04h, 04h, 04h, 04h, 03h, 03h, 03h, 03h, 03h, 03h 

.db 03h, 03h, 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h 

.db 02h, 02h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h 

.db 01h, 01h, 01h, 01h, 01h, 00h, 00h, 00h, 00h, 00h 

.db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h

org 9100h

cotg_l:

.db FFh, DCh, 89h, DCh, A6h, 2Ah, D0h, CBh, A9h, 27h

.db 18h, 60h, EBh, AAh, 94h, 9Fh, C6h, 05h, 58h, BBh

.db 2Dh, ABh, 33h, C6h, 60h, 02h, AAh, 58h, 0Ch, C4h

.db 80h, 40h, 03h, CAh, 94h, 60h, 2Fh, FFh, D2h, A7h

.db 7Eh, 56h, 30h, 0Bh, E8h, C5h, A4h, 84h, 65h, 47h

.db 29h, 0Dh, F1h, D6h, BCh, A2h, 89h, 70h, 58h, 41h,

.db 2Ah, 13h, FDh, E7h, D2h, BDh, A8h, 94h, 7Fh, 6Bh

.db 58h, 44h, 31h, 1Eh, 0Bh, F9h, E6h, D4h, C2h, B0h

.db 9Eh, 8Ch, 7Ah, 69h, 57h, 45h, 34h, 22h, 11h, 00h

org 8A00h

sin_h:

.db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h

.db 00h, 00h, 00h, 00h, 01h, 01h, 01h, 01h, 01h, 01h

.db 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h

.db 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h

.db 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h

.db 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h

.db 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h

.db 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h

.db 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h

org 8B00h

sin_l:

.db 11h, 23h, 34h, 46h, 57h, 69h, 7Ah, 8Bh, 9Ch, AEh

.db BFh, D0h, E1h, F2h, 03h, 14h, 24h, 35h, 46h, 56h

.db 66h, 77h, 87h, 97h, A7h, B6h, C6h, D5h, E5h, F4h

.db 03h, 12h, 21h, 2Fh, 3Eh, 4Ch, 5Ah, 68h, 75h, 83h

.db 90h, 9Dh, AAh, B7h, C3h, CFh, DBh, E7h, F3h, FEh

.db 09h, 14h, 1Fh, 29h, 33h, 3Dh, 47h, 50h, 59h, 62h

.db 6Bh, 73h, 7Bh, 83h, BAh, 92h, 99h, 9Fh, A6h, ACh

.db B2h, B7h, BCh, C1h, C6h, CAh, CEh, D2h, D6h, D9h

.db DCh, DEh, E1h, E3h, E4h, E6h, E7h, E7h, E7h, E8h

org 8C00h

cos_h:

.db 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h

.db 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h

.db 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h

.db 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 03h

.db 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h

.db 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h, 02h

.db 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h

.db 01h, 01h, 01h, 01h, 01h, 01h, 00h, 00h, 00h, 00h

.db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h

org 8D00h

cos_l:

.db E8h, E7h, E7h, E7h, E6h, E4h, E3h, E1h, DEh, DCh

.db D9h, D6h, D2h, CEh, CAh, C6h, C1h, BCh, B7h, B2h

.db ACh, A6h, 9Fh, 99h, 92h, BAh, 83h, 7Bh, 73h, 6Bh

.db 62h, 59h, 50h, 47h, 3Dh, 33h, 29h, 1Fh, 14h, 09h

.db FEh, F3h, F7h, DBh, CFh, C3h, B7h, AAh, 9Dh, 90h