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

📄 main.lis

📁 用VC编辑的一个MD5算法
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00B5           ;         dphase = FREQ_MULT*atof(rx_buffer);
 00B5 5000              mov A,>_rx_buffer
 00B7 08                push A
 00B8 5000              mov A,<_rx_buffer
 00BA 08                push A
 00BB 7C0000            xcall _atof
 00BE 38FE              add SP,-2
 00C0 5100              mov A,[__r0]
 00C2 08                push A
 00C3 5100              mov A,[__r1]
 00C5 08                push A
 00C6 5100              mov A,[__r2]
 00C8 08                push A
 00C9 5100              mov A,[__r3]
 00CB 08                push A
 00CC 5045              mov A,69
 00CE 08                push A
 00CF 5086              mov A,-122
 00D1 08                push A
 00D2 5038              mov A,56
 00D4 08                push A
 00D5 5000              mov A,0
 00D7 08                push A
 00D8 7C0000            xcall __fpmul
 00DB 18                pop A
 00DC 5300              mov [__r3],A
 00DE 18                pop A
 00DF 5300              mov [__r2],A
 00E1 18                pop A
 00E2 5300              mov [__r1],A
 00E4 18                pop A
 00E5 5300              mov [__r0],A
 00E7 38FC              add SP,-4
 00E9 504F              mov A,79
 00EB 08                push A
 00EC 5000              mov A,0
 00EE 08                push A
 00EF 08                push A
 00F0 08                push A
 00F1 5100              mov A,[__r0]
 00F3 08                push A
 00F4 5100              mov A,[__r1]
 00F6 08                push A
 00F7 5100              mov A,[__r2]
 00F9 08                push A
 00FA 5100              mov A,[__r3]
 00FC 08                push A
 00FD 7C0000            xcall __fpcmp
 0100 38F8              add SP,-8
 0102 39FF              cmp A,-1
 0104 A055              jz L11
 0106 504F              mov A,79
 0108 08                push A
 0109 5000              mov A,0
 010B 08                push A
 010C 08                push A
 010D 08                push A
 010E 5100              mov A,[__r0]
 0110 08                push A
 0111 5100              mov A,[__r1]
 0113 08                push A
 0114 5100              mov A,[__r2]
 0116 08                push A
 0117 5100              mov A,[__r3]
 0119 08                push A
 011A 7C0000            xcall __fpsub
 011D 18                pop A
 011E 5300              mov [__r7],A
 0120 18                pop A
 0121 5300              mov [__r6],A
 0123 18                pop A
 0124 5300              mov [__r5],A
 0126 18                pop A
 0127 38FC              add SP,-4
 0129 08                push A
 012A 5100              mov A,[__r5]
 012C 08                push A
 012D 5100              mov A,[__r6]
 012F 08                push A
 0130 5100              mov A,[__r7]
 0132 08                push A
 0133 7C0000            xcall __fp2long
 0136 18                pop A
 0137 5300              mov [__r7],A
 0139 18                pop A
 013A 5300              mov [__r6],A
 013C 18                pop A
 013D 5300              mov [__r5],A
 013F 18                pop A
 0140 5300              mov [__r4],A
 0142 5100              mov A,[__r7]
 0144 5405              mov [X+5],A
 0146 5100              mov A,[__r6]
 0148 0900              adc A,0
 014A 5404              mov [X+4],A
 014C 5100              mov A,[__r5]
 014E 0900              adc A,0
 0150 5403              mov [X+3],A
 0152 5100              mov A,[__r4]
 0154 0980              adc A,-128
 0156 5402              mov [X+2],A
 0158 8028              xjmp L12
 015A           L11:
 015A 5100              mov A,[__r0]
 015C 08                push A
 015D 5100              mov A,[__r1]
 015F 08                push A
 0160 5100              mov A,[__r2]
 0162 08                push A
 0163 5100              mov A,[__r3]
 0165 08                push A
 0166 7C0000            xcall __fp2long
 0169 18                pop A
 016A 5300              mov [__r3],A
 016C 18                pop A
 016D 5300              mov [__r2],A
 016F 18                pop A
 0170 5300              mov [__r1],A
 0172 18                pop A
 0173 5402              mov [X+2],A
 0175 5100              mov A,[__r1]
 0177 5403              mov [X+3],A
 0179 5100              mov A,[__r2]
 017B 5404              mov [X+4],A
 017D 5100              mov A,[__r3]
 017F 5405              mov [X+5],A
 0181           L12:
 0181 5202              mov A,[X+2]
 0183 5304              mov [_dphase],A
 0185 5203              mov A,[X+3]
 0187 5305              mov [_dphase+1],A
 0189 5204              mov A,[X+4]
 018B 5306              mov [_dphase+2],A
 018D 5205              mov A,[X+5]
 018F 5307              mov [_dphase+3],A
 0191                   .dbline 58
 0191           ;         ExchangeSend("The frequency was set well.\n\r");
 0191 5045              mov A,>L13
 0193 08                push A
 0194 5045              mov A,<L13
 0196 08                push A
 0197 7C0000            xcall _ExchangeSend
 019A 38FE              add SP,-2
 019C                   .dbline 59
 019C           ;       break;
 019C 804F              xjmp L7
 019E           L14:
 019E                   .dbline 63
 019E           ;       
 019E           ;       case 'g':
 019E           ;       case 'G':
 019E           ;         rx_buffer[msb] = 0;
 019E 5F0001            mov [__r1],[_msb]
 01A1 550000            mov [__r0],0
 01A4 060000            add [__r1],<_rx_buffer
 01A7 0E0000            adc [__r0],>_rx_buffer
 01AA 5000              mov A,0
 01AC 3F00              mvi [__r1],A
 01AE                   .dbline 64
 01AE           ;         lsb = atoi(rx_buffer);
 01AE 5000              mov A,>_rx_buffer
 01B0 08                push A
 01B1 5000              mov A,<_rx_buffer
 01B3 08                push A
 01B4 7C0000            xcall _atoi
 01B7 38FE              add SP,-2
 01B9 5F0000            mov [_lsb],[__r1]
 01BC                   .dbline 65
 01BC           ;         if (lsb < GAIN_LEVELS) 
 01BC 3C0016            cmp [_lsb],22
 01BF D02C              jnc L7
 01C1           X8:
 01C1                   .dbline 66
 01C1           ;         {
 01C1                   .dbline 67
 01C1           ;           PGA_OUT_SetGain(gain_table[lsb]);
 01C1 5F0000            mov [__r1],[_lsb]
 01C4 550000            mov [__r0],0
 01C7 6500              asl [__r1]
 01C9 6B00              rlc [__r0]
 01CB 060000            add [__r1],<_gain_table
 01CE 0E0000            adc [__r0],>_gain_table
 01D1 5100              mov A,[__r0]
 01D3 10                push X
 01D4 08                push A
 01D5 5800              mov X,[__r1]
 01D7 28                romx
 01D8 18                pop A
 01D9 75                inc X
 01DA 0900              adc A,0
 01DC 28                romx
 01DD 7C0000            xcall _PGA_OUT_SetGain
 01E0 20                pop X
 01E1                   .dbline 68
 01E1           ;           ExchangeSend("The gain was set well.\n\r");
 01E1 502C              mov A,>L17
 01E3 08                push A
 01E4 502C              mov A,<L17
 01E6 08                push A
 01E7 7C0000            xcall _ExchangeSend
 01EA 38FE              add SP,-2
 01EC                   .dbline 69
 01EC           ;          }
 01EC                   .dbline 70
 01EC           ;       break;
 01EC                   .dbline 73
 01EC           ;       
 01EC           ;       default:
 01EC           ;       break;
 01EC           L7:
 01EC                   .dbline 76
 01EC           ;     }
 01EC           ;    
 01EC           ;     ready = TRUE;
 01EC 550001            mov [_ready],1
 01EF 8073              xjmp L20
 01F1           L19:
 01F1                   .dbline 79
 01F1           ;     
 01F1           ;     while(ready)
 01F1           ;     {
 01F1                   .dbline 80
 01F1           ;       accum += dphase;
 01F1 5107              mov A,[_dphase+3]
 01F3 0403              add [_accum+3],A
 01F5 5106              mov A,[_dphase+2]
 01F7 0C02              adc [_accum+2],A
 01F9 5105              mov A,[_dphase+1]
 01FB 0C01              adc [_accum+1],A
 01FD 5104              mov A,[_dphase]
 01FF 0C00              adc [_accum],A
 0201                   .dbline 81
 0201           ;       SB(adr,0) = SB(accum,0);
 0201 5F0800            mov [_adr],[_accum]
 0204                   .dbline 82
 0204           ;       SB(adr,1) = SB(accum,1);
 0204 5F0901            mov [_adr+1],[_accum+1]
 0207                   .dbline 83
 0207           ;       if (SB(accum,0) & QUATER_BIT) adr ^= 0xFFFF;
 0207 470004            tst [_accum],4
 020A A007              jz L24
 020C                   .dbline 83
 020C 3609FF            xor [_adr+1],-1
 020F 3608FF            xor [_adr],-1
 0212           L24:
 0212                   .dbline 84
 0212           ;       adr &= TABLE_MASK;
 0212 2609FF            and [_adr+1],-1
 0215 260803            and [_adr],3
 0218                   .dbline 86
 0218           ;      
 0218           ;       msb = lsb = sin_table[adr];
 0218 5109              mov A,[_adr+1]
 021A 0100              add A,<_sin_table
 021C 5300              mov [__r1],A
 021E 5108              mov A,[_adr]
 0220 0900              adc A,>_sin_table
 0222 10                push X
 0223 5800              mov X,[__r1]
 0225 28                romx
 0226 20                pop X
 0227 5300              mov [__r0],A
 0229 5300              mov [_lsb],A
 022B 5F0100            mov [_msb],[_lsb]
 022E                   .dbline 88
 022E           ;       
 022E           ;       msb >>= 3;
 022E 5101              mov A,[_msb]
 0230 67                asr A
 0231 67                asr A
 0232 67                asr A
 0233 211F              and A,31
 0235 5301              mov [_msb],A
 0237                   .dbline 89
 0237           ;       msb |= 0x80;
 0237 2E0180            or [_msb],-128
 023A                   .dbline 91
 023A           ;       
 023A           ;       lsb &= 0x07;
 023A 260007            and [_lsb],7
 023D                   .dbline 92
 023D           ;       lsb <<= 2;
 023D 6500              asl [_lsb]
 023F 6500              asl [_lsb]
 0241                   .dbline 93
 0241           ;       lsb  |= 0x80;
 0241 2E0080            or [_lsb],-128
 0244                   .dbline 95
 0244           ;       
 0244           ;       if (SB(accum,0) & SIGN_BIT) 
 0244 470008            tst [_accum],8
 0247 A008              jz L26
 0249                   .dbline 96
 0249           ;         msb |= 0x20;
 0249 2E0120            or [_msb],32
 024C 5101              mov A,[_msb]
 024E 8006              xjmp L27
 0250           L26:
 0250                   .dbline 98
 0250           ;       else 
 0250           ;         lsb |= 0x20;
 0250 2E0020            or [_lsb],32
 0253 5100              mov A,[_lsb]
 0255           L27:
 0255                   .dbline 100
 0255 436501                    or  reg[65h], 01h
 0258           
 0258                   .dbline 101
 0258 5101              mov A,[_msb]
 025A 6080              mov REG[-128],A
 025C                   .dbline 102
 025C 4165FE                    and reg[65h], FEh
 025F           
 025F                   .dbline 103
 025F 5100              mov A,[_lsb]
 0261 6090              mov REG[-112],A
 0263                   .dbline 106
 0263           L20:
 0263                   .dbline 78
 0263 3C0000            cmp [_ready],0
 0266 BF8A              jnz L19
 0268                   .dbline 108
 0268           L4:
 0268                   .dbline 49
 0268 8DCE              xjmp L3
 026A           X1:
 026A                   .dbline -2
 026A                   .dbline 109
 026A           ;         
 026A           ;     M8C_Stall;
 026A           ;     DAC_MSB_CR0 = msb;
 026A           ;     M8C_Unstall;
 026A           ;     DAC_LSB_CR0 = lsb;    
 026A           ;     //instead it, the fixed version DAC_WriteStall2B(lsb, msb) can be used
 026A           ;     //but you have less time reserve
 026A           ;    }
 026A           ;      
 026A           ;  }  
 026A           ; }
 026A           L1:
 026A 38FA              add SP,-6
 026C 20                pop X
 026D                   .dbline 0 ; func end
 026D 7F                ret
 026E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile ./main.c
 0000           _lsb:
 0000                   .blkb 1
 0001                   .dbsym s lsb _lsb c
 0001           _msb:
 0001                   .blkb 1
 0002                   .dbsym s msb _msb c
                        .area lit(rom, con, rel)
 042C           L17:
 042C 546865206761696E2077617320736574  .byte 'T,'h,'e,32,'g,'a,'i,'n,32,'w,'a,'s,32,'s,'e,'t
 043C 2077656C6C2E0A0D00        .byte 32,'w,'e,'l,'l,46,10,13,0
 0445           L13:
 0445 546865206672657175656E6379207761  .byte 'T,'h,'e,32,'f,'r,'e,'q,'u,'e,'n,'c,'y,32,'w,'a
 0455 73207365742077656C6C2E0A0D00      .byte 's,32,'s,'e,'t,32,'w,'e,'l,'l,46,10,13,0
 0463           L2:
 0463 546865204444532067656E657261746F  .byte 'T,'h,'e,32,'D,'D,'S,32,'g,'e,'n,'e,'r,'a,'t,'o
 0473 722069732072656164792E0A0D00      .byte 'r,32,'i,'s,32,'r,'e,'a,'d,'y,46,10,13,0

⌨️ 快捷键说明

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