Swift - 汇编-2

/*
//字符串长度<= 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 跳转的内容是新地址里面存储的地址内容

你可能感兴趣的:(Swift - 汇编-2)