Assembly組合 MOVS指令


MOVS指令是用來複製一個資料項(位元組,字或雙字)從源字串到目標字串。源字串指出由DS:SI和ES:DI指向目標字串。

下面的例子解釋了這個概念:

section	.text
    global _start         ;must be declared for using gcc
_start:	;tell linker entry yiibai
	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

上面的程式碼編譯和執行時,它會產生以下結果:

Hello, world!