register variabel INPUT OUTPUT R7 a pm[i] + c R8 b mm[i-1] + gap_row[i] min (a, b, c) R9 c pm[i-1] + alg_row[i] DELETE|ALIGN|INSERT R10 $0x0 (* R11L $0x2 (* (*) Observera! Dessa register är konstanter och assignas endast en gång utanför loopen. 4 2 1 <- bitar som motsvarar DELETE|ALIGN|INSERT ----------- | c | b | a | <- denoterar vilken(a) variabel(er) som är minst(a) ----------- Programmet som räknar ut min(a, b, c) samt ger bitmask enligt protokoll: 1. CMP R7, R8 2. CMOVG R7, R8 3. MOV $0x0, R7 4. SETGE R7L 5. CMOVLE R11L, R7H 6. CMP R8, R9 7. CMOVG R8, R9 8. MOV 0x4, R8 9. CMOVG R10, R8 10. CMOVL R10, R7 11. ADD R7H, R7L 12. ADD R7L, R8L