68 lines
957 B
Text
68 lines
957 B
Text
; x86_64 linux nasm
|
|
|
|
section .data
|
|
localFileName: db "input.txt", 0
|
|
rootFileName: db "/initrd.img", 0
|
|
|
|
section .text
|
|
|
|
global _start
|
|
|
|
_start:
|
|
|
|
; open file in current dir
|
|
mov rax, 2
|
|
mov rdi, localFileName
|
|
xor rsi, rsi
|
|
mov rdx, 0
|
|
syscall
|
|
push rax
|
|
|
|
mov rdi, rax ; file descriptior
|
|
mov rsi, 0 ; offset
|
|
mov rdx, 2 ; whence
|
|
mov rax, 8 ; sys_lseek
|
|
syscall
|
|
|
|
; compare result to actual size
|
|
cmp rax, 11
|
|
jne fail
|
|
|
|
; close the file
|
|
pop rdi
|
|
mov rax, 3
|
|
syscall
|
|
|
|
; open file in root dir
|
|
mov rax, 2
|
|
mov rdi, rootFileName
|
|
xor rsi, rsi
|
|
mov rdx, 0
|
|
syscall
|
|
push rax
|
|
|
|
mov rdi, rax ; file descriptior
|
|
mov rsi, 0 ; offset
|
|
mov rdx, 2 ; whence
|
|
mov rax, 8 ; sys_lseek
|
|
syscall
|
|
|
|
; compare result to actual size
|
|
cmp rax, 37722243
|
|
jne fail
|
|
|
|
; close the file
|
|
pop rdi
|
|
mov rax, 3
|
|
syscall
|
|
|
|
; test successful
|
|
mov rax, 60
|
|
mov rdi, 0
|
|
syscall
|
|
|
|
; test failed
|
|
fail:
|
|
mov rax, 60
|
|
mov rdi, 1
|
|
syscall
|