Is this what you're trying to do? (approximately)
; nasm -f elf isy.asm
; ld -o isy isy.o
global _start
section .data
string db "A user defined string" ; 21 bytes
string_size equ $ - string
section .text
_start:
nop
mov eax, [string]
mov [0x8049500], eax ; a "known" good address
mov eax, [string + 4]
mov [0x8049504], eax
mov eax, [string + 8]
mov [0x8049508], eax
mov eax, [string + 12]
mov [0x804950C], eax
mov eax, [string + 16]
mov [0x8049510], eax
mov al, [string + 20]
mov [0x8049514], al
; did it work?
mov edx, string_size
mov ecx, 0x8049500
mov ebx, 1
mov eax, 4
int 0x80
exit:
mov bl, 0
mov eax, 1
int 0x80
Best,
Frank