/*
//字符串长度<= 0xF,字符串内容直接存放在str1变量的内存中
var str1 = "0123456789"
//字符串长度> 0xF, 字符串内容存放在__ .TEXT.cstring中 (常量区)
//字符串的地址値信息存放在str2変量的后8个字や中
var str2 = "0123456789ABCDEF"
// 由于字符串长度<= 0xF,所以字符串内容依然存放在str1变量的内存中
str1. append ( " ABCDE" )
//开辟堆空间.
str1. append("F")
//开辟堆空间.
str2. append("G" )
0x10000a3ce jmpq *0x2c4c (%rip)
jmpq作用: rip 的地址值加上 0x2c4c 得到的新地址,然后跳转到新地址的里面的地址值
rip 的地址值是当前指令的下一条执行的地址值,如果只有一条指令,则rip的地址为当前指令的地址 加上 当前汇编指令占用字节数,如下图中
image当前方法只有一条指令,所以 rip 的地址为 0x10000a3ce + 6(当前汇编指令占用字节数)
新地址为 rip + 0x2c4c
jmpq 跳转的内容是新地址里面存储的地址内容
网友评论