Compare commits

..

No commits in common. 'main' and 'newbranch' have entirely different histories.

@ -1,30 +0,0 @@
.global _start
//exposes a symbol called start to the assembler
.intel_syntax noprefix
//See: https://www.youtube.com/watch?v=6S5KRJv-7RU
//See: https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/
_start:
//write call (sys_write)
mov rax,1
//sys_write system call
mov rdi, 1
//unsigned int fd = 1 (stdout)
lea rsi,[hello_world]
//load effective address (lea) into rsi of hello_world data
mov rdx, 14
//size_t count excluding null terminator
syscall
//exit call
mov rax, 60
mov rdi, 33
//return result (must be "rdi" not "rdx" - how are these registers named?)
syscall
//apprently int 80h interrupt is also syscall?
hello_world:
.asciz "Hello, World!\n"

@ -1,24 +0,0 @@
https://www.youtube.com/watch?v=6S5KRJv-7RU
rdi
rsi
r8
r - 64 bit pointer
mov rdi,8
mov rdi,rsi
memory operations
mov rdi, qword ptr[rsi] values from memory into register
mov qword ptr[rsi], rdi store into memory operation
https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/
Compilation:
as -c assemblyexample1.asm -o assemblyexample1.o
gcc assemblyexample1.o -o assemblyexample1 -nostdlib -static
Check error code:
echo $?

@ -1,11 +1,3 @@
I've added this new thing I've added this new thing
a new addition a new addition
Added a third line
a third line
A fourth line
An alternate fourth line.

Loading…
Cancel
Save