vectors08.lis

来自「基于HC908GP32的计算器完整程序」· LIS 代码 · 共 1,938 行 · 第 1/5 页

LIS
1,938
字号
 072E A620              lda #32
 0730 5500              ldhx *__r0
 0732 F7                sta ,x
 0733 95                tsx
 0734           L90:
 0734 3C52              inc *_i
 0736           L92:
 0736           ; for(i=t-s2;i<32;i++)n[i]=' ';
 0736 B652              lda *_i
 0738 A120              cmp #32
 073A 25E4              blo L89
 073C           ; t=t-s2-1;
 073C B621              lda *_t
 073E B051              sub *_s2
 0740 A001              sub #1
 0742 B721              sta *_t
 0744           ; }
 0744           L79:
 0744           ; if(t==0)break;
 0744 B621              lda *_t
 0746 2603              bne L93
 0748 CC0B4B            jmp L59
 074B           L93:
 074B           ; else n[t++]='+';
 074B 3F00              clr *__r0
 074D B621              lda *_t
 074F B700              sta *__r1
 0751 5500              ldhx *__r0
 0753 AF01              aix #1
 0755 3500              sthx *__r2
 0757 4E0021            mov *__r3,*_t
 075A AB00              add #<_n
 075C B700              sta *__r1
 075E B600              lda *__r0
 0760 A900              adc #>_n
 0762 B700              sta *__r0
 0764 A62B              lda #43
 0766 5500              ldhx *__r0
 0768 F7                sta ,x
 0769 95                tsx
 076A           ; s1=0;break;
 076A 3F20              clr *_s1
 076C CC0B4B            jmp L59
 076F           L95:
 076F           ; case '-':if(s1==1)
 076F B620              lda *_s1
 0771 A101              cmp #1
 0773 2703              beq X15
 0775 CC080D            jmp L96
 0778           X15:
 0778           ; {
 0778           ; s2=0;
 0778 3F51              clr *_s2
 077A 2002              bra L99
 077C           L98:
 077C 3C51              inc *_s2
 077E           L99:
 077E           ; while(n[s2]!='=')s2++;
 077E 3F00              clr *__r0
 0780 B651              lda *_s2
 0782 AB00              add #<_n
 0784 B700              sta *__r1
 0786 B600              lda *__r0
 0788 A900              adc #>_n
 078A B700              sta *__r0
 078C 5500              ldhx *__r0
 078E F6                lda ,x
 078F 95                tsx
 0790 A13D              cmp #61
 0792 26E8              bne L98
 0794 3F52              clr *_i
 0796 203B              bra L104
 0798           L101:
 0798 3F00              clr *__r0
 079A B651              lda *_s2
 079C B700              sta *__r1
 079E 3F00              clr *__r2
 07A0 B652              lda *_i
 07A2 BB00              add *__r1
 07A4 B700              sta *__r1
 07A6 B600              lda *__r2
 07A8 B900              adc *__r0
 07AA B700              sta *__r0
 07AC B600              lda *__r1
 07AE AB01              add #<_n+1
 07B0 B700              sta *__r1
 07B2 B600              lda *__r0
 07B4 A901              adc #>_n+1
 07B6 B700              sta *__r0
 07B8 5500              ldhx *__r0
 07BA F6                lda ,x
 07BB B700              sta *__r1
 07BD 3F00              clr *__r2
 07BF B652              lda *_i
 07C1 AB00              add #<_n
 07C3 B700              sta *__r3
 07C5 B600              lda *__r2
 07C7 A900              adc #>_n
 07C9 B700              sta *__r2
 07CB B600              lda *__r1
 07CD 5500              ldhx *__r2
 07CF F7                sta ,x
 07D0 95                tsx
 07D1           L102:
 07D1 3C52              inc *_i
 07D3           L104:
 07D3           ; for(i=0;i<t-s2;i++)n[i]=n[i+s2+1];
 07D3 B621              lda *_t
 07D5 B051              sub *_s2
 07D7 B700              sta *__r0
 07D9 B652              lda *_i
 07DB B100              cmp *__r0
 07DD 25B9              blo L101
 07DF B621              lda *_t
 07E1 B051              sub *_s2
 07E3 B752              sta *_i
 07E5 2016              bra L109
 07E7           L106:
 07E7 3F00              clr *__r0
 07E9 B652              lda *_i
 07EB AB00              add #<_n
 07ED B700              sta *__r1
 07EF B600              lda *__r0
 07F1 A900              adc #>_n
 07F3 B700              sta *__r0
 07F5 A620              lda #32
 07F7 5500              ldhx *__r0
 07F9 F7                sta ,x
 07FA 95                tsx
 07FB           L107:
 07FB 3C52              inc *_i
 07FD           L109:
 07FD           ; for(i=t-s2;i<32;i++)n[i]=' ';
 07FD B652              lda *_i
 07FF A120              cmp #32
 0801 25E4              blo L106
 0803           ; t=t-s2-1;
 0803 B621              lda *_t
 0805 B051              sub *_s2
 0807 A001              sub #1
 0809 B721              sta *_t
 080B           ; }
 080B 201F              bra L97
 080D           L96:
 080D           ; else n[t++]='-';
 080D 3F00              clr *__r0
 080F B621              lda *_t
 0811 B700              sta *__r1
 0813 5500              ldhx *__r0
 0815 AF01              aix #1
 0817 3500              sthx *__r2
 0819 4E0021            mov *__r3,*_t
 081C AB00              add #<_n
 081E B700              sta *__r1
 0820 B600              lda *__r0
 0822 A900              adc #>_n
 0824 B700              sta *__r0
 0826 A62D              lda #45
 0828 5500              ldhx *__r0
 082A F7                sta ,x
 082B 95                tsx
 082C           L97:
 082C           ; s1=0;break;
 082C 3F20              clr *_s1
 082E CC0B4B            jmp L59
 0831           L110:
 0831           ; case '*':if(s1==1)
 0831 B620              lda *_s1
 0833 A101              cmp #1
 0835 2703              beq X16
 0837 CC08CD            jmp L111
 083A           X16:
 083A           ; {
 083A           ; s2=0;
 083A 3F51              clr *_s2
 083C 2002              bra L114
 083E           L113:
 083E 3C51              inc *_s2
 0840           L114:
 0840           ; while(n[s2]!='=')s2++;
 0840 3F00              clr *__r0
 0842 B651              lda *_s2
 0844 AB00              add #<_n
 0846 B700              sta *__r1
 0848 B600              lda *__r0
 084A A900              adc #>_n
 084C B700              sta *__r0
 084E 5500              ldhx *__r0
 0850 F6                lda ,x
 0851 95                tsx
 0852 A13D              cmp #61
 0854 26E8              bne L113
 0856 3F52              clr *_i
 0858 203B              bra L119
 085A           L116:
 085A 3F00              clr *__r0
 085C B651              lda *_s2
 085E B700              sta *__r1
 0860 3F00              clr *__r2
 0862 B652              lda *_i
 0864 BB00              add *__r1
 0866 B700              sta *__r1
 0868 B600              lda *__r2
 086A B900              adc *__r0
 086C B700              sta *__r0
 086E B600              lda *__r1
 0870 AB01              add #<_n+1
 0872 B700              sta *__r1
 0874 B600              lda *__r0
 0876 A901              adc #>_n+1
 0878 B700              sta *__r0
 087A 5500              ldhx *__r0
 087C F6                lda ,x
 087D B700              sta *__r1
 087F 3F00              clr *__r2
 0881 B652              lda *_i
 0883 AB00              add #<_n
 0885 B700              sta *__r3
 0887 B600              lda *__r2
 0889 A900              adc #>_n
 088B B700              sta *__r2
 088D B600              lda *__r1
 088F 5500              ldhx *__r2
 0891 F7                sta ,x
 0892 95                tsx
 0893           L117:
 0893 3C52              inc *_i
 0895           L119:
 0895           ; for(i=0;i<t-s2;i++)n[i]=n[i+s2+1];
 0895 B621              lda *_t
 0897 B051              sub *_s2
 0899 B700              sta *__r0
 089B B652              lda *_i
 089D B100              cmp *__r0
 089F 25B9              blo L116
 08A1 B621              lda *_t
 08A3 B051              sub *_s2
 08A5 B752              sta *_i
 08A7 2016              bra L124
 08A9           L121:
 08A9 3F00              clr *__r0
 08AB B652              lda *_i
 08AD AB00              add #<_n
 08AF B700              sta *__r1
 08B1 B600              lda *__r0
 08B3 A900              adc #>_n
 08B5 B700              sta *__r0
 08B7 A620              lda #32
 08B9 5500              ldhx *__r0
 08BB F7                sta ,x
 08BC 95                tsx
 08BD           L122:
 08BD 3C52              inc *_i
 08BF           L124:
 08BF           ; for(i=t-s2;i<32;i++)n[i]=' ';
 08BF B652              lda *_i
 08C1 A120              cmp #32
 08C3 25E4              blo L121
 08C5           ; t=t-s2-1;
 08C5 B621              lda *_t
 08C7 B051              sub *_s2
 08C9 A001              sub #1
 08CB B721              sta *_t
 08CD           ; }
 08CD           L111:
 08CD           ; if(t==0)break;
 08CD B621              lda *_t
 08CF 2603              bne L125
 08D1 CC0B4B            jmp L59
 08D4           L125:
 08D4           ; else n[t++]='*';
 08D4 3F00              clr *__r0
 08D6 B621              lda *_t
 08D8 B700              sta *__r1
 08DA 5500              ldhx *__r0
 08DC AF01              aix #1
 08DE 3500              sthx *__r2
 08E0 4E0021            mov *__r3,*_t
 08E3 AB00              add #<_n
 08E5 B700              sta *__r1
 08E7 B600              lda *__r0
 08E9 A900              adc #>_n
 08EB B700              sta *__r0
 08ED A62A              lda #42
 08EF 5500              ldhx *__r0
 08F1 F7                sta ,x
 08F2 95                tsx
 08F3           ; s1=0;break; 
 08F3 3F20              clr *_s1
 08F5 CC0B4B            jmp L59
 08F8           L127:
 08F8           ; case '/':if(s1==1)
 08F8 B620              lda *_s1
 08FA A101              cmp #1
 08FC 2703              beq X17
 08FE CC0994            jmp L128
 0901           X17:
 0901           ;  {
 0901           ; s2=0;
 0901 3F51              clr *_s2
 0903 2002              bra L131
 0905           L130:
 0905 3C51              inc *_s2
 0907           L131:
 0907           ; while(n[s2]!='=')s2++;
 0907 3F00              clr *__r0
 0909 B651              lda *_s2
 090B AB00              add #<_n
 090D B700              sta *__r1
 090F B600              lda *__r0
 0911 A900              adc #>_n
 0913 B700              sta *__r0
 0915 5500              ldhx *__r0
 0917 F6                lda ,x
 0918 95                tsx
 0919 A13D              cmp #61
 091B 26E8              bne L130
 091D 3F52              clr *_i
 091F 203B              bra L136
 0921           L133:
 0921 3F00              clr *__r0
 0923 B651              lda *_s2
 0925 B700              sta *__r1
 0927 3F00              clr *__r2
 0929 B652              lda *_i
 092B BB00              add *__r1
 092D B700              sta *__r1
 092F B600              lda *__r2
 0931 B900              adc *__r0
 0933 B700              sta *__r0
 0935 B600              lda *__r1
 0937 AB01              add #<_n+1
 0939 B700              sta *__r1
 093B B600              lda *__r0
 093D A901              adc #>_n+1
 093F B700              sta *__r0
 0941 5500              ldhx *__r0
 0943 F6                lda ,x
 0944 B700              sta *__r1
 0946 3F00              clr *__r2
 0948 B652              lda *_i
 094A AB00              add #<_n
 094C B700              sta *__r3
 094E B600              lda *__r2
 0950 A900              adc #>_n
 0952 B700              sta *__r2
 0954 B600              lda *__r1
 0956 5500              ldhx *__r2
 0958 F7                sta ,x
 0959 95                tsx
 095A           L134:
 095A 3C52              inc *_i
 095C           L136:
 095C           ; for(i=0;i<t-s2;i++)n[i]=n[i+s2+1];
 095C B621              lda *_t
 095E B051              sub *_s2
 0960 B700              sta *__r0
 0962 B652              lda *_i
 0964 B100              cmp *__r0
 0966 25B9              blo L133
 0968 B621              lda *_t
 096A B051              sub *_s2
 096C B752              sta *_i
 096E 2016              bra L141
 0970           L138:
 0970 3F00              clr *__r0
 0972 B652              lda *_i
 0974 AB00              add #<_n
 0976 B700              sta *__r1
 0978 B600              lda *__r0
 097A A900              adc #>_n
 097C B700              sta *__r0
 097E A620              lda #32
 0980 5500              ldhx *__r0
 0982 F7                sta ,x
 0983 95                tsx
 0984           L139:
 0984 3C52              inc *_i
 0986           L141:
 0986           ; for(i=t-s2;i<32;i++)n[i]=' ';
 0986 B652              lda *_i
 0988 A120              cmp #32
 098A 25E4              blo L138
 098C           ; t=t-s2-1;
 098C B621              lda *_t
 098E B051              sub *_s2
 0990 A001              sub #1
 0992 B721              sta *_t

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?