/* -------------------------------------------------- Define required labels for EGTAPI -------------------------------------------------- */ .global main, Stop, CodeEnd .global DataStart, DataEnd .global i1, i2, s1, s2, b1, b2 /* -------------------------------------------------- Begin of the program instructions -------------------------------------------------- */ .text main: // Move i1 into r1 movw r0, #:lower16:i1 // Moves the address of memory movt r0, #:upper16:i1 // variable i1 into register r0 ldr r1,[r0] // Move int value from var into r1 // Move i2 into r2 movw r0, #:lower16:i2 // Moves the address of memory movt r0, #:upper16:i2 // variable i2 into register r0 ldr r2,[r0] // Move int value from var into r2 // Move s1 into r3 movw r0, #:lower16:s1 // Moves the address of memory movt r0, #:upper16:s1 // variable s1 into register r0 ldrsh r3,[r0] // Move short value from var into r3 // Move s2 into r4 movw r0, #:lower16:s2 // Moves the address of memory movt r0, #:upper16:s2 // variable s2 into register r0 ldrsh r4,[r0] // Move short value from var into r4 // Move b1 into r5 movw r0, #:lower16:b1 // Moves the address of memory movt r0, #:upper16:b1 // variable b1 into register r0 ldrsb r5,[r0] // Move byte value from var into r5 // Move b2 into r6 movw r0, #:lower16:b2 // Moves the address of memory movt r0, #:upper16:b2 // variable b2 into register r0 ldrsb r6,[r0] // Move byte value from var into r6 Stop: CodeEnd: nop /* -------------------------------------------------- Begin of the permanent program variables -------------------------------------------------- */ .data DataStart: i: .4byte -2 // int typed variable s: .2byte -2 // short typed variable b: .byte -2 // byte typed variable b2: .byte -3 // byte typed variable DataEnd: .end