pinosaur
/
sped.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
reading command line arg
[sped.git]
/
sped.asm
diff --git
a/sped.asm
b/sped.asm
index
6230c85
..
eda67b3
100644
(file)
--- a/
sped.asm
+++ b/
sped.asm
@@
-1,4
+1,8
@@
+global main
+extern printf
+
+; macros
%macro write_str 2
mov eax, 4
mov ebx, 1
%macro write_str 2
mov eax, 4
mov ebx, 1
@@
-8,14
+12,41
@@
%endmacro
section .data
%endmacro
section .data
- msg db "SPED - the stupidly pointless editor", 0x0a
- len equ $ - msg
+ banner_str db `SPED - the stupidly pointless editor\n`, 0x00
+ readfile_str db `reading file %s\n`, 0x00
+ nofile_str db `no file provided\n`, 0x00
+ argcount_str db `there are %d args\n`, 0x00
section .text
section .text
-global _start
-_start:
- write_str msg, len
+main:
+ push ebp
+ mov ebp, esp
+
+ ; read command line args
+ mov ecx, [ebp+8]
+ cmp ecx, 1
+ jg .readFile
+
+ ; display error msg if no file
+ push nofile_str
+ call printf
mov eax, 1
mov eax, 1
- mov ebx, 42
- int 0x80
+ jmp .exit
+
+.readFile:
+
+ mov ebx, DWORD [ebp+12]
+ add ebx, 4
+ push DWORD [ebx]
+ push readfile_str
+ call printf
+
+ mov eax, 0
+ jmp .exit
+
+.exit:
+ mov esp, ebp
+ pop ebp
+ ret
+