📄 vectors08.lis
字号:
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 + -