-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added root directory, binary, and libraries for nasm to the dynamic-apps that can be run in bincompat mode. Signed-off-by: Sina Mahdavi <[email protected]>
- Loading branch information
Showing
5 changed files
with
56 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Netwide Assembler | ||
|
||
This is the netwide assembler and it is meant to be used in the binary compatibility mode of unikraft. | ||
|
||
## Content | ||
- sample_code.s: a sample assembly code file that can be assembled using nasm. | ||
- usr/bin/nasm: the nasm binary | ||
- lib/ & lib64/: the required libraries for nasm | ||
|
||
## Extract dynamic libraries | ||
```../extract.sh usr/bin/nasm``` | ||
|
||
output: | ||
``` | ||
Copying /lib/x86_64-linux-gnu/libc.so.6 ... | ||
Copying /lib64/ld-linux-x86-64.so.2 ... | ||
``` | ||
|
||
## Run on linux | ||
```nasm sample_code.s``` | ||
|
||
## Run on unikraft | ||
```./run.sh -r ../dynamic-apps/nasm/ usr/bin/nasm sample_code.s``` | ||
|
||
This should generate the output file ```sample_code``` which is the assembled machine code generated by nasm. |
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
BITS 64 | ||
|
||
xor rax, rax | ||
test rdi, rdi | ||
jz end | ||
|
||
loop: | ||
cmp byte [rdi], 0 | ||
jz end | ||
|
||
xor rbx, rbx | ||
mov bl, byte [rdi] | ||
cmp bl, 0x5a | ||
ja loop_end | ||
|
||
push rax | ||
push rdi | ||
mov rdi, rbx | ||
mov rax, 0x403000 | ||
call rax | ||
pop rdi | ||
mov byte [rdi], al | ||
pop rax | ||
inc rax | ||
|
||
loop_end: | ||
inc rdi | ||
jmp loop | ||
|
||
end: | ||
ret |
Binary file not shown.