ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
49104 Топик полностью
=AK= (23.01.2006 11:37, просмотров: 1) ответил she на Если не сложно, можно в студию ассемблерный код получившийся для FP Math?
Ответ: 
*******************************************************************************
*                                                                             *
*                  MAXQ C CROSS COMPILER Version 1.00.050425                  *
*             Copyright (C) 2004  MicroCOSM Software Technologies             *
*                                                                             *
*******************************************************************************

                         add:
;FILE: main.c
;000011    return (a + b);
0000    0B003D00                   E    LCALL   ??FPADD
0002    8C0D                            RET     
.ENDF

                         mul:
;000015    return (a * b);
0003    0B003D00                   E    LCALL   ??FPMUL
0005    8C0D                            RET     
.ENDF

                         div:
;000019    return (a / b);
0006    0B003D00                   E    LCALL   ??FPDIV
0008    8C0D                            RET     
.ENDF

                        main:
0009    4E1C                            MOVE    DPC,#1Ch
000A    AF7E                            MOVE    @--DP[0],BP
000B    6D0E                            MOVE    LC[0],#000Eh
000C    2F00                            MOVE    @--DP[0],#0000h
000D    4DFE                   R        SDJNZ   LC[0],$-1
000E    FE3F                            MOVE    BP,DP[0]
000F    AF0D                            POP     @--DP[0]
;000024    result[0] = 54.567;
0010    3E06                            MOVE    OFFS,#result__?4__ .SHRL 1
0011    0B440E9C                        MOVE    @BP[OFFS],#449Ch
0013    0B421E5A                        MOVE    @BP[++OFFS],#425Ah
;000025    result[1] = 14346.67;
0015    3E08                            MOVE    OFFS,#(result__?4__+4h) .SHRL 1
0016    0B2A0EAE                        MOVE    @BP[OFFS],#2AAEh
0018    0B461E60                        MOVE    @BP[++OFFS],#4660h
;000026    result[2] = add(result[0], result[1]);
001A    3E06                            MOVE    OFFS,#result__?4__ .SHRL 1
001B    891E                            MOVE    A[0],@BP[OFFS++]
001C    992E                            MOVE    A[1],@BP[OFFS--]
001D    3E08                            MOVE    OFFS,#(result__?4__+4h) .SHRL 1
001E    A91E                            MOVE    A[2],@BP[OFFS++]
001F    B92E                            MOVE    A[3],@BP[OFFS--]
0020    3DDF                   R        SCALL   add
0021    4E1C                            MOVE    DPC,#1Ch
0022    3E0A                            MOVE    OFFS,#(result__?4__+8h) .SHRL 1
0023    8E09                            MOVE    @BP[OFFS],A[0]
0024    9E19                            MOVE    @BP[++OFFS],A[1]
;000027    result[1] = mul(result[0], result[2]);
0025    3E06                            MOVE    OFFS,#result__?4__ .SHRL 1
0026    891E                            MOVE    A[0],@BP[OFFS++]
0027    992E                            MOVE    A[1],@BP[OFFS--]
0028    3E0A                            MOVE    OFFS,#(result__?4__+8h) .SHRL 1
0029    A91E                            MOVE    A[2],@BP[OFFS++]
002A    B92E                            MOVE    A[3],@BP[OFFS--]
002B    3DD7                   R        SCALL   mul
002C    4E1C                            MOVE    DPC,#1Ch
002D    3E08                            MOVE    OFFS,#(result__?4__+4h) .SHRL 1
002E    8E09                            MOVE    @BP[OFFS],A[0]
002F    9E19                            MOVE    @BP[++OFFS],A[1]
;000028    result[3] = div(result[1], result[2]);
0030    3E0A                            MOVE    OFFS,#(result__?4__+8h) .SHRL 1
0031    A91E                            MOVE    A[2],@BP[OFFS++]
0032    B92E                            MOVE    A[3],@BP[OFFS--]
0033    3DD2                   R        SCALL   div
0034    4E1C                            MOVE    DPC,#1Ch
0035    3E0C                            MOVE    OFFS,#(result__?4__+0Ch) .SHRL 1
0036    8E09                            MOVE    @BP[OFFS],A[0]
0037    9E19                            MOVE    @BP[++OFFS],A[1]
;000029    return;
0038    4E1C                            MOVE    DPC,#1Ch
0039    8D1F                            PUSH    @DP[0]++
003A    3E0E                            MOVE    OFFS,#1Ch .SHRL 1
003B    BFBE                            MOVE    DP[0],FP
003C    FE1F                            MOVE    BP,@DP[0]++
003D    8C0D                            RET     
.ENDF

main.c: 124 byte(s), 32 line(s), 0 error(s), 0 warning(s)