1
0
mirror of https://gitlab.os-k.eu/os-k-team/kvisc.git synced 2023-08-25 14:05:46 +02:00
This commit is contained in:
julianb0 2019-07-15 20:46:00 +02:00
parent 3ab03703f4
commit 778c56cc60
No known key found for this signature in database
GPG Key ID: DDF8325C95299A62
6 changed files with 25 additions and 20 deletions

9
fs/abcdef.txt Normal file
View File

@ -0,0 +1,9 @@
abc
def
ghi
jkl
mno
pqr
stu
vwx
yz$

0
fs/empty.txt Normal file
View File

View File

@ -6,7 +6,6 @@
; int doprnt(PUTC putc, int n, const char *fmt, va_list ap) ; int doprnt(PUTC putc, int n, const char *fmt, va_list ap)
; ;
doprnt: doprnt:
dump 0
enter 8 enter 8
mov q[rbp-8], rbx mov q[rbp-8], rbx
@ -30,9 +29,9 @@ doprnt:
mov rdi, rbx mov rdi, rbx
scasb.rep.nz rdi, '%' scasb.rep.nz rdi, '%'
.print_regular:
; everything below rdi is a regular character; print it ; everything below rdi is a regular character; print it
b.e rbx, rdi, .check_modf .print_regular:
b.z rbx, rdi, .check_modf
mov ax0, b[rbx] mov ax0, b[rbx]
call .doput call .doput
@ -49,14 +48,14 @@ doprnt:
mov rax, b[rbx+1] mov rax, b[rbx+1]
add rbx, 2 add rbx, 2
b.e rax, 's', .modf_s b.z rax, 's', .modf_s
b.e rax, 'c', .modf_c b.z rax, 'c', .modf_c
b.e rax, 'p', .modf_p b.z rax, 'p', .modf_p
b.e rax, 'x', .modf_x b.z rax, 'x', .modf_x
b.e rax, 'd', .modf_d b.z rax, 'd', .modf_d
b.e rax, 'o', .modf_o b.z rax, 'o', .modf_o
b.e rax, 'b', .modf_b b.z rax, 'b', .modf_b
b.e rax, '%', .modf_percent b.z rax, '%', .modf_percent
; unrecognized ; unrecognized
jmp .bad_modifier jmp .bad_modifier
@ -176,7 +175,6 @@ doprnt:
mov rsi, q[rbp-48] mov rsi, q[rbp-48]
mov nx3, q[rbp-56] mov nx3, q[rbp-56]
leave leave
dump 1
ret ret
; ;
; prints ax0 ; prints ax0

View File

@ -13,7 +13,6 @@ putc:
; int printf(const char *fmt, ...) ; int printf(const char *fmt, ...)
; ;
printf: printf:
dump 0
mov ax2, ax0 mov ax2, ax0
mov ax0, putc mov ax0, putc
mov ax1, STRLEN_MAX mov ax1, STRLEN_MAX
@ -24,7 +23,6 @@ printf:
; int nprintf(const char *fmt, int n, ...) ; int nprintf(const char *fmt, int n, ...)
; ;
nprintf: nprintf:
dump 0
mov ax2, ax0 mov ax2, ax0
mov ax0, putc mov ax0, putc
lea ax3, b[rsp+8] lea ax3, b[rsp+8]

View File

@ -30,6 +30,7 @@ main:
.input_loop: .input_loop:
pause pause
pause pause
pause
; Fill .buf with user input ; Fill .buf with user input
scan rax scan rax

View File

@ -55,18 +55,17 @@
match-empty-string-at-end = "TRUE"> match-empty-string-at-end = "TRUE">
<!-- KVISC --> <!-- KVISC -->
<keyword>(inv|flg|[re]?pc)</keyword> <keyword>(inv|flg|[re]pc)</keyword>
<keyword>[re]?[abcd]xl?</keyword> <keyword>[re][abcdfg]x</keyword>
<keyword>[re]?[sd]il?</keyword> <keyword>[re][sd]i</keyword>
<keyword>[re]?[sbi]pl?</keyword> <keyword>[re][sbi]p</keyword>
<keyword>[a-z]x?[0-9]+[bwdlq]?</keyword> <keyword>[a-z]x?[0-9]+[bwdlq]?</keyword>
<!-- x86-64 --> <!-- x86-64 -->
<keyword>[c-gs]s</keyword> <keyword>[c-gs]s</keyword>
<keyword>[re]flags</keyword> <keyword>[re]flags</keyword>
<keyword>([gil]d)tr</keyword> <keyword>([gil]d)tr</keyword>
<keyword>[x-z]mm[0-9]+</keyword> <keyword>[x-z]?mmx?[0-9]+</keyword>
<keyword>[re]?[a-d][xhl]</keyword>
<keyword>(s[at]|[dc]r)[0-9]+</keyword> <keyword>(s[at]|[dc]r)[0-9]+</keyword>
</keyword-list> </keyword-list>