📄 3dtesting.lis
字号:
05FC EE56 subi R30,110 ; addi 146
05FE FF4F sbci R31,255
0600 9183 std z+1,R25
0602 8083 std z+0,R24
0604 .dbline 61
0604 8731 cpi R24,23
0606 E0E0 ldi R30,0
0608 9E07 cpc R25,R30
060A 0CF4 brge X13
060C 0FCE xjmp L6
060E X13:
060E X0:
060E .dbline 90
060E ;
060E ; for (i=0; i<22; i++) // draw the lines that make up the object
060E 0024 clr R0
0610 1124 clr R1
0612 FE01 movw R30,R28
0614 EE56 subi R30,110 ; addi 146
0616 FF4F sbci R31,255
0618 1182 std z+1,R1
061A 0082 std z+0,R0
061C L13:
061C .dbline 91
061C ; {
061C .dbline 92
061C ; vertex=ff[i]-1; // temp = start vertex for this line
061C 80E0 ldi R24,<_ff
061E 90E0 ldi R25,>_ff
0620 DE01 movw R26,R28
0622 AE56 subi R26,110 ; addi 146
0624 BF4F sbci R27,255
0626 ED91 ld R30,x+
0628 FC91 ld R31,x
062A EE0F lsl R30
062C FF1F rol R31
062E E80F add R30,R24
0630 F91F adc R31,R25
0632 6791 elpm R22,Z+
0634 7691 elpm R23,Z
0636 6150 subi R22,1
0638 7040 sbci R23,0
063A .dbline 93
063A ; sx=newx[vertex]; // set line start x to vertex[i] x position
063A CE01 movw R24,R28
063C 4296 adiw R24,18
063E FB01 movw R30,R22
0640 EE0F lsl R30
0642 FF1F rol R31
0644 E80F add R30,R24
0646 F91F adc R31,R25
0648 2080 ldd R2,z+0
064A 3180 ldd R3,z+1
064C 30920700 sts _sx+1,R3
0650 20920600 sts _sx,R2
0654 .dbline 94
0654 ; sy=newy[vertex]; // set line start y to vertex[i] y position
0654 CE01 movw R24,R28
0656 805C subi R24,192 ; offset = 64
0658 9F4F sbci R25,255
065A FB01 movw R30,R22
065C EE0F lsl R30
065E FF1F rol R31
0660 E80F add R30,R24
0662 F91F adc R31,R25
0664 2080 ldd R2,z+0
0666 3180 ldd R3,z+1
0668 30920500 sts _sy+1,R3
066C 20920400 sts _sy,R2
0670 .dbline 95
0670 ; vertex=gg[i]-1; // temp = end vertex for this line
0670 80E0 ldi R24,<_gg
0672 90E0 ldi R25,>_gg
0674 DE01 movw R26,R28
0676 AE56 subi R26,110 ; addi 146
0678 BF4F sbci R27,255
067A ED91 ld R30,x+
067C FC91 ld R31,x
067E EE0F lsl R30
0680 FF1F rol R31
0682 E80F add R30,R24
0684 F91F adc R31,R25
0686 6791 elpm R22,Z+
0688 7691 elpm R23,Z
068A 6150 subi R22,1
068C 7040 sbci R23,0
068E .dbline 96
068E ; ex=newx[vertex]; // set line end x to vertex[i+1] x position
068E CE01 movw R24,R28
0690 4296 adiw R24,18
0692 FB01 movw R30,R22
0694 EE0F lsl R30
0696 FF1F rol R31
0698 E80F add R30,R24
069A F91F adc R31,R25
069C 2080 ldd R2,z+0
069E 3180 ldd R3,z+1
06A0 30920300 sts _ex+1,R3
06A4 20920200 sts _ex,R2
06A8 .dbline 97
06A8 ; ey=newy[vertex]; // set line end y to vertex[i+1] y position
06A8 CE01 movw R24,R28
06AA 805C subi R24,192 ; offset = 64
06AC 9F4F sbci R25,255
06AE FB01 movw R30,R22
06B0 EE0F lsl R30
06B2 FF1F rol R31
06B4 E80F add R30,R24
06B6 F91F adc R31,R25
06B8 2080 ldd R2,z+0
06BA 3180 ldd R3,z+1
06BC 30920100 sts _ey+1,R3
06C0 20920000 sts _ey,R2
06C4 .dbline 98
06C4 ; if(sx>255 | sy>255 | ex>255 | ey>255)
06C4 8FEF ldi R24,255
06C6 90E0 ldi R25,0
06C8 20900600 lds R2,_sx
06CC 30900700 lds R3,_sx+1
06D0 8215 cp R24,R2
06D2 9305 cpc R25,R3
06D4 1CF4 brge L19
06D6 X1:
06D6 41E0 ldi R20,1
06D8 50E0 ldi R21,0
06DA 02C0 xjmp L20
06DC L19:
06DC 4427 clr R20
06DE 5527 clr R21
06E0 L20:
06E0 8FEF ldi R24,255
06E2 90E0 ldi R25,0
06E4 20900400 lds R2,_sy
06E8 30900500 lds R3,_sy+1
06EC 8215 cp R24,R2
06EE 9305 cpc R25,R3
06F0 1CF4 brge L21
06F2 X2:
06F2 81E0 ldi R24,1
06F4 7C01 movw R14,R24
06F6 02C0 xjmp L22
06F8 L21:
06F8 EE24 clr R14
06FA FF24 clr R15
06FC L22:
06FC 8FEF ldi R24,255
06FE 90E0 ldi R25,0
0700 20900200 lds R2,_ex
0704 30900300 lds R3,_ex+1
0708 8215 cp R24,R2
070A 9305 cpc R25,R3
070C 1CF4 brge L23
070E X3:
070E 81E0 ldi R24,1
0710 6C01 movw R12,R24
0712 02C0 xjmp L24
0714 L23:
0714 CC24 clr R12
0716 DD24 clr R13
0718 L24:
0718 8FEF ldi R24,255
071A 90E0 ldi R25,0
071C 20900000 lds R2,_ey
0720 30900100 lds R3,_ey+1
0724 8215 cp R24,R2
0726 9305 cpc R25,R3
0728 1CF4 brge L25
072A X4:
072A 81E0 ldi R24,1
072C 5C01 movw R10,R24
072E 02C0 xjmp L26
0730 L25:
0730 AA24 clr R10
0732 BB24 clr R11
0734 L26:
0734 1A01 movw R2,R20
0736 2E28 or R2,R14
0738 3F28 or R3,R15
073A 2C28 or R2,R12
073C 3D28 or R3,R13
073E 2A28 or R2,R10
0740 3B28 or R3,R11
0742 2220 tst R2
0744 11F4 brne X5
0746 3320 tst R3
0748 91F0 breq L17
074A X5:
074A .dbline 99
074A ; {
074A .dbline 100
074A ; sx=255;
074A 8FEF ldi R24,255
074C 90E0 ldi R25,0
074E 90930700 sts _sx+1,R25
0752 80930600 sts _sx,R24
0756 .dbline 101
0756 ; sy=255;
0756 90930500 sts _sy+1,R25
075A 80930400 sts _sy,R24
075E .dbline 102
075E ; ex=255;
075E 90930300 sts _ex+1,R25
0762 80930200 sts _ex,R24
0766 .dbline 103
0766 ; ey=255;
0766 90930100 sts _ey+1,R25
076A 80930000 sts _ey,R24
076E .dbline 104
076E ; }
076E L17:
076E .dbline 105
076E ; DisplyLine(sx, sy, ex, ey, 1);
076E 81E0 ldi R24,1
0770 90E0 ldi R25,0
0772 9D83 std y+5,R25
0774 8C83 std y+4,R24
0776 20900000 lds R2,_ey
077A 30900100 lds R3,_ey+1
077E 3B82 std y+3,R3
0780 2A82 std y+2,R2
0782 20900200 lds R2,_ex
0786 30900300 lds R3,_ex+1
078A 3982 std y+1,R3
078C 2882 std y+0,R2
078E 20910400 lds R18,_sy
0792 30910500 lds R19,_sy+1
0796 00910600 lds R16,_sx
079A 10910700 lds R17,_sx+1
079E 4FD1 xcall _DisplyLine
07A0 .dbline 106
07A0 ; }
07A0 L14:
07A0 .dbline 90
07A0 FE01 movw R30,R28
07A2 EE56 subi R30,110 ; addi 146
07A4 FF4F sbci R31,255
07A6 8081 ldd R24,z+0
07A8 9181 ldd R25,z+1
07AA 0196 adiw R24,1
07AC FE01 movw R30,R28
07AE EE56 subi R30,110 ; addi 146
07B0 FF4F sbci R31,255
07B2 9183 std z+1,R25
07B4 8083 std z+0,R24
07B6 .dbline 90
07B6 8631 cpi R24,22
07B8 E0E0 ldi R30,0
07BA 9E07 cpc R25,R30
07BC 0CF4 brge X14
07BE 2ECF xjmp L13
07C0 X14:
07C0 X6:
07C0 .dbline 107
07C0 ; LcdDsiplayRefresh();
07C0 0E940000 xcall _LcdDsiplayRefresh
07C4 .dbline 108
07C4 ; GuiDisStringF3(0,7,"MEGA128 16MHz 128X64",1);
07C4 81E0 ldi R24,1
07C6 90E0 ldi R25,0
07C8 9B83 std y+3,R25
07CA 8A83 std y+2,R24
07CC 80E0 ldi R24,<L27
07CE 90E0 ldi R25,>L27
07D0 9983 std y+1,R25
07D2 8883 std y+0,R24
07D4 27E0 ldi R18,7
07D6 30E0 ldi R19,0
07D8 0027 clr R16
07DA 1127 clr R17
07DC 0E940000 xcall _GuiDisStringF3
07E0 .dbline 111
07E0 ; //Delayms(20); // delay for a while to allow looking at the cube
07E0 ; //ClrDisplyBuffer(); // clear the screen to remove old cube
07E0 ; for (i=0; i<22; i++)
07E0 0024 clr R0
07E2 1124 clr R1
07E4 FE01 movw R30,R28
07E6 EE56 subi R30,110 ; addi 146
07E8 FF4F sbci R31,255
07EA 1182 std z+1,R1
07EC 0082 std z+0,R0
07EE L28:
07EE .dbline 112
07EE ; {
07EE .dbline 113
07EE ; vertex=ff[i]-1;
07EE 80E0 ldi R24,<_ff
07F0 90E0 ldi R25,>_ff
07F2 DE01 movw R26,R28
07F4 AE56 subi R26,110 ; addi 146
07F6 BF4F sbci R27,255
07F8 ED91 ld R30,x+
07FA FC91 ld R31,x
07FC EE0F lsl R30
07FE FF1F rol R31
0800 E80F add R30,R24
0802 F91F adc R31,R25
0804 6791 elpm R22,Z+
0806 7691 elpm R23,Z
0808 6150 subi R22,1
080A 7040 sbci R23,0
080C .dbline 114
080C ; sx=newx[vertex];
080C CE01 movw R24,R28
080E 4296 adiw R24,18
0810 FB01 movw R30,R22
0812 EE0F lsl R30
0814 FF1F rol R31
0816 E80F add R30,R24
0818 F91F adc R31,R25
081A 2080 ldd R2,z+0
081C 3180 ldd R3,z+1
081E 30920700 sts _sx+1,R3
0822 20920600 sts _sx,R2
0826 .dbline 115
0826 ; sy=newy[vertex];
0826 CE01 movw R24,R28
0828 805C subi R24,192 ; offset = 64
082A 9F4F sbci R25,255
082C FB01 movw R30,R22
082E EE0F lsl R30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -