Garnicht.
In Assembler gibt es keine Strings.
string db "test"
Ist das gleiche wie
string:
db 't'
db 'e'
db 's'
db 't'
und weißt den Assembler nur an, ein Label mit dem Namen string zu erstellen, und dahinter dann 4 Bytes, welche die ASCII Codes der Buchstaben enthalten, in die Ausgabedatei zu schreiben.
Um String aneinander zu fügen brauchst du sowas:
strcat:
; string1 in ESI
; size von string1 in ECX
; string2 in EBX
; size von string2 in EAX
: buffer fürs ergebniss in EDI
; buffer in edi, string1 in esi, size1 in ecx
; kopieren
rep movsb
; buffer in edi, string2 in esi, size2 in ecx
mov ecx, eax
mov esi, ebx
; kopieren
rep movsb
; zurückkehren
ret
buffer resb 32
string1 db "abc"
string2 db "xyz"
mov esi, string1
mov ecx, 4
mov ebx, string2
mov eax, 4
mov edi, buffer
call strcat
Das Beispiel ist für den Protected Mode gedacht. Im RM sind die Pointer kleiner (AX statt EAX nutzen usw.) und du musst auf Segmente achten.