Ich schrieb eine Kopie Zeichenfolge Verfahren in masm32Kopie String Prozedur Montage
coppystring proc uses esi edi ecx source:dword,dest:dword
mov esi, OFFSET source
mov edi, OFFSET dest
mov ecx, SIZEOF source
Lx:
mov al,[esi]
mov [edi],al
inc esi
inc edi
loop Lx
coppystring endp
Dieser Code mich
A2098 ungültiger Operand für OFFSET
Der Ausdruck nach dem OFFSET Bedienungsfehler ergibt muss ein Speicherausdruck oder ein unmittelbarer Ausdruck sein. Aber immer noch weiß ich nicht, wie ich meine proc beheben kann
Irgendwie obwohl, was Sie versuchen zu tun - 'source' und' dest' sind wahrscheinlich Zeiger, die auf dem Stapel als Parameter gespeichert sind. Sie sollten diese Adressen auf diese Weise erhalten können. 'mov esi, source' und' mov edi, dest'. Ich nehme an, dass "source" und "dest" Zeiger auf übergebene Strings sind. Auch 'SIZEOF source' gibt Ihnen nicht die String-Länge, es gibt Ihnen die Größe von' source', was ein 'dword' ist. Die Größe ist also immer 4. Sie möchten wahrscheinlich eine Schleife erstellen, die kopiert, bis das NUL (0) -Zeichen gefunden wird, oder die Anzahl der zu kopierenden Zeichen als dritten Parameter übergeben. –