how to print a long string using lodsl/ or any other way?

hello to all.. i am trying to copy a long string from a string in data section to a register and then back to a variable (in GNU Assembler). [code]
.data
hello:
.asciz "hello world
"
.bss
.lcomm stringpointer, 20
.text
.globl _start
_start:
leal hello,%esi
lodsl #LOADING CONTENTS OF HELLO TO %EAX
leal stringpointer,%edi
stosl #LOADING TO A VAR.-STRINGPOINTER
movl $4,%eax
movl $1,%ebx
movl $stringpointer,%ecx
movl $12,%edx
int $0x80

movl $1,%eax #STARTING PRINT ROUTINE
movl $7,%ebx
int $0x80

[/code]

But after execution it copies only 4 characters to variable & followed by prints 4 characters to screen.

Also if i don't use "leal" and "lodsl" and "stosl", and move the contents using pointer:-
[code]
movl $hello,stringpointer
[/code]
and then using print routine to print to screen, A scrap kind of value gets printed. I guess it is ASCII value of something.
Anyone plz guide what to do.(I am a beginner in assembly language.). Thanks in advance
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories