Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 25 additions & 27 deletions listings/chap2/endianness/endianness.asm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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