sys_read/open/close
This commit is contained in:
+29
-3
@@ -1,7 +1,8 @@
|
||||
bits 64
|
||||
|
||||
section .data
|
||||
hello db 0x0A, 0x0D, "User program 2 speaking", 0x0A, 0x0D, 0
|
||||
hello db 0x0A, 0x0D, "TEST PROGRAM...", 0x0A, 0x0D, 0
|
||||
filename db "wow.txt", 0
|
||||
|
||||
section .text
|
||||
|
||||
@@ -9,7 +10,29 @@ _start:
|
||||
mov rax, 0x1 ;sys_write
|
||||
mov rdi, 0x1 ;stdout
|
||||
lea rsi, [rel hello]
|
||||
mov rdx, 27 ;count
|
||||
mov rdx, 19 ;count
|
||||
int 0x80
|
||||
|
||||
; Open a file
|
||||
mov rax, 0x2 ;sys_open
|
||||
lea rdi, [rel filename] ;filename
|
||||
mov rsi, 0x0 ;flags
|
||||
int 0x80
|
||||
|
||||
mov rdi, rax ;fd
|
||||
mov rax, 0x0 ;sys_read
|
||||
lea rsi, [rel buf] ;buf
|
||||
mov rdx, 33 ;count
|
||||
int 0x80
|
||||
|
||||
mov rax, 0x1 ;sys_write
|
||||
mov rdi, 0x1 ;stdout
|
||||
lea rsi, [rel buf] ;buf
|
||||
mov rdx, 33 ;count
|
||||
int 0x80
|
||||
|
||||
mov rax, 0x3 ;sys_close
|
||||
mov rdi, 0x3 ;fd
|
||||
int 0x80
|
||||
|
||||
; when we are ready to have an os specific toolchain,
|
||||
@@ -22,4 +45,7 @@ _start:
|
||||
int 0x80
|
||||
|
||||
.loop:
|
||||
jmp .loop
|
||||
jmp .loop
|
||||
|
||||
section .bss
|
||||
buf resb 10
|
||||
@@ -0,0 +1 @@
|
||||
hi from a file opened in usermode
|
||||
Reference in New Issue
Block a user