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 跳转的内容是新地址里面存储的地址内容

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。