/* -------------------------------------------------- Define required labels for EGTAPI -------------------------------------------------- */ .global main, Stop, CodeEnd, DataStart, DataEnd .global x, y, max /* -------------------------------------------------- if ( x >= y ) max = x; else max = y; -------------------------------------------------- */ .text main: movw r0, #:lower16:x movt r0, #:upper16:x // r0 = addr(x) ldr r0, [r0] // r0 = x movw r1, #:lower16:y movt r1, #:upper16:y // r1 = addr(y) ldr r1, [r1] // r1 = y cmp r0, r1 // compare x ? y blt else // Branch to "else" if x < y // x >= y ---> max = x movw r2, #:lower16:max movt r2, #:upper16:max // r2 = addr(max) str r0, [r2] // max = x b ifEnd // Skip over the else part !!! else: // x < y ---> max = y movw r2, #:lower16:max movt r2, #:upper16:max // r2 = addr(max) str r1, [r2] // max = y ifEnd: Stop: CodeEnd: nop /* -------------------------------------------------- Begin of the permanent program variables -------------------------------------------------- */ .data DataStart: x: .4byte 7 // Try a value > y y: .4byte 10 max: .4byte 0 DataEnd: .end