Swift - 匯編-2

/*
//字符串長度<= 0xF,字符串內(nèi)容直接存放在str1變量的內(nèi)存中

var str1 = "0123456789"

//字符串長度> 0xF, 字符串內(nèi)容存放在__ .TEXT.cstring中 (常量區(qū))

//字符串的地址値信息存放在str2変量的后8個(gè)字や中

var str2 = "0123456789ABCDEF"

// 由于字符串長度<= 0xF,所以字符串內(nèi)容依然存放在str1變量的內(nèi)存中

str1. append ( " ABCDE" )

//開辟堆空間.

str1. append("F")

//開辟堆空間.

str2. append("G" )

0x10000a3ce jmpq *0x2c4c (%rip)
jmpq作用: rip 的地址值加上 0x2c4c 得到的新地址,然后跳轉(zhuǎn)到新地址的里面的地址值

rip 的地址值是當(dāng)前指令的下一條執(zhí)行的地址值,如果只有一條指令,則rip的地址為當(dāng)前指令的地址 加上 當(dāng)前匯編指令占用字節(jié)數(shù),如下圖中

image

當(dāng)前方法只有一條指令,所以 rip 的地址為 0x10000a3ce + 6(當(dāng)前匯編指令占用字節(jié)數(shù))
新地址為 rip + 0x2c4c
jmpq 跳轉(zhuǎn)的內(nèi)容是新地址里面存儲(chǔ)的地址內(nèi)容

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容