; Filename: Strings-64.nasm ; Author: Vivek Ramachandran ; Website: http://securitytube.net ; Training: http://securitytube-training.com ; ; ; Purpose: String Operations in 64-bit CPU global _start section .text _start: ; Movsb/w/d/q ; Memory to Memory cld lea rsi, [HelloWorld] lea rdi, [Copy] movsq cld lea rsi, [HelloWorld] xor rax, rax mov qword [Copy], rax lea rdi, [Copy] mov rcx, len rep movsb ; stosb/w/d/q ; Register to Memory mov rax, 0x0123456789abcdef lea rdi, [var1] stosq ; lodsb/w/d/q ; Memory to Register xor rax, rax lea rsi, [var1] lodsq ; exit the program gracefully mov rax, 0x3c mov rdi, 0 syscall section .data HelloWorld: db "Hello World" len: equ $-HelloWorld section .bss Copy: resb len var1: resb 8