文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
3. 字符串
使用单引号( '
)、双引号( "
),或反引号( `
)定义字符串。
反引号 支持 C 样式转义,支持
\u
、\x
UTF-8 编码。字符常量被当作最长 8 字节的小端整数。作为 .data 初始化值时代表连续字节。
hello: db `\u6c49\xe5\xad\x97 \u263a \n\0` ; 汉字, ☺ (newline and null-terminated)
使用 rep movs
指令移动字符串。
movs
使用rsi
、rdi
作为源和目标地址;rep
使用rcx
作为计数器。
global _start section .data source: db "abcdefghijklmn" section .bss target: resb 50 section .text _start: ; movem mov rsi, source mov rdi, target mov rcx, 4 rep movsb exit: mov rax, 60 xor rdi, rdi syscall
(gdb) b exit (gdb) r (gdb) x/14xb &source 0x402000: 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x402008: 0x69 0x6a 0x6b 0x6c 0x6d 0x6e (gdb) x/4xb &target 0x402010: 0x61 0x62 0x63 0x64
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论