2016-08-09 82 views
-1

Ich versuche, zwei Zeichenfolgen in Assembler Sprache zu verketten.Speichern Sie eine Zeichenfolge in Register

mov esi, str1 
mov eax, str1 
mov edx, [str2] 
call slen 
mov [esi+eax-1], edx 

image

Alles funktioniert genau in Ordnung, außer, dass nur 4 Zeichen der zweiten Zeichenkette angehängt wird. Ich kenne den Grund für sein Auftreten, aber ich kann keine Lösung finden.

+0

NASM und Mikroprozessor-Tags können nicht zusammenpassen .... NASM ist nur für Intel. – m0skit0

+3

Die Lösung beinhaltet die Verwendung von Zeigern. Das Buch, das Sie zum Programmieren verwenden, sollte das abdecken, aber Sie müssen bis später warten. Sie müssen Integer-Operationen zuerst verstehen. –

+1

Dies kann ein wenig helfen, "Strings" (mehr wie Datenblock) in ASM zu verstehen: http://stackoverflow.com/a/38831846/4271923 – Ped7g

Antwort

3

Sie können keine Zeichenfolge in einem Register speichern. Sie muss gleich oder kleiner als die Registergröße sein (vorausgesetzt, wir sprechen über ASCII-codierte Strings), weil ein Register eine feste Größe hat.