Montage - Instruction MOVS

L'instruction MOVS est utilisée pour copier un élément de données (octet, mot ou double mot) de la chaîne source vers la chaîne de destination. La chaîne source est pointée par DS: SI et la chaîne de destination est pointée par ES: DI.

L'exemple suivant explique le concept -

section	.text
   global _start        ;must be declared for using gcc
	
_start:	                ;tell linker entry point
   mov	ecx, len
   mov	esi, s1
   mov	edi, s2
   cld
   rep	movsb
	
   mov	edx,20	        ;message length
   mov	ecx,s2	        ;message to write
   mov	ebx,1	        ;file descriptor (stdout)
   mov	eax,4	        ;system call number (sys_write)
   int	0x80	        ;call kernel
	
   mov	eax,1	        ;system call number (sys_exit)
   int	0x80	        ;call kernel
	
section .data
s1 db 'Hello, world!',0 ;string 1
len equ $-s1

section	 .bss
s2 resb	20              ;destination

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Hello, world!