Это 16-битный код x86. Я сохранил каждую команду, например, команду "hi"
cmd_hi db 'hi', 0
тогда я получаю строку ввода, используя
mov di, sp ; get input
call get_string
jcxz loop_start ; blank line?
и сравните его с сохраненной командой
mov si, sp
mov di, cmd_hi ; "hi" command
call strcmp
je .greetme
с использованием цикла strcmp
strcmp:
.loop_start:
mov al, [si] ; grab a byte from SI
cmp al, [di] ; are SI and DI equal?
jne .done ; no, we're done.
test al, al ; zero?
jz .done ; yes, we're done.
inc di ; increment DI
inc si ; increment SI
jmp .loop_start ; loop!
.done:
ret
но теперь я хочу добавить независимые параметры в мою функцию, например 2 дюйма, например,
cmd> hi 1 2
Каков наилучший способ разбора аргументов таким образом?