vectors08.lis

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

LIS
1,938
字号
 0994           ; }
 0994           L128:
 0994           ; if(t==0)break;
 0994 B621              lda *_t
 0996 2603              bne L142
 0998 CC0B4B            jmp L59
 099B           L142:
 099B           ; else n[t++]='/';
 099B 3F00              clr *__r0
 099D B621              lda *_t
 099F B700              sta *__r1
 09A1 5500              ldhx *__r0
 09A3 AF01              aix #1
 09A5 3500              sthx *__r2
 09A7 4E0021            mov *__r3,*_t
 09AA AB00              add #<_n
 09AC B700              sta *__r1
 09AE B600              lda *__r0
 09B0 A900              adc #>_n
 09B2 B700              sta *__r0
 09B4 A62F              lda #47
 09B6 5500              ldhx *__r0
 09B8 F7                sta ,x
 09B9 95                tsx
 09BA           ; s1=0;break; 
 09BA 3F20              clr *_s1
 09BC CC0B4B            jmp L59
 09BF           L144:
 09BF           ; case '=':
 09BF           ; n[t++]='=';
 09BF 3F00              clr *__r0
 09C1 B621              lda *_t
 09C3 B700              sta *__r1
 09C5 5500              ldhx *__r0
 09C7 AF01              aix #1
 09C9 3500              sthx *__r2
 09CB 4E0021            mov *__r3,*_t
 09CE AB00              add #<_n
 09D0 B700              sta *__r1
 09D2 B600              lda *__r0
 09D4 A900              adc #>_n
 09D6 B700              sta *__r0
 09D8 A63D              lda #61
 09DA 5500              ldhx *__r0
 09DC F7                sta ,x
 09DD 95                tsx
 09DE           ; for(i=0;i<t;i++)
 09DE 3F52              clr *_i
 09E0 2029              bra L148
 09E2           L145:
 09E2 3F00              clr *__r0
 09E4 B652              lda *_i
 09E6 AB00              add #<_n
 09E8 B700              sta *__r1
 09EA B600              lda *__r0
 09EC A900              adc #>_n
 09EE B700              sta *__r0
 09F0 5500              ldhx *__r0
 09F2 F6                lda ,x
 09F3 B700              sta *__r1
 09F5 3F00              clr *__r2
 09F7 B652              lda *_i
 09F9 AB74              add #<_m
 09FB B700              sta *__r3
 09FD B600              lda *__r2
 09FF A974              adc #>_m
 0A01 B700              sta *__r2
 0A03 B600              lda *__r1
 0A05 5500              ldhx *__r2
 0A07 F7                sta ,x
 0A08 95                tsx
 0A09           L146:
 0A09 3C52              inc *_i
 0A0B           L148:
 0A0B B652              lda *_i
 0A0D B121              cmp *_t
 0A0F 25D1              blo L145
 0A11           ; m[i]=n[i];
 0A11           ; mm=result(m);
 0A11 450074            ldhx #_m
 0A14 89                pshx
 0A15 8B                pshh
 0A16 CD0000            jsr _result
 0A19 A702              ais #2
 0A1B 95                tsx
 0A1C 4E004D            mov *__r0,*_mm
 0A1F 4E004E            mov *__r1,*_mm+1
 0A22           ; if(t<17)
 0A22 B621              lda *_t
 0A24 A111              cmp #17
 0A26 241C              bhs L149
 0A28           ; {n[t-1]=' ';n[16]='=';t=17;}
 0A28 3F00              clr *__r0
 0A2A B621              lda *_t
 0A2C ABFF              add #<_n-1
 0A2E B700              sta *__r1
 0A30 B600              lda *__r0
 0A32 A9FF              adc #>_n-1
 0A34 B700              sta *__r0
 0A36 A620              lda #32
 0A38 5500              ldhx *__r0
 0A3A F7                sta ,x
 0A3B 95                tsx
 0A3C A63D              lda #61
 0A3E B710              sta *_n+16
 0A40 A611              lda #17
 0A42 B721              sta *_t
 0A44           L149:
 0A44           ; if(mm<0)
 0A44 554D              ldhx *_mm
 0A46 650000            cphx #0
 0A49 95                tsx
 0A4A 9029              bge L153
 0A4C           ;  {
 0A4C           ; n[t++]='-';
 0A4C 3F00              clr *__r0
 0A4E B621              lda *_t
 0A50 B700              sta *__r1
 0A52 5500              ldhx *__r0
 0A54 AF01              aix #1
 0A56 3500              sthx *__r2
 0A58 4E0021            mov *__r3,*_t
 0A5B AB00              add #<_n
 0A5D B700              sta *__r1
 0A5F B600              lda *__r0
 0A61 A900              adc #>_n
 0A63 B700              sta *__r0
 0A65 A62D              lda #45
 0A67 5500              ldhx *__r0
 0A69 F7                sta ,x
 0A6A 95                tsx
 0A6B           ; mm=0-mm; 
 0A6B 4F                clra
 0A6C B04E              sub *_mm+1
 0A6E B74E              sta *_mm+1
 0A70 4F                clra
 0A71 B24D              sbc *_mm
 0A73 B74D              sta *_mm
 0A75           ;  }
 0A75           L153:
 0A75           ;  t1=0;
 0A75 3F4F              clr *_t1
 0A77           ;  if(mm==0)n[t++]='0';
 0A77 554D              ldhx *_mm
 0A79 650000            cphx #0
 0A7C 95                tsx
 0A7D 2703              beq X18
 0A7F CC0AFF            jmp L158
 0A82           X18:
 0A82 3F00              clr *__r0
 0A84 B621              lda *_t
 0A86 B700              sta *__r1
 0A88 5500              ldhx *__r0
 0A8A AF01              aix #1
 0A8C 3500              sthx *__r2
 0A8E 4E0021            mov *__r3,*_t
 0A91 AB00              add #<_n
 0A93 B700              sta *__r1
 0A95 B600              lda *__r0
 0A97 A900              adc #>_n
 0A99 B700              sta *__r0
 0A9B A630              lda #48
 0A9D 5500              ldhx *__r0
 0A9F F7                sta ,x
 0AA0 95                tsx
 0AA1 CC0B47            jmp L156
 0AA4           X10:
 0AA4           ;  else
 0AA4           ;  {
 0AA4           L157:
 0AA4 3F00              clr *__r0
 0AA6 B64F              lda *_t1
 0AA8 B700              sta *__r1
 0AAA 5500              ldhx *__r0
 0AAC AF01              aix #1
 0AAE 3500              sthx *__r2
 0AB0 4E004F            mov *__r3,*_t1
 0AB3 B64E              lda *_mm+1
 0AB5 B700              sta *__rlo
 0AB7 B64D              lda *_mm
 0AB9 B700              sta *__rhi
 0ABB A60A              lda #10
 0ABD 87                psha
 0ABE 4F                clra
 0ABF 87                psha
 0AC0 CD0000            jsr __divmod16s
 0AC3 86                pula
 0AC4 B700              sta *__r2
 0AC6 86                pula
 0AC7 B700              sta *__r3
 0AC9 5500              ldhx *__r2
 0ACB AF30              aix #48
 0ACD 3500              sthx *__r2
 0ACF B600              lda *__r1
 0AD1 AB54              add #<_mn
 0AD3 B700              sta *__r1
 0AD5 B600              lda *__r0
 0AD7 A954              adc #>_mn
 0AD9 B700              sta *__r0
 0ADB B600              lda *__r3
 0ADD 5500              ldhx *__r0
 0ADF F7                sta ,x
 0AE0 95                tsx
 0AE1 B64E              lda *_mm+1
 0AE3 B700              sta *__rlo
 0AE5 B64D              lda *_mm
 0AE7 B700              sta *__rhi
 0AE9 A60A              lda #10
 0AEB 87                psha
 0AEC 4F                clra
 0AED 87                psha
 0AEE CD0000            jsr __divmod16s
 0AF1 A702              ais #2
 0AF3 4E0000            mov *__rhi,*__r0
 0AF6 4E0000            mov *__rlo,*__r1
 0AF9 4E004D            mov *__r0,*_mm
 0AFC 4E004E            mov *__r1,*_mm+1
 0AFF           L158:
 0AFF           ; while(mm)
 0AFF 554D              ldhx *_mm
 0B01 650000            cphx #0
 0B04 95                tsx
 0B05 269D              bne L157
 0B07 2038              bra L161
 0B09           L160:
 0B09 3F00              clr *__r0
 0B0B B621              lda *_t
 0B0D B700              sta *__r1
 0B0F 5500              ldhx *__r0
 0B11 AF01              aix #1
 0B13 3500              sthx *__r2
 0B15 4E0021            mov *__r3,*_t
 0B18 B64F              lda *_t1
 0B1A A001              sub #1
 0B1C B74F              sta *_t1
 0B1E 3F00              clr *__r2
 0B20 AB54              add #<_mn
 0B22 B700              sta *__r3
 0B24 B600              lda *__r2
 0B26 A954              adc #>_mn
 0B28 B700              sta *__r2
 0B2A 5500              ldhx *__r2
 0B2C F6                lda ,x
 0B2D B700              sta *__r3
 0B2F B600              lda *__r1
 0B31 AB00              add #<_n
 0B33 B700              sta *__r1
 0B35 B600              lda *__r0
 0B37 A900              adc #>_n
 0B39 B700              sta *__r0
 0B3B B600              lda *__r3
 0B3D 5500              ldhx *__r0
 0B3F F7                sta ,x
 0B40 95                tsx
 0B41           L161:
 0B41           ; {
 0B41           ; mn[t1++]=mm%10+'0';
 0B41           ; mm=mm/10;
 0B41           ; }
 0B41           ; while(t1>0)n[t++]=mn[--t1];}
 0B41 B64F              lda *_t1
 0B43 A100              cmp #0
 0B45 22C2              bhi L160
 0B47           L156:
 0B47           ; s1=1;break;
 0B47 A601              lda #1
 0B49 B720              sta *_s1
 0B4B           L58:
 0B4B           L59:
 0B4B           ;  }
 0B4B           ; Lcd_Command(0b00001100);
 0B4B A60C              lda #12
 0B4D 87                psha
 0B4E CD0000            jsr _Lcd_Command
 0B51 A701              ais #1
 0B53           ; lcdshow(n);
 0B53 450000            ldhx #_n
 0B56 89                pshx
 0B57 8B                pshh
 0B58 CD0000            jsr _lcdshow
 0B5B A702              ais #2
 0B5D 95                tsx
 0B5E           ; if(t>32)
 0B5E B621              lda *_t
 0B60 A120              cmp #32
 0B62 2335              bls L164
 0B64           ;  {
 0B64 3F52              clr *_i
 0B66 2016              bra L169
 0B68           L166:
 0B68 3F00              clr *__r0
 0B6A B652              lda *_i
 0B6C AB00              add #<_n
 0B6E B700              sta *__r1
 0B70 B600              lda *__r0
 0B72 A900              adc #>_n
 0B74 B700              sta *__r0
 0B76 A620              lda #32
 0B78 5500              ldhx *__r0
 0B7A F7                sta ,x
 0B7B 95                tsx
 0B7C           L167:
 0B7C 3C52              inc *_i
 0B7E           L169:
 0B7E           ; for(i=0;i<32;i++)n[i]=' ';
 0B7E B652              lda *_i
 0B80 A120              cmp #32
 0B82 25E4              blo L166
 0B84           ; lcdshow(n);
 0B84 450000            ldhx #_n
 0B87 89                pshx
 0B88 8B                pshh
 0B89 CD0000            jsr _lcdshow
 0B8C A702              ais #2
 0B8E           ; t=t%32;
 0B8E B621              lda *_t
 0B90 AE20              ldx #32
 0B92 8C                clrh
 0B93 52                div
 0B94 8B                pshh
 0B95 86                pula
 0B96 95                tsx
 0B97 B721              sta *_t
 0B99           ;  }
 0B99           L164:
 0B99           ; if(s1==2)
 0B99 B620              lda *_s1
 0B9B A102              cmp #2
 0B9D 260D              bne L170
 0B9F           ;  {
 0B9F           ; lcdshow(n);
 0B9F 450000            ldhx #_n
 0BA2 89                pshx
 0BA3 8B                pshh
 0BA4 CD0000            jsr _lcdshow
 0BA7 A702              ais #2
 0BA9 95                tsx
 0BAA           ; s1=0;
 0BAA 3F20              clr *_s1
 0BAC           ;  }
 0BAC           L170:
 0BAC           ;  }
 0BAC           L56:
 0BAC           ; 	  KB_Init();			     //重新初始化键盘
 0BAC CD0000            jsr _KB_Init
 0BAF 95                tsx
 0BB0           ;         INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
 0BB0 131A              bclr #1,0x1a
 0BB2           ;        asm("CLI");                         //开总中断
 0BB2 9A                CLI
 0BB3           L55:
 0BB3 A703              ais #3
 0BB5                   .dbline 0 ; func end
 0BB5 86                pula
 0BB6 B700              sta *__rlo
 0BB8 86                pula
 0BB9 B700              sta *__rhi
 0BBB 86                pula
 0BBC B700              sta *__r11
 0BBE 86                pula
 0BBF B700              sta *__r10
 0BC1 86                pula
 0BC2 B700              sta *__r9
 0BC4 86                pula
 0BC5 B700              sta *__r8
 0BC7 86                pula
 0BC8 B700              sta *__r7
 0BCA 86                pula
 0BCB B700              sta *__r6
 0BCD 86                pula
 0BCE B700              sta *__r5
 0BD0 86                pula
 0BD1 B700              sta *__r4
 0BD3 86                pula
 0BD4 B700              sta *__r3
 0BD6 86                pula
 0BD7 B700              sta *__r2
 0BD9 86                pula
 0BDA B700              sta *__r1
 0BDC 86                pula
 0BDD B700              sta *__r0
 0BDF 8A                pulh
 0BE0 80                rti
 0BE1           _isrDummy::
 0BE1 8B                pshh
 0BE2   

⌨️ 快捷键说明

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