#include <stdio.h>
float fhabs(float a);
float fhabs(float a){
float b=0.0;
asm(" push {r4}");
asm(" mov r4,r0");
asm(" mov r1,#0");
asm(" bl __aeabi_fcmplt");
asm(" cmp r0,#0");
asm(" beq F7");
asm(" eor r4,r4,#-2147483648");
asm("F7:");
asm(" mov r0,r4");
asm(" pop {r4}");
}
main(){
float a,b,c,g,h,eps=1.0e-6,t=2.0,k=1.0;
char s1[20]="%s";
char s2[20]="\n";
char s3[20]="%f";
char s4[20]="%f\n";
char s5[20]="a=";
char s6[20]="root a=%f\n";
char s7[20]="jijo a=%f\n";
char s8[20]=" a=%f\n";
char s9[20]="%s";
asm(" sub r0,fp,#64");
asm(" sub r1,fp,#144");
asm(" bl printf");
asm(" sub r0,fp,#104");
asm(" sub r1,fp,#44");
asm(" bl scanf");
asm(" ldr r0,[fp,#-44]");
asm(" bl __aeabi_f2d");
asm(" mov r3,r1");
asm(" mov r2,r0");
asm(" sub r0,fp,#204");
asm(" bl printf");
asm(" ldr r4,[fp,#-16]");
asm(" ldr r5,[fp,#-44]");
asm(" ldr r8,[fp,#-24]");
asm(" ldr r9,[fp,#-20]");
asm(" mov r0,r5");
asm(" mov r1,r4");
asm(" bl __aeabi_fdiv");
asm(" mov r6,r0");
asm("T1:");
asm(" mov r0,r4");
asm(" mov r1,r6");
asm(" bl __aeabi_fsub");
asm(" bl fhabs");
asm(" mov r1,r8");
asm(" bl __aeabi_fcmpge");
asm(" cmp r0,#0");
asm(" beq T2");
asm(" mov r0,r4");
asm(" mov r1,r6");
asm(" bl __aeabi_fadd");
asm(" mov r1,r9");
asm(" bl __aeabi_fdiv");
asm(" mov r4,r0");
asm(" mov r0,r5");
asm(" mov r1,r4");
asm(" bl __aeabi_fdiv");
asm(" mov r6,r0");
asm(" b T1");
asm("T2:");
asm(" mov r0,r4");
asm(" mov r1,r6");
asm(" bl __aeabi_fadd");
asm(" mov r1,r9");
asm(" bl __aeabi_fdiv");
asm(" mov r4,r0");
asm(" bl __aeabi_f2d");
asm(" mov r3,r1");
asm(" mov r2,r0");
asm(" sub r0,fp,#164");
asm(" bl printf");
asm(" mov r0,r4");
asm(" mov r1,r4");
asm(" bl __aeabi_fmul");
asm(" bl __aeabi_f2d");
asm(" mov r3,r1");
asm(" mov r2,r0");
asm(" sub r0,fp,#184");
asm(" bl printf");
}
0 件のコメント:
コメントを投稿