Howdy, Stranger!

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

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

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.