start 04
This commit is contained in:
parent
31c9f4ca2a
commit
b48712f9c9
6 changed files with 190 additions and 0 deletions
7
04a/Makefile
Normal file
7
04a/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
all: out03
|
||||
out03: in03 ../03/out02
|
||||
../03/out02
|
||||
%.html: %.md ../markdown
|
||||
../markdown $<
|
||||
clean:
|
||||
rm -f out* README.html
|
74
04a/in03
Normal file
74
04a/in03
Normal file
|
@ -0,0 +1,74 @@
|
|||
I=8S
|
||||
A=d3
|
||||
?I!A:usage_error
|
||||
; open input file
|
||||
J=S
|
||||
; argv[1] is at *(rsp+16)
|
||||
J+=d16
|
||||
J=8J
|
||||
I=d0
|
||||
syscall x2
|
||||
J=A
|
||||
?J<0:input_file_error
|
||||
; open output file
|
||||
J=S
|
||||
; argv[2] is at *(rsp+24)
|
||||
J+=d24
|
||||
J=8J
|
||||
I=x241
|
||||
D=x1ed
|
||||
syscall x2
|
||||
J=A
|
||||
?J<0:output_file_error
|
||||
J=d0
|
||||
syscall x3c
|
||||
|
||||
:usage_error
|
||||
B=:usage_error_message
|
||||
call :error
|
||||
|
||||
:usage_error_message
|
||||
str Please provide an input and an output file.
|
||||
xa
|
||||
x0
|
||||
|
||||
:input_file_error
|
||||
B=:input_file_error_message
|
||||
!:error
|
||||
|
||||
:input_file_error_message
|
||||
str Couldn't open input file.
|
||||
xa
|
||||
x0
|
||||
|
||||
:output_file_error
|
||||
B=:output_file_error_message
|
||||
!:error
|
||||
|
||||
:output_file_error_message
|
||||
str Couldn't open output file.
|
||||
xa
|
||||
x0
|
||||
|
||||
:error
|
||||
J=B
|
||||
call :strlen
|
||||
D=A
|
||||
I=J
|
||||
J=d2
|
||||
syscall x1
|
||||
J=d1
|
||||
syscall x3c
|
||||
|
||||
:strlen
|
||||
I=B
|
||||
D=B
|
||||
:strlen_loop
|
||||
C=1I
|
||||
?C=0:strlen_ret
|
||||
I+=d1
|
||||
!:strlen_loop
|
||||
:strlen_ret
|
||||
I-=D
|
||||
A=I
|
||||
return
|
3
04a/in04a
Normal file
3
04a/in04a
Normal file
|
@ -0,0 +1,3 @@
|
|||
#define A 777
|
||||
#define B 226
|
||||
A+B
|
Loading…
Add table
Add a link
Reference in a new issue