⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vectors08.lis

📁 基于HC908GP32的计算器完整程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 023D 87                psha
 023E B600              lda *__r3
 0240 87                psha
 0241 B600              lda *__r2
 0243 87                psha
 0244 CD0000            jsr __mul16
 0247 A704              ais #4
 0249 4E0000            mov *__rlo,*__r3
 024C 4E0000            mov *__rhi,*__r2
 024F B600              lda *__r2
 0251 5500              ldhx *__r0
 0253 F7                sta ,x
 0254 B600              lda *__r3
 0256 E701              sta 1,x
 0258 3F00              clr *__r0
 025A B643              lda *_i8
 025C B700              sta *__r1
 025E 3800              lsl *__r1
 0260 3900              rol *__r0
 0262 B600              lda *__r1
 0264 AB02              add #<_r
 0266 B700              sta *__r1
 0268 B600              lda *__r0
 026A A902              adc #>_r
 026C B700              sta *__r0
 026E 4F                clra
 026F 5500              ldhx *__r0
 0271 F7                sta ,x
 0272 4F                clra
 0273 E701              sta 1,x
 0275 95                tsx
 0276           ; if(i8>0&&sign1[i8-1]=='-')sign1[i8]='-';
 0276 B643              lda *_i8
 0278 A100              cmp #0
 027A 232C              bls L39
 027C 3F00              clr *__r0
 027E B643              lda *_i8
 0280 AB31              add #<_sign1-1
 0282 B700              sta *__r1
 0284 B600              lda *__r0
 0286 A931              adc #>_sign1-1
 0288 B700              sta *__r0
 028A 5500              ldhx *__r0
 028C F6                lda ,x
 028D 95                tsx
 028E A12D              cmp #45
 0290 2616              bne L39
 0292 3F00              clr *__r0
 0294 B643              lda *_i8
 0296 AB32              add #<_sign1
 0298 B700              sta *__r1
 029A B600              lda *__r0
 029C A932              adc #>_sign1
 029E B700              sta *__r0
 02A0 A62D              lda #45
 02A2 5500              ldhx *__r0
 02A4 F7                sta ,x
 02A5 95                tsx
 02A6 2014              bra L40
 02A8           L39:
 02A8 3F00              clr *__r0
 02AA B643              lda *_i8
 02AC AB32              add #<_sign1
 02AE B700              sta *__r1
 02B0 B600              lda *__r0
 02B2 A932              adc #>_sign1
 02B4 B700              sta *__r0
 02B6 A62B              lda #43
 02B8 5500              ldhx *__r0
 02BA F7                sta ,x
 02BB 95                tsx
 02BC           L40:
 02BC           ; else sign1[i8]='+';}
 02BC           L37:
 02BC           ; if(sign1[i8]=='/')
 02BC 3F00              clr *__r0
 02BE B643              lda *_i8
 02C0 AB32              add #<_sign1
 02C2 B700              sta *__r1
 02C4 B600              lda *__r0
 02C6 A932              adc #>_sign1
 02C8 B700              sta *__r0
 02CA 5500              ldhx *__r0
 02CC F6                lda ,x
 02CD 95                tsx
 02CE A12F              cmp #47
 02D0 2703              beq X6
 02D2 CC039D            jmp L42
 02D5           X6:
 02D5           ; {r[i8+1]=r[i8]/r[i8+1];r[i8]=0;
 02D5 3F00              clr *__r0
 02D7 B643              lda *_i8
 02D9 B700              sta *__r1
 02DB 5500              ldhx *__r0
 02DD AF01              aix #1
 02DF 3500              sthx *__r0
 02E1 3800              lsl *__r1
 02E3 3900              rol *__r0
 02E5 B600              lda *__r1
 02E7 AB02              add #<_r
 02E9 B700              sta *__r1
 02EB B600              lda *__r0
 02ED A902              adc #>_r
 02EF B700              sta *__r0
 02F1 5500              ldhx *__r0
 02F3 E601              lda 1,x
 02F5 B700              sta *__r3
 02F7 F6                lda ,x
 02F8 B700              sta *__r2
 02FA 3F00              clr *__r4
 02FC B643              lda *_i8
 02FE B700              sta *__r5
 0300 3800              lsl *__r5
 0302 3900              rol *__r4
 0304 B600              lda *__r5
 0306 AB02              add #<_r
 0308 B700              sta *__r5
 030A B600              lda *__r4
 030C A902              adc #>_r
 030E B700              sta *__r4
 0310 5500              ldhx *__r4
 0312 E601              lda 1,x
 0314 B700              sta *__r5
 0316 F6                lda ,x
 0317 B700              sta *__r4
 0319 4E0000            mov *__r5,*__rlo
 031C 4E0000            mov *__r4,*__rhi
 031F B600              lda *__r3
 0321 87                psha
 0322 B600              lda *__r2
 0324 87                psha
 0325 CD0000            jsr __divmod16s
 0328 A702              ais #2
 032A 4E0000            mov *__rhi,*__r2
 032D 4E0000            mov *__rlo,*__r3
 0330 B600              lda *__r2
 0332 5500              ldhx *__r0
 0334 F7                sta ,x
 0335 B600              lda *__r3
 0337 E701              sta 1,x
 0339 3F00              clr *__r0
 033B B643              lda *_i8
 033D B700              sta *__r1
 033F 3800              lsl *__r1
 0341 3900              rol *__r0
 0343 B600              lda *__r1
 0345 AB02              add #<_r
 0347 B700              sta *__r1
 0349 B600              lda *__r0
 034B A902              adc #>_r
 034D B700              sta *__r0
 034F 4F                clra
 0350 5500              ldhx *__r0
 0352 F7                sta ,x
 0353 4F                clra
 0354 E701              sta 1,x
 0356 95                tsx
 0357           ; if(i8>0&&sign1[i8-1]=='-')sign1[i8]='-';
 0357 B643              lda *_i8
 0359 A100              cmp #0
 035B 232C              bls L44
 035D 3F00              clr *__r0
 035F B643              lda *_i8
 0361 AB31              add #<_sign1-1
 0363 B700              sta *__r1
 0365 B600              lda *__r0
 0367 A931              adc #>_sign1-1
 0369 B700              sta *__r0
 036B 5500              ldhx *__r0
 036D F6                lda ,x
 036E 95                tsx
 036F A12D              cmp #45
 0371 2616              bne L44
 0373 3F00              clr *__r0
 0375 B643              lda *_i8
 0377 AB32              add #<_sign1
 0379 B700              sta *__r1
 037B B600              lda *__r0
 037D A932              adc #>_sign1
 037F B700              sta *__r0
 0381 A62D              lda #45
 0383 5500              ldhx *__r0
 0385 F7                sta ,x
 0386 95                tsx
 0387 2014              bra L45
 0389           L44:
 0389 3F00              clr *__r0
 038B B643              lda *_i8
 038D AB32              add #<_sign1
 038F B700              sta *__r1
 0391 B600              lda *__r0
 0393 A932              adc #>_sign1
 0395 B700              sta *__r0
 0397 A62B              lda #43
 0399 5500              ldhx *__r0
 039B F7                sta ,x
 039C 95                tsx
 039D           L45:
 039D           L42:
 039D           L34:
 039D 3C43              inc *_i8
 039F           L36:
 039F B647              lda *_i42
 03A1 A001              sub #1
 03A3 B700              sta *__r0
 03A5 B643              lda *_i8
 03A7 B100              cmp *__r0
 03A9 2403              bhs X7
 03AB CC01DB            jmp L33
 03AE           X7:
 03AE           ; else sign1[i8]='+';}}
 03AE           ; res=r[0];
 03AE 4E0200            mov *_r,*_res
 03B1 4E0301            mov *_r+1,*_res+1
 03B4           ; for(i9=0;i9<i42-1;i9++)
 03B4 3F42              clr *_i9
 03B6 CC044B            jmp L50
 03B9           L47:
 03B9           ; {
 03B9           ; if(sign1[i9]=='+')res=res+r[i9+1];
 03B9 3F00              clr *__r0
 03BB B642              lda *_i9
 03BD AB32              add #<_sign1
 03BF B700              sta *__r1
 03C1 B600              lda *__r0
 03C3 A932              adc #>_sign1
 03C5 B700              sta *__r0
 03C7 5500              ldhx *__r0
 03C9 F6                lda ,x
 03CA 95                tsx
 03CB A12B              cmp #43
 03CD 2632              bne L51
 03CF 3F00              clr *__r0
 03D1 B642              lda *_i9
 03D3 B700              sta *__r1
 03D5 5500              ldhx *__r0
 03D7 AF01              aix #1
 03D9 3500              sthx *__r0
 03DB 3800              lsl *__r1
 03DD 3900              rol *__r0
 03DF B600              lda *__r1
 03E1 AB02              add #<_r
 03E3 B700              sta *__r1
 03E5 B600              lda *__r0
 03E7 A902              adc #>_r
 03E9 B700              sta *__r0
 03EB 5500              ldhx *__r0
 03ED E601              lda 1,x
 03EF B700              sta *__r1
 03F1 F6                lda ,x
 03F2 95                tsx
 03F3 B700              sta *__r0
 03F5 B601              lda *_res+1
 03F7 BB00              add *__r1
 03F9 B701              sta *_res+1
 03FB B600              lda *_res
 03FD B900              adc *__r0
 03FF B700              sta *_res
 0401           L51:
 0401           ; if(sign1[i9]=='-')res=res-r[i9+1];
 0401 3F00              clr *__r0
 0403 B642              lda *_i9
 0405 AB32              add #<_sign1
 0407 B700              sta *__r1
 0409 B600              lda *__r0
 040B A932              adc #>_sign1
 040D B700              sta *__r0
 040F 5500              ldhx *__r0
 0411 F6                lda ,x
 0412 95                tsx
 0413 A12D              cmp #45
 0415 2632              bne L53
 0417 3F00              clr *__r0
 0419 B642              lda *_i9
 041B B700              sta *__r1
 041D 5500              ldhx *__r0
 041F AF01              aix #1
 0421 3500              sthx *__r0
 0423 3800              lsl *__r1
 0425 3900              rol *__r0
 0427 B600              lda *__r1
 0429 AB02              add #<_r
 042B B700              sta *__r1
 042D B600              lda *__r0
 042F A902              adc #>_r
 0431 B700              sta *__r0
 0433 5500              ldhx *__r0
 0435 E601              lda 1,x
 0437 B700              sta *__r1
 0439 F6                lda ,x
 043A 95                tsx
 043B B700              sta *__r0
 043D B601              lda *_res+1
 043F B000              sub *__r1
 0441 B701              sta *_res+1
 0443 B600              lda *_res
 0445 B200              sbc *__r0
 0447 B700              sta *_res
 0449           L53:
 0449           L48:
 0449 3C42              inc *_i9
 044B           L50:
 044B B647              lda *_i42
 044D A001              sub #1
 044F B700              sta *__r0
 0451 B642              lda *_i9
 0453 B100              cmp *__r0
 0455 2403              bhs X8
 0457 CC03B9            jmp L47
 045A           X8:
 045A           ; }
 045A           ; return res;
 045A B601              lda *_res+1
 045C B700              sta *__r1
 045E B600              lda *_res
 0460 B700              sta *__r0
 0462           L1:
 0462                   .dbline 0 ; func end
 0462 81                rts
                        .area func_lit
 0000           L163:
 0000 0831              .word  L110
 0002 06A8              .word  L78
 0004 0B4B              .word  L58
 0006 076F              .word  L95
 0008 0B4B              .word  L58
 000A 08F8              .word  L127
 000C 0649              .word  L70
 000E 0505              .word  L61
 0010 0529              .word  L62
 0012 054D              .word  L63
 0014 0571              .word  L64
 0016 0595              .word  L65
 0018 05B9              .word  L66
 001A 05DD              .word  L67
 001C 0601              .word  L68
 001E 0625              .word  L69
 0020 0B4B              .word  L58
 0022 0B4B              .word  L58
 0024 066F              .word  L73
 0026 09BF              .word  L144
                        .area text
                ;       KB_valve -> 2,X
 0463           _isrKBI::
 0463 8B                pshh
 0464 B600              lda *__r0
 0466 87                psha
 0467 B600              lda *__r1
 0469 87                psha
 046A B600              lda *__r2
 046C 87                psha
 046D B600              lda *__r3
 046F 87                psha
 0470 B600              lda *__r4
 0472 87                psha
 0473 B600              lda *__r5
 0475 87                psha
 0476 B600              lda *__r6
 0478 87                psha
 0479 B600              lda *__r7
 047B 87                psha
 047C B600              lda *__r8
 047E 87                psha
 047F B600              lda *__r9
 0481 87                psha
 0482 B600              lda *__r10
 0484 87                psha
 0485 B600              lda *__r11
 0487 87                psha
 0488 B600              lda *__rhi
 048A 87                psha
 048B B600              lda *__rlo
 048D 87                psha
 048E A7FD              ais #-3
 0490 95                tsx
 0491           ; }
 0491           ; 
 0491           ;          
 0491           ; /*键盘中断处理函数------------------------------------*/
 0491           ; 
 0491           ; void isrKBI(void) 
 0491           ; {
 0491           ;        unsigned char KB_valve;
 0491           ;        asm("SEI");                    //关总中断
 0491 9B                SEI
 0492           ;         INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
 0492 121A              bset #1,0x1a
 0494           ;         x=1;

⌨️ 快捷键说明

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