Ответ:
******************************************************************************* * * * 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)
-
- Наверно размер кода самих операций тоже надо учитывать, а не только запись параметров и вызовы? she(114 знак., 23.01.2006 11:56, )