[mweeks@gsuad.gsu.edu@snowball ~]$ cat type.asm ; Assemble: nasm -f elf64 type.asm ; Link: gcc type.o -o type ; This is adapted for NASM. -MCW extern printf ; We will use this external function section .data ; Data section, initialized variables mystr: db "%x", 10, 0 ; String format to use (decimal), followed by NL mystr_size equ ($ - mystr) bVal: db 0 bVal_size equ ($ - bVal) wVal: dw 0 wVal_size equ ($ - wVal) dVal: dd 0 dVal_size equ ($ - dVal) dVal2: dd 0 dVal2_size equ ($ - dVal2) mystr1: db "My string size is %d", 10, 0 mystr2: db "My bVal size is %d", 10, 0 mystr3: db "My wVal size is %d", 10, 0 mystr4: db "My dVal size is %d", 10, 0 mystr5: db "My dVal2 size is %d", 10, 0 section .text global main main: xor rax, rax ; A = 0 ;mov rsi, type bVal ; does not work ;mov rsi, lengthof mystr ; does not work ;mov rsi, sizeof mystr ; does not work mov rsi, mystr_size mov rax, 0 mov rdi, mystr1 ; call printf mov rsi,bVal_size mov rax, 0 mov rdi, mystr2 ; call printf mov rsi,wVal_size mov rax, 0 mov rdi, mystr3 ; call printf mov rsi,dVal_size mov rax, 0 mov rdi, mystr4 ; call printf mov rsi,dVal2_size mov rax, 0 mov rdi, mystr5 ; call printf mov rax, 0 ret [mweeks@gsuad.gsu.edu@snowball ~]$ nasm -f elf64 type.asm [mweeks@gsuad.gsu.edu@snowball ~]$ gcc type.o -o type [mweeks@gsuad.gsu.edu@snowball ~]$ ./type My string size is 4 My bVal size is 1 My wVal size is 2 My dVal size is 4 My dVal2 size is 4 [mweeks@gsuad.gsu.edu@snowball ~]$