45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
/* ARM assembly Raspberry PI */
|
|
/* program formatNum.s */
|
|
/* use C library printf ha, ha, ha !!! */
|
|
/* Constantes */
|
|
.equ EXIT, 1 @ Linux syscall
|
|
/* Initialized data */
|
|
.data
|
|
szFormat1: .asciz " %09.3f\n"
|
|
.align 4
|
|
sfNumber: .double 0f-7125E-3
|
|
sfNumber1: .double 0f7125E-3
|
|
|
|
/* UnInitialized data */
|
|
.bss
|
|
.align 4
|
|
|
|
/* code section */
|
|
.text
|
|
.global main
|
|
main: @ entry of program
|
|
push {fp,lr} @ saves registers
|
|
|
|
ldr r0,iAdrszFormat1 @ format
|
|
ldr r1,iAdrsfNumber @ number address
|
|
ldr r2,[r1] @ load first 4 bytes
|
|
ldr r3,[r1,#4] @ load last 4 bytes
|
|
bl printf @ call C function !!!
|
|
ldr r0,iAdrszFormat1
|
|
ldr r1,iAdrsfNumber1
|
|
ldr r2,[r1]
|
|
ldr r3,[r1,#4]
|
|
bl printf
|
|
|
|
|
|
|
|
100: @ standard end of the program
|
|
mov r0, #0 @ return code
|
|
pop {fp,lr} @restaur registers
|
|
mov r7, #EXIT @ request to exit program
|
|
swi 0 @ perform the system call
|
|
|
|
iAdrszFormat1: .int szFormat1
|
|
iAdrsfNumber: .int sfNumber
|
|
iAdrsfNumber1: .int sfNumber1
|