Uploading pretty much finished program...
This commit is contained in:
parent
03cf02451a
commit
e59bda0b16
7
compile.sh
Normal file
7
compile.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -xe
|
||||
|
||||
gcc -g -ansi -Wall -Wextra -Wpedantic -Werror -o xop xop.c
|
||||
|
||||
exit
|
BIN
example/heyo
Executable file
BIN
example/heyo
Executable file
Binary file not shown.
28
example/heyo.fasm
Normal file
28
example/heyo.fasm
Normal file
@ -0,0 +1,28 @@
|
||||
format ELF64 executable 3
|
||||
|
||||
segment readable executable
|
||||
|
||||
nop
|
||||
mov rax, 1
|
||||
nop
|
||||
mov rdi, 1
|
||||
nop
|
||||
mov rsi, string
|
||||
nop
|
||||
mov rdx, [length]
|
||||
nop
|
||||
syscall
|
||||
|
||||
nop
|
||||
mov rax, 60
|
||||
nop
|
||||
mov rdi, 0
|
||||
nop
|
||||
syscall
|
||||
|
||||
nop
|
||||
|
||||
segment readable writable
|
||||
|
||||
string db 'Heyo world!', 10
|
||||
length dq 12
|
7
install.sh
Normal file
7
install.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -xe
|
||||
|
||||
cp xop /usr/bin/xop
|
||||
|
||||
exit
|
51
xop.c
Normal file
51
xop.c
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (c) 2023 : Ognjen 'xolatile' Milan Robovic
|
||||
*
|
||||
* Xop is free software! You will redistribute it or modify it under the terms of the GNU General Public License by Free Software Foundation.
|
||||
* And when you do redistribute it or modify it, it will use either version 3 of the License, or (at yours truly opinion) any later version.
|
||||
* It is distributed in the hope that it will be useful or harmful, it really depends... But no warranty what so ever, seriously. See GNU/GPLv3.
|
||||
*/
|
||||
|
||||
#include <xolatile/xtandard.h>
|
||||
#include <xolatile/xtandard.c>
|
||||
|
||||
int main (int argc, char * * argv) {
|
||||
int file = -1;
|
||||
int size = 0;
|
||||
int offset = 0;
|
||||
|
||||
unsigned char * buffer = NULL;
|
||||
|
||||
if (argc != 2) {
|
||||
fatal_failure (1, "xop: xop input");
|
||||
}
|
||||
|
||||
file = file_open (argv [1], O_RDONLY);
|
||||
size = file_size (file);
|
||||
|
||||
buffer = allocate (size);
|
||||
|
||||
file_read (file, buffer, size);
|
||||
|
||||
file = file_close (file);
|
||||
|
||||
do {
|
||||
int byte = (int) buffer [offset];
|
||||
if (byte == 0X90) {
|
||||
echo_new_line ();
|
||||
terminal_style (EFFECT_NORMAL, COLOUR_YELLOW);
|
||||
echo_byte ((int) buffer [offset]);
|
||||
terminal_style (-1, -1);
|
||||
} else {
|
||||
echo_byte (buffer [offset]);
|
||||
}
|
||||
|
||||
++offset;
|
||||
} while (offset != size);
|
||||
|
||||
echo_new_line ();
|
||||
|
||||
buffer = deallocate (buffer);
|
||||
|
||||
return (EXIT_SUCCESS);
|
||||
}
|
Loading…
Reference in New Issue
Block a user