; exnl4.asm example loops iteration extern printf section .data ; Data section, initialized variables msg: db "nasm exnl4.asm running", 0 ; C string needs 0 msg2: db "exnl4.asm finished", 0 fmt: db "%s", 10, 0 fmt1: db "iloop i=%d", 10, 0 ; format needs \n 0 n: dq 3 ; for simple loop fmtfl: db "floop x=%e", 10, 0 xlast: dq 8.0 ; for float loop xinc: dq 2.0 ; for +2.0 m1: dq 1.1, 1.2, 1.3, 2.1, 2.2, 2.3 ; row major 2 by 3 matrix m1name: db "m1", 0 ncol1: dq 2 nrow1: dq 3 m2: dq 1.1, 2.1, 3.1, 1.2, 2.2, 3.2 ; coloum major 3 by 2 matrix m2name: db "m2", 0 ncol2: dq 3 nrow2: dq 2 i8: dq 8 fmtm: db "%s[%d][%d]=%e", 10, 0 fijk: db "i=%d, j=%d, k=%d, l=%d", 10, 0 section .bss i: resq 1 ; reserve space, 1 is one quad word j: resq 1 k: resq 1 l: resq 1 x: resq 1 ; float type or any type section .text ; Code section. global main main: push rbp ; set up stack frame, must be aligned mov rdi,fmt ; address of format, required register rdi mov rsi,msg ; address of data mov rax,0 ; or can be xor rax,rax call printf ; Call C function ; simple loop mov rax,0 ; for(i=0 ; i