From 9f46f4559625d62bd8d289e9ac75dc6369d7e7ed Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Fri, 17 Apr 2020 18:14:42 +0200 Subject: Still bus error, it's not willing to print --- asm/jo_c_args.asm | 39 +++++++++++++++++++++++++++++++++++++++ asm/jo_r_lowbat.asm | 31 +++++++++++++++++++++++++++---- 2 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 asm/jo_c_args.asm (limited to 'asm') diff --git a/asm/jo_c_args.asm b/asm/jo_c_args.asm new file mode 100644 index 0000000..47a2032 --- /dev/null +++ b/asm/jo_c_args.asm @@ -0,0 +1,39 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; File : jo_c_args.asm /_________/ ;; +;; Author : Joe | ;; +;; Date : 04/2020 | ;; +;; Info : Check args | ;; +;; / | ;; +;; \ / ;; +;; \_____/ ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +section .text + extern strncmp + global jo_c_args + +jo_c_args: ; jo_c_args(argc: rdi, *argv[]: rdi) + cmp rdi, 0x2 + jle no_args + push rdi + mov rdi, [rsi + 4 * 0] + push rsi + mov rsi, reference + mov rdx, len + call strncmp + pop rsi + pop rdi + cmp rax, 0x0 + jne no_args + mov rax, [rsi + 4 * 0] + retq + +no_args: + xor rax, rax + retq + +section .data + reference: db "--say", 0x0 + len: equ $ - reference ; reference len diff --git a/asm/jo_r_lowbat.asm b/asm/jo_r_lowbat.asm index 42863b4..5c9b2b7 100644 --- a/asm/jo_r_lowbat.asm +++ b/asm/jo_r_lowbat.asm @@ -10,18 +10,41 @@ ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Files prefixes +;; -------------- +;; f: fetch +;; n: notify +;; r: run +;; c: check + section .text - extern sleep + extern printf extern jo_n_speak + extern jo_c_args global jo_r_lowbat jo_r_lowbat: - mov rdi, 0x2 - call sleep + call jo_c_args + cmp rax, 0x0 + jne joprint + push rdi mov rdi, msg call jo_n_speak + pop rdi xor rax, rax + mov rax, rdi + retq + +joprint: + push rdi + push rsi + mov rdi, fmt + mov rsi, rax + call printf + pop rsi + pop rdi retq section .data - msg: db "Welcome back, partner", 0x0 + msg: db "Welcome back, partner!", 0x0 + fmt: db "argv[2]: %s\n", 0x0 -- cgit v1.2.3