libc.obj: translate crt0.asm
Some checks failed
Build system / Build (pull_request) Failing after 1s
Build system / Check kernel codestyle (pull_request) Successful in 1m14s

This commit is contained in:
2026-01-24 11:20:51 +05:00
parent eee5a71fdd
commit 8e6c43113a

View File

@@ -39,36 +39,36 @@ start:
call push_param call push_param
; retrieving parameters ; retrieving parameters
mov esi, params mov esi, params
xor edx, edx ; dl - идёт параметр(1) или разделители(0) xor edx, edx ; dl - is it a parameter (1) or delimiters (0)
; dh - символ с которого начался параметр (1 кавычки, 0 остальное) ; dh - character with which the parameter started (1 quotes, 0 everything else)
mov ecx, 1 ; cl = 1 mov ecx, 1 ; cl = 1
; ch = 0 просто ноль ; ch = 0 just zero
.parse: .parse:
lodsb lodsb
test al, al test al, al
jz .run jz .run
test dl, dl test dl, dl
jnz .findendparam jnz .findendparam
;{если был разделитель ;{if it was a delimiter
cmp al, ' ' cmp al, ' '
jz .parse ;загружен пробел, грузим следующий символ jz .parse ; space loaded, load next character
mov dl, cl ;начинается параметр mov dl, cl ; parameter starts
cmp al, '"' cmp al, '"'
jz @f ;загружены кавычки jz @f ; quotes loaded
mov dh, ch ;параметр без кавычек mov dh, ch ; parameter without quotes
dec esi dec esi
call push_param call push_param
inc esi inc esi
jmp .parse jmp .parse
@@: @@:
mov dh, cl ;параметр в кавычеках mov dh, cl ; parameter in quotes
call push_param ;если не пробел значит начинается какой то параметр call push_param ; if not a space, then some parameter starts
jmp .parse ;если был разделитель} jmp .parse ; if it was a delimiter}
.findendparam: .findendparam:
test dh, dh test dh, dh
jz @f ; без кавычек jz @f ; without quotes
cmp al, '"' cmp al, '"'
jz .clear jz .clear
jmp .parse jmp .parse