[asm] Analiza tekstu

0
Uruchom:
 Mov si, UserCmd
 Cmp BYTE [si], 0
 Je Koniec
cmd_version:
 Mov si, UserCmd
 Mov di, cmdVersion
 Mov cx, 7
 Repe Cmpsb
 Jne cmd_unk
 JMP End
cmd_unk:
 Mov si, OsUnknown
 Call Pisz
 End:
Ret

ZMIENNE:
OsVersion db 'Nazwa systemu: xxxOS.',13,10,0
OsUnknown db 'Nieznane polecenie.',13,10,0

cmdVersion db 'wersja',0

A pytanie brzmi, czemu jak wpisze "wersja" to wyskakuje napis że "Nieznane polecenie."?

0

A może byś powiedział co to za kompilator, na jaki system operacyjny. To wygląda bardzo dziko jak dla mnie...

0

mogę tylko przypuszczać, poniewaz nie wiem wielu rzeczy o tym kodzie, ale radzę sprawdzić: czy UserCMD konczy sie zerem? radze dac w linii 8 mov cx, 7 i sprawdzic czy dziala.

0

Przecież jest w 8 lini Mov cx, 7 i tak nie działa.

0

Myśle, że __black_coder chciał powiedzieć mov cx,6
Jak porównujesz 7 znaków to razem z kończącym zerem, a nie wiadomo czy to zero występuje w ciągu znaków w pobranej komendzie UserCmd. Dlatego lepiej porównywać tylko 6 znaków liter. Jak zamiana mov cx,7 -> mov cx,6 nie zadziała to podaj kod pobierania komendy UserCmd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1