libc.obj: translate crt0.asm
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user