@ExRevel dein CMPSB ist schon richtig, nur das vergleicht nur den 1. character. REP CMPSB vergleicht einen String bei DS:SI mit einem String bei ES
I. Dafür muss die Stringlänge vorher in CX:
Code:
movzx cx, byte ptr [passw] ; hier steht die länge des strings, als byte
mov si, offset passw+1 ; source
mov di, offset Buffer+1 ; destination
rep cmpsb ; vergleichen
test cx,cx ; wenn CX=0, war der String derselbe
jz passw_richtig
Hier stimmt noch was nicht:
Code:
Buffer db ? ;Buffer für 0Ah
db ?
Damit reservierst du nur 1 byte für den Buffer. Wenn du 4 bytes haben willst, musst du 5 bytes reservieren:
Code:
Buffer db 4
db 5 dup(?)
Weil du ein byte zusätzlich für ENTER brauchst, wenn ich mich richtig erinnere.
[Dieser Beitrag wurde von toxic am 07. Juni 2001 editiert.]