|
麻烦看下
8317 ; 1648 void dec_add1(unsigned char *array1,unsigned char *array2,unsigned char n1,unsigned char n2) 8317 ; 1649 { 8318 switch .text 8320 xref _dec_add1$L 8321 1c61 _dec_add1: 8323 1c61 c70001 ld _dec_add1$L+1,a 8324 1c64 cf0000 ld _dec_add1$L,x 8326 ; 1652 carry=0; 8328 1c67 4f clr a 8329 1c68 c7fffd ld _dec_add1$L-3,a 8330 ; 1653 for(i=0;i<n2;i++) 8332 1c6b 207b jra L3313 8333 1c6d L7213: 8334 ; 1655 temp = array1-(array1>>4)*6; 8336 1c6d c60000 ld a,_dec_add1$L 8337 1c70 b700 ld c_x,a 8338 1c72 c60001 ld a,_dec_add1$L+1 8339 1c75 b701 ld c_x+1,a 8340 1c77 cefffe ld x,_dec_add1$L-2 8341 1c7a 89 push x 8342 1c7b 92d600 ld a,([c_x.w],x) 8343 1c7e 4e swap a 8344 1c7f a40f and a,#15 8345 1c81 ae06 ld x,#6 8346 1c83 42 mul x,a 8347 1c84 85 pop x 8348 1c85 92d000 sub a,([c_x.w],x) 8349 1c88 40 neg a 8350 1c89 c7ffff ld _dec_add1$L-1,a 8351 ; 1656 temp += array2-(array2>>4)*6; 8353 1c8c c60002 ld a,_dec_add1$L+2 8354 1c8f b700 ld c_x,a 8355 1c91 c60003 ld a,_dec_add1$L+3 8356 1c94 b701 ld c_x+1,a 8357 1c96 cefffe ld x,_dec_add1$L-2 8358 1c99 89 push x 8359 1c9a 92d600 ld a,([c_x.w],x) 8360 1c9d 4e swap a 8361 1c9e a40f and a,#15 8362 1ca0 ae06 ld x,#6 8363 1ca2 42 mul x,a 8364 1ca3 85 pop x 8365 1ca4 92d000 sub a,([c_x.w],x) 8366 1ca7 40 neg a 8367 1ca8 cbffff add a,_dec_add1$L-1 8368 ; 1657 temp += carry; 8370 1cab cbfffd add a,_dec_add1$L-3 8371 1cae c7ffff ld _dec_add1$L-1,a 8372 ; 1658 carry = temp/100; 8374 1cb1 ae64 ld x,#100 8375 1cb3 cd0000 call c_cdivx 8377 1cb6 c7fffd ld _dec_add1$L-3,a 8378 ; 1659 temp = temp%100; 8380 1cb9 c6ffff ld a,_dec_add1$L-1 8381 1cbc ae64 ld x,#100 8382 1cbe cd0000 call c_cdivx 8384 1cc1 cfffff ld _dec_add1$L-1,x 8385 ; 1660 array1 = (temp/10)*6+temp; 8387 1cc4 c60000 ld a,_dec_add1$L 8388 1cc7 b700 ld c_x,a 8389 1cc9 c60001 ld a,_dec_add1$L+1 8390 1ccc b701 ld c_x+1,a 8391 1cce cefffe ld x,_dec_add1$L-2 8392 1cd1 89 push x 8393 1cd2 c6ffff ld a,_dec_add1$L-1 8394 1cd5 ae0a ld x,#10 8395 1cd7 cd0000 call c_cdivx 8397 1cda ae06 ld x,#6 8398 1cdc 42 mul x,a 8399 1cdd cbffff add a,_dec_add1$L-1 8400 1ce0 85 pop x 8401 1ce1 92d700 ld ([c_x.w],x),a 8402 ; 1653 for(i=0;i<n2;i++) 8404 1ce4 c6fffe ld a,_dec_add1$L-2 8405 1ce7 4c inc a 8406 1ce8 L3313: 8408 1ce8 c7fffe ld _dec_add1$L-2,a 8411 1ceb c10005 cp a,_dec_add1$L+5 8412 1cee 2403cc1c6d jrult L7213 8414 1cf3 205c jra L1413 8415 1cf5 L7313: 8416 ; 1665 temp = array1-(array1>>4)*6; 8418 1cf5 c60000 ld a,_dec_add1$L 8419 1cf8 b700 ld c_x,a 8420 1cfa c60001 ld a,_dec_add1$L+1 8421 1cfd b701 ld c_x+1,a 8422 1cff cefffe ld x,_dec_add1$L-2 8423 1d02 89 push x 8424 1d03 92d600 ld a,([c_x.w],x) 8425 1d06 4e swap a 8426 1d07 a40f and a,#15 8427 1d09 ae06 ld x,#6 8428 1d0b 42 mul x,a 8429 1d0c 85 pop x 8430 1d0d 92d000 sub a,([c_x.w],x) 8431 1d10 40 neg a 8432 ; 1666 temp+=carry; 8434 1d11 cbfffd add a,_dec_add1$L-3 8435 1d14 c7ffff ld _dec_add1$L-1,a 8436 ; 1667 carry=temp/100; 8438 1d17 ae64 ld x,#100 8439 1d19 cd0000 call c_cdivx 8441 1d1c c7fffd ld _dec_add1$L-3,a 8442 ; 1668 temp=temp%100; 8444 1d1f c6ffff ld a,_dec_add1$L-1 8445 1d22 ae64 ld x,#100 8446 1d24 cd0000 call c_cdivx 8448 1d27 cfffff ld _dec_add1$L-1,x 8449 ; 1669 array1=(temp/10)*6+temp; 8451 1d2a c60000 ld a,_dec_add1$L 8452 1d2d b700 ld c_x,a 8453 1d2f c60001 ld a,_dec_add1$L+1 8454 1d32 b701 ld c_x+1,a 8455 1d34 cefffe ld x,_dec_add1$L-2 8456 1d37 89 push x 8457 1d38 c6ffff ld a,_dec_add1$L-1 8458 1d3b ae0a ld x,#10 8459 1d3d cd0000 call c_cdivx 8461 1d40 ae06 ld x,#6 8462 1d42 42 mul x,a 8463 1d43 cbffff add a,_dec_add1$L-1 8464 1d46 85 pop x 8465 1d47 92d700 ld ([c_x.w],x),a 8466 ; 1670 i++; 8468 1d4a c6fffe ld a,_dec_add1$L-2 8469 1d4d 4c inc a 8470 1d4e c7fffe ld _dec_add1$L-2,a 8471 1d51 L1413: 8472 ; 1663 while(carry&&(i<n1)) 8474 1d51 c6fffd ld a,_dec_add1$L-3 8475 1d54 2708 jreq L5413 8477 1d56 c6fffe ld a,_dec_add1$L-2 8478 1d59 c10004 cp a,_dec_add1$L+4 8479 1d5c 2597 jrult L7313 8480 1d5e L5413: 8481 ; 1674 } 8484 1d5e 81 ret |
|