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!