Skip to content

Commit

Permalink
Initialization
Browse files Browse the repository at this point in the history
  • Loading branch information
Your Name committed May 5, 2022
1 parent 1c37361 commit 86b09c6
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 0 deletions.
22 changes: 22 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,24 @@
# asm-trail

A Simple Trail on Assembly.

`nasm` could be Installed via `apt`.

1. Compilation

```sh
$ nasm ./init.asm -f elf64 -o ./init.o
```

2. Linking

```sh
$ ld -s ./init.o -o ./init.out
```

3. Execution

```sh
$ ./init.out
Holax, sekai!
```
18 changes: 18 additions & 0 deletions init.asm
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
section .data ;section declaration
msg db "Holax, sekai!",0xA ;our dear string
len equ $ - msg ;length of our dear string
section .text ;section declaration
;we must export the entry point to the ELF linker or
global _start ;loader. They conventionally recognize _start as their
;entry point. Use ld -e foo to override the default.
_start:
;write our string to stdout
mov eax,4 ;system call number (sys_write)
mov ebx,1 ;first argument: file handle (stdout)
mov ecx,msg ;second argument: pointer to message to write
mov edx,len ;third argument: message length
int 0x80 ;call kernel
;and exit
mov eax,1 ;system call number (sys_exit)
xor ebx,ebx ;first syscall argument: exit code
int 0x80 ;call kernel
Binary file added init.o
Binary file not shown.
Binary file added init.out
Binary file not shown.

0 comments on commit 86b09c6

Please sign in to comment.