diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-04-17 18:14:42 +0200 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-04-17 18:14:42 +0200 |
commit | 9f46f4559625d62bd8d289e9ac75dc6369d7e7ed (patch) | |
tree | 4342a73e97ba98504a806645aea81de1336b862d /asm | |
parent | Starting the main program, bus error somehow (diff) | |
download | lowbat-bsd-9f46f4559625d62bd8d289e9ac75dc6369d7e7ed.tar.gz lowbat-bsd-9f46f4559625d62bd8d289e9ac75dc6369d7e7ed.tar.bz2 lowbat-bsd-9f46f4559625d62bd8d289e9ac75dc6369d7e7ed.tar.xz lowbat-bsd-9f46f4559625d62bd8d289e9ac75dc6369d7e7ed.tar.zst lowbat-bsd-9f46f4559625d62bd8d289e9ac75dc6369d7e7ed.zip |
Still bus error, it's not willing to print
Diffstat (limited to 'asm')
-rw-r--r-- | asm/jo_c_args.asm | 39 | ||||
-rw-r--r-- | asm/jo_r_lowbat.asm | 31 |
2 files changed, 66 insertions, 4 deletions
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 |