diff --git a/listings/chap2/endianness/endianness.asm b/listings/chap2/endianness/endianness.asm index 00cc5a7..cd87bb5 100755 --- a/listings/chap2/endianness/endianness.asm +++ b/listings/chap2/endianness/endianness.asm @@ -2,8 +2,12 @@ section .data newline_char: db 10 codes: db '0123456789abcdef' -global _start - + +demo1: dq 0x1122334455667788 +demo2: db 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 + +global _start +section .text print_newline: mov rax, 1 @@ -18,42 +22,36 @@ print_newline: print_hex: mov rax, rdi - mov rcx, 64 -iterate: - push rax - sub rcx, 4 - sar rax, cl - and rax, 0xf - lea rsi, [codes + rax] - mov rax, 1 - - push rcx - mov rdi, 1 - mov rdx, 1 - syscall - pop rcx - + mov rcx, 64 +iterate: + push rax + sub rcx, 4 + sar rax, cl + and rax, 0xf + lea rsi, [codes + rax] + mov rax, 1 + + push rcx + mov rdi, 1 + mov rdx, 1 + syscall + pop rcx + pop rax test rcx, rcx - jnz iterate - - ret + jnz iterate -section .data -demo1: dq 0x1122334455667788 -demo2: db 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 - -section .text + ret _start: mov rdi, [demo1] call print_hex call print_newline - + mov rdi, [demo2] call print_hex call print_newline - + mov rax, 60 xor rdi, rdi syscall