[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: а пожалуйста (пример уважаемого СБ)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено мысли вслух 05 февраля 2002 г. 19:41
В ответ на: И просьба к кому-нибудь отранслировать пример в последнем EC++ отправлено Elektronik 05 февраля 2002 г. 18:24

Для начала определим данные:

struct __aa {
float A,B,C;
};

#define TestSize 16
#define PolynomSize 16

struct __aa Curva[TestSize];

float TestData[TestSize];

.... тут его код

далее:
msp430-gcc -O -mmcu=msp430x149 file.c -S

Результат:
.file "m.c"
.arch msp430x149

/* Hardware multiplier registers: */
__MPY=0x130
__MPYS=0x132
__MAC=0x134
__MACS=0x136
__OP2=0x138
__RESLO=0x13a
__RESHI=0x13c
__SUMEXT=0x13e

.text
.p2align 1,0
.global Fx
.type Fx,@function
/***********************
* Function `Fx'
***********************/
Fx:
/* prologue: frame size = 8 */
.L__FrameSize_Fx=0x8
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
sub #8, r1 ; 8, fpn 1
/* prologue end (size=9) */
mov r14, @r1
mov r15, 2(r1)
mov &Curva+8, r7
mov &Curva+8+2, r8
mov #llo(0x0), r5
mov #lhi(0x0), r6
mov #llo(0x3f800000), 4(r1)
mov #lhi(0x3f800000), 4+2(r1)
mov.b #llo(1), r4
.L5:
mov.b #llo(12), r11
mov r4, &__MPY
mov r11, &__OP2
mov &__RESLO, r11
mov r11, r12
add #Curva, r12
mov @r12, r12
mov 2(r12), r13
mov @r1, r14
mov 2(r1), r15
call #__subsf3
mov 4(r1), r12
mov 4+2(r1), r13
call #__mulsf3
mov r14, r9
mov r15, r10
mov r11, r12
add #Curva, r12
mov 4(r12), r12
mov 4+2(r12), r13
mov r5, r14
mov r6, r15
call #__mulsf3
mov r14, r12
mov r15, r13
mov r9, r14
mov r10, r15
call #__subsf3
mov r14, r9
mov r15, r10
add #Curva, r11
mov 8(r11), r12
mov 8+2(r11), r13
call #__mulsf3
mov r14, r12
mov r15, r13
mov r7, r14
mov r8, r15
call #__addsf3
mov r14, r7
mov r15, r8
mov 4(r1), r5
mov 4+2(r1), r6
mov r9, 4(r1)
mov r10, 4+2(r1)
add.b #llo(1), r4
cmp.b #llo(15), r4
jeq .L5
jlo .L5
mov r7, r12
mov r8, r13
mov #llo(0x3f800000), r14
mov #lhi(0x3f800000), r15
call #__divsf3
mov #llo(0x3f800000), r12
mov #lhi(0x3f800000), r13
call #__subsf3
/* epilogue: frame size=8 */
add #8, r1
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
ret
/* epilogue end (size=10) */
/* function Fx size 123 (104) */
.Lfe1:
.size Fx,.Lfe1-Fx
/********* End of function ******/

.p2align 1,0
.global main
.type main,@function
/***********************
* Function `main'
***********************/
main:
/* prologue: frame size = 0 */
.L__FrameSize_main=0x0
mov #(__stack-0), r1
/* prologue end (size=2) */
mov #llo(23168), &288
mov.b #llo(0), r10
.L11:
mov.b r10, r12
rla r12
rla r12
mov r12, r11
add #Output, r11
mov TestData(r12), r14
mov TestData+2(r12), r15
call #Fx
mov r14, @r11
mov r15, 2(r11)
add.b #llo(1), r10
cmp.b #llo(15), r10
jeq .L11
jlo .L11
/* epilogue: frame size=0 */
br #__stop_progExec__
/* epilogue end (size=4) */
/* function main size 31 (25) */
.Lfe2:
.size main,.Lfe2-main
/********* End of function ******/

.p2align 1,0
.comm Curva,192,2
.p2align 1,0
.comm TestData,64,2
.p2align 1,0
.comm Output,64,2

/*********************************************************************
* File m.c: code size: 154 words (0x9a)
* incl. words in prologues: 11, epilogues: 14
*********************************************************************/


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru