javap生成的匯編語(yǔ)言指令表

棧和局部變量操作

將常量壓入棧的指令

aconst_null 將null對(duì)象引用壓入棧
iconst_m1 將int類(lèi)型常量-1壓入棧
iconst_0 將int類(lèi)型常量0壓入棧
iconst_1 將int類(lèi)型常量1壓入棧
iconst_2 將int類(lèi)型常量2壓入棧
iconst_3 將int類(lèi)型常量3壓入棧
iconst_4 將int類(lèi)型常量4壓入棧
iconst_5 將int類(lèi)型常量5壓入棧
lconst_0 將long類(lèi)型常量0壓入棧
lconst_1 將long類(lèi)型常量1壓入棧
fconst_0 將float類(lèi)型常量0壓入棧
fconst_1 將float類(lèi)型常量1壓入棧
dconst_0 將double類(lèi)型常量0壓入棧
dconst_1 將double類(lèi)型常量1壓入棧
bipush 將一個(gè)8位帶符號(hào)整數(shù)壓入棧
sipush 將16位帶符號(hào)整數(shù)壓入棧
ldc 把常量池中的項(xiàng)壓入棧
ldc_w 把常量池中的項(xiàng)壓入棧(使用寬索引)
ldc2_w 把常量池中l(wèi)ong類(lèi)型或者double類(lèi)型的項(xiàng)壓入棧(使用寬索引)

從棧中的局部變量中裝載值的指令

iload 從局部變量中裝載int類(lèi)型值
lload 從局部變量中裝載long類(lèi)型值
fload 從局部變量中裝載float類(lèi)型值
dload 從局部變量中裝載double類(lèi)型值
aload 從局部變量中裝載引用類(lèi)型值(refernce)
iload_0 從局部變量0中裝載int類(lèi)型值
iload_1 從局部變量1中裝載int類(lèi)型值
iload_2 從局部變量2中裝載int類(lèi)型值
iload_3 從局部變量3中裝載int類(lèi)型值
lload_0 從局部變量0中裝載long類(lèi)型值
lload_1 從局部變量1中裝載long類(lèi)型值
lload_2 從局部變量2中裝載long類(lèi)型值
lload_3 從局部變量3中裝載long類(lèi)型值
fload_0 從局部變量0中裝載float類(lèi)型值
fload_1 從局部變量1中裝載float類(lèi)型值
fload_2 從局部變量2中裝載float類(lèi)型值
fload_3 從局部變量3中裝載float類(lèi)型值
dload_0 從局部變量0中裝載double類(lèi)型值
dload_1 從局部變量1中裝載double類(lèi)型值
dload_2 從局部變量2中裝載double類(lèi)型值
dload_3 從局部變量3中裝載double類(lèi)型值
aload_0 從局部變量0中裝載引用類(lèi)型值
aload_1 從局部變量1中裝載引用類(lèi)型值
aload_2 從局部變量2中裝載引用類(lèi)型值
aload_3 從局部變量3中裝載引用類(lèi)型值
iaload 從數(shù)組中裝載int類(lèi)型值
laload 從數(shù)組中裝載long類(lèi)型值
faload 從數(shù)組中裝載float類(lèi)型值
daload 從數(shù)組中裝載double類(lèi)型值
aaload 從數(shù)組中裝載引用類(lèi)型值
baload 從數(shù)組中裝載byte類(lèi)型或boolean類(lèi)型值
caload 從數(shù)組中裝載char類(lèi)型值
saload 從數(shù)組中裝載short類(lèi)型值

將棧中的值存入局部變量的指令

istore 將int類(lèi)型值存入局部變量
lstore 將long類(lèi)型值存入局部變量
fstore 將float類(lèi)型值存入局部變量
dstore 將double類(lèi)型值存入局部變量
astore 將將引用類(lèi)型或returnAddress類(lèi)型值存入局部變量
istore_0 將int類(lèi)型值存入局部變量0
istore_1 將int類(lèi)型值存入局部變量1
istore_2 將int類(lèi)型值存入局部變量2
istore_3 將int類(lèi)型值存入局部變量3
lstore_0 將long類(lèi)型值存入局部變量0
lstore_1 將long類(lèi)型值存入局部變量1
lstore_2 將long類(lèi)型值存入局部變量2
lstore_3 將long類(lèi)型值存入局部變量3
fstore_0 將float類(lèi)型值存入局部變量0
fstore_1 將float類(lèi)型值存入局部變量1
fstore_2 將float類(lèi)型值存入局部變量2
fstore_3 將float類(lèi)型值存入局部變量3
dstore_0 將double類(lèi)型值存入局部變量0
dstore_1 將double類(lèi)型值存入局部變量1
dstore_2 將double類(lèi)型值存入局部變量2
dstore_3 將double類(lèi)型值存入局部變量3
astore_0 將引用類(lèi)型或returnAddress類(lèi)型值存入局部變量0
astore_1 將引用類(lèi)型或returnAddress類(lèi)型值存入局部變量1
astore_2 將引用類(lèi)型或returnAddress類(lèi)型值存入局部變量2
astore_3 將引用類(lèi)型或returnAddress類(lèi)型值存入局部變量3
iastore 將int類(lèi)型值存入數(shù)組中
lastore 將long類(lèi)型值存入數(shù)組中
fastore 將float類(lèi)型值存入數(shù)組中
dastore 將double類(lèi)型值存入數(shù)組中
aastore 將引用類(lèi)型值存入數(shù)組中
bastore 將byte類(lèi)型或者boolean類(lèi)型值存入數(shù)組中
castore 將char類(lèi)型值存入數(shù)組中
sastore 將short類(lèi)型值存入數(shù)組中
wide指令
wide 使用附加字節(jié)擴(kuò)展局部變量索引

通用(無(wú)類(lèi)型)棧操作

nop 不做任何操作
pop 彈出棧頂端一個(gè)字長(zhǎng)的內(nèi)容
pop2 彈出棧頂端兩個(gè)字長(zhǎng)的內(nèi)容
dup 復(fù)制棧頂部一個(gè)字長(zhǎng)內(nèi)容
dup_x1 復(fù)制棧頂部一個(gè)字長(zhǎng)的內(nèi)容扔字,然后將復(fù)制內(nèi)容及原來(lái)彈出的兩個(gè)字長(zhǎng)的內(nèi)容壓入棧
dup_x2 復(fù)制棧頂部一個(gè)字長(zhǎng)的內(nèi)容华坦,然后將復(fù)制內(nèi)容及原來(lái)彈出的三個(gè)字長(zhǎng)的內(nèi)容壓入棧
dup2 復(fù)制棧頂部?jī)蓚€(gè)字長(zhǎng)內(nèi)容
dup2_x1 復(fù)制棧頂部?jī)蓚€(gè)字長(zhǎng)的內(nèi)容廊驼,然后將復(fù)制內(nèi)容及原來(lái)彈出的三個(gè)字長(zhǎng)的內(nèi)容壓入棧
dup2_x2 復(fù)制棧頂部?jī)蓚€(gè)字長(zhǎng)的內(nèi)容誉察,然后將復(fù)制內(nèi)容及原來(lái)彈出的四個(gè)字長(zhǎng)的內(nèi)容壓入棧
swap 交換棧頂部?jī)蓚€(gè)字長(zhǎng)內(nèi)容

類(lèi)型轉(zhuǎn)換

i2l 把int類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為long類(lèi)型
i2f 把int類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為float類(lèi)型
i2d 把int類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為double類(lèi)型
l2i 把long類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為int類(lèi)型
l2f 把long類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為float類(lèi)型
l2d 把long類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為double類(lèi)型
f2i 把float類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為int類(lèi)型
f2l 把float類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為long類(lèi)型
f2d 把float類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為double類(lèi)型
d2i 把double類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為int類(lèi)型
d2l 把double類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為long類(lèi)型
d2f 把double類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為float類(lèi)型
i2b 把int類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為byte類(lèi)型
i2c 把int類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為char類(lèi)型
i2s 把int類(lèi)型的數(shù)據(jù)轉(zhuǎn)化為short類(lèi)型

整數(shù)運(yùn)算

iadd 執(zhí)行int類(lèi)型的加法
ladd 執(zhí)行l(wèi)ong類(lèi)型的加法
isub 執(zhí)行int類(lèi)型的減法
lsub 執(zhí)行l(wèi)ong類(lèi)型的減法
imul 執(zhí)行int類(lèi)型的乘法
lmul 執(zhí)行l(wèi)ong類(lèi)型的乘法
idiv 執(zhí)行int類(lèi)型的除法
ldiv 執(zhí)行l(wèi)ong類(lèi)型的除法
irem 計(jì)算int類(lèi)型除法的余數(shù)
lrem 計(jì)算long類(lèi)型除法的余數(shù)
ineg 對(duì)一個(gè)int類(lèi)型值進(jìn)行取反操作
lneg 對(duì)一個(gè)long類(lèi)型值進(jìn)行取反操作
iinc 把一個(gè)常量值加到一個(gè)int類(lèi)型的局部變量上

邏輯運(yùn)算

移位操作

ishl 執(zhí)行int類(lèi)型的向左移位操作
lshl 執(zhí)行l(wèi)ong類(lèi)型的向左移位操作
ishr 執(zhí)行int類(lèi)型的向右移位操作
lshr 執(zhí)行l(wèi)ong類(lèi)型的向右移位操作
iushr 執(zhí)行int類(lèi)型的向右邏輯移位操作
lushr 執(zhí)行l(wèi)ong類(lèi)型的向右邏輯移位操作

按位布爾運(yùn)算

iand 對(duì)int類(lèi)型值進(jìn)行“邏輯與”操作
land 對(duì)long類(lèi)型值進(jìn)行“邏輯與”操作
ior 對(duì)int類(lèi)型值進(jìn)行“邏輯或”操作
lor 對(duì)long類(lèi)型值進(jìn)行“邏輯或”操作

ixor 對(duì)int類(lèi)型值進(jìn)行“邏輯異或”操作
lxor 對(duì)long類(lèi)型值進(jìn)行“邏輯異或”操作

浮點(diǎn)運(yùn)算

fadd 執(zhí)行float類(lèi)型的加法
dadd 執(zhí)行double類(lèi)型的加法
fsub 執(zhí)行float類(lèi)型的減法
dsub 執(zhí)行double類(lèi)型的減法
fmul 執(zhí)行float類(lèi)型的乘法
dmul 執(zhí)行double類(lèi)型的乘法
fdiv 執(zhí)行float類(lèi)型的除法
ddiv 執(zhí)行double類(lèi)型的除法
frem 計(jì)算float類(lèi)型除法的余數(shù)
drem 計(jì)算double類(lèi)型除法的余數(shù)
fneg 將一個(gè)float類(lèi)型的數(shù)值取反
dneg 將一個(gè)double類(lèi)型的數(shù)值取反

對(duì)象和數(shù)組

對(duì)象操作指令

new 創(chuàng)建一個(gè)新對(duì)象
checkcast 確定對(duì)象為所給定的類(lèi)型
getfield 從對(duì)象中獲取字段

putfield 設(shè)置對(duì)象中字段的值
getstatic 從類(lèi)中獲取靜態(tài)字段
putstatic 設(shè)置類(lèi)中靜態(tài)字段的值
instanceof 判斷對(duì)象是否為給定的類(lèi)型

數(shù)組操作指令

newarray 分配數(shù)據(jù)成員類(lèi)型為基本上數(shù)據(jù)類(lèi)型的新數(shù)組
anewarray 分配數(shù)據(jù)成員類(lèi)型為引用類(lèi)型的新數(shù)組
arraylength 獲取數(shù)組長(zhǎng)度
multianewarray 分配新的多維數(shù)組

控制流

條件分支指令

ifeq 如果等于0季稳,則跳轉(zhuǎn)
ifne 如果不等于0劲适,則跳轉(zhuǎn)
iflt 如果小于0满力,則跳轉(zhuǎn)
ifge 如果大于等于0狰住,則跳轉(zhuǎn)
ifgt 如果大于0张吉,則跳轉(zhuǎn)

ifle 如果小于等于0,則跳轉(zhuǎn)
if_icmpcq 如果兩個(gè)int值相等催植,則跳轉(zhuǎn)
if_icmpne 如果兩個(gè)int類(lèi)型值不相等肮蛹,則跳轉(zhuǎn)
if_icmplt 如果一個(gè)int類(lèi)型值小于另外一個(gè)int類(lèi)型值,則跳轉(zhuǎn)
if_icmpge 如果一個(gè)int類(lèi)型值大于或者等于另外一個(gè)int類(lèi)型值创南,則跳轉(zhuǎn)
if_icmpgt 如果一個(gè)int類(lèi)型值大于另外一個(gè)int類(lèi)型值伦忠,則跳轉(zhuǎn)
if_icmple 如果一個(gè)int類(lèi)型值小于或者等于另外一個(gè)int類(lèi)型值,則跳轉(zhuǎn)
ifnull 如果等于null稿辙,則跳轉(zhuǎn)
ifnonnull 如果不等于null昆码,則跳轉(zhuǎn)
if_acmpeq 如果兩個(gè)對(duì)象引用相等,則跳轉(zhuǎn)
if_acmpnc 如果兩個(gè)對(duì)象引用不相等邻储,則跳轉(zhuǎn)

比較指令

lcmp 比較long類(lèi)型值
fcmpl 比較float類(lèi)型值(當(dāng)遇到NaN時(shí)赋咽,返回-1)
fcmpg 比較float類(lèi)型值(當(dāng)遇到NaN時(shí),返回1)
dcmpl 比較double類(lèi)型值(當(dāng)遇到NaN時(shí)吨娜,返回-1)
dcmpg 比較double類(lèi)型值(當(dāng)遇到NaN時(shí)脓匿,返回1)

無(wú)條件轉(zhuǎn)移指令

goto 無(wú)條件跳轉(zhuǎn)
goto_w 無(wú)條件跳轉(zhuǎn)(寬索引)

表跳轉(zhuǎn)指令

tableswitch 通過(guò)索引訪問(wèn)跳轉(zhuǎn)表,并跳轉(zhuǎn)
lookupswitch 通過(guò)鍵值匹配訪問(wèn)跳轉(zhuǎn)表,并執(zhí)行跳轉(zhuǎn)操作

異常

athrow 拋出異常或錯(cuò)誤
finally子句
jsr 跳轉(zhuǎn)到子例程
jsr_w 跳轉(zhuǎn)到子例程(寬索引)
rct 從子例程返回

方法調(diào)用與返回

方法調(diào)用指令

invokcvirtual 運(yùn)行時(shí)按照對(duì)象的類(lèi)來(lái)調(diào)用實(shí)例方法
invokespecial 根據(jù)編譯時(shí)類(lèi)型來(lái)調(diào)用實(shí)例方法
invokestatic 調(diào)用類(lèi)(靜態(tài))方法
invokcinterface 調(diào)用接口方法

方法返回指令

ireturn 從方法中返回int類(lèi)型的數(shù)據(jù)
lreturn 從方法中返回long類(lèi)型的數(shù)據(jù)
freturn 從方法中返回float類(lèi)型的數(shù)據(jù)
dreturn 從方法中返回double類(lèi)型的數(shù)據(jù)
areturn 從方法中返回引用類(lèi)型的數(shù)據(jù)
return 從方法中返回,返回值為void

線程同步

montiorenter 進(jìn)入并獲取對(duì)象監(jiān)視器
monitorexit 釋放并退出對(duì)象監(jiān)視器

JVM指令助記符

變量到操作數(shù)棧:

iload,iload_<n>,lload,lload_<n>,fload,fload_<n>,dload,dload_<n>,aload,aload_<n>

操作數(shù)棧到變量:

istore,istore_<n>,lstore,lstore_<n>,fstore,fstore_<n>,dstore,dstor_<n>,astore,astore_<n>

常數(shù)到操作數(shù)棧:

bipush,sipush,ldc,ldc_w,ldc2_w,aconst_null,iconst_ml,iconst_<i>,lconst_<l>,fconst_<f>,dconst_<d>
加:iadd,ladd,fadd,dadd
減:isub,lsub,fsub,dsub
乘:imul,lmul,fmul,dmul
除:idiv,ldiv,fdiv,ddiv
余數(shù):irem,lrem,frem,drem
取負(fù):ineg,lneg,fneg,dneg
移位:ishl,lshr,iushr,lshl,lshr,lushr
按位或:ior,lor
按位與:iand,land
按位異或:ixor,lxor
類(lèi)型轉(zhuǎn)換:
i2l,i2f,i2d,l2f,l2d,f2d(放寬數(shù)值轉(zhuǎn)換)
i2b,i2c,i2s,l2i,f2i,f2l,d2i,d2l,d2f(縮窄數(shù)值轉(zhuǎn)換)

創(chuàng)建類(lèi)實(shí)例:new
創(chuàng)建新數(shù)組:newarray,anewarray,multianwarray
訪問(wèn)類(lèi)的域和類(lèi)實(shí)例域:getfield,putfield,getstatic,putstatic
把數(shù)據(jù)裝載到操作數(shù)棧:baload,caload,saload,iaload,laload,faload,daload,aaload
從操作數(shù)棧存存儲(chǔ)到數(shù)組:bastore,castore,sastore,iastore,lastore,fastore,dastore,aastore
獲取數(shù)組長(zhǎng)度:arraylength
檢相類(lèi)實(shí)例或數(shù)組屬性:instanceof,checkcast
操作數(shù)棧管理:pop,pop2,dup,dup2,dup_xl,dup2_xl,dup_x2,dup2_x2,swap
有條件轉(zhuǎn)移:
ifeq,iflt,ifle,ifne,ifgt,ifge,ifnull,ifnonnull,if_icmpeq,if_icmpene,
if_icmplt,if_icmpgt,if_icmple,if_icmpge,if_acmpeq,if_acmpne,lcmp,fcmpl
fcmpg,dcmpl,dcmpg
復(fù)合條件轉(zhuǎn)移:tableswitch,lookupswitch
無(wú)條件轉(zhuǎn)移:goto,goto_w,jsr,jsr_w,ret
調(diào)度對(duì)象的實(shí)便方法:invokevirtual
調(diào)用由接口實(shí)現(xiàn)的方法:invokeinterface
調(diào)用需要特殊處理的實(shí)例方法:invokespecial
調(diào)用命名類(lèi)中的靜態(tài)方法:invokestatic
方法返回:ireturn,lreturn,freturn,dreturn,areturn,return
異常:athrow
finally關(guān)鍵字的實(shí)現(xiàn)使用:jsr,jsr_w,ret

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酬蹋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驰唬,老刑警劉巖份汗,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異精拟,居然都是意外死亡燎斩,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)蜂绎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)栅表,“玉大人,你說(shuō)我怎么就攤上這事师枣」制浚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵践美,是天一觀的道長(zhǎng)洗贰。 經(jīng)常有香客問(wèn)我找岖,道長(zhǎng),這世上最難降的妖魔是什么敛滋? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任许布,我火速辦了婚禮,結(jié)果婚禮上绎晃,老公的妹妹穿的比我還像新娘蜜唾。我一直安慰自己,他們只是感情好庶艾,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布袁余。 她就那樣靜靜地躺著,像睡著了一般咱揍。 火紅的嫁衣襯著肌膚如雪泌霍。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天述召,我揣著相機(jī)與錄音朱转,去河邊找鬼。 笑死积暖,一個(gè)胖子當(dāng)著我的面吹牛藤为,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播夺刑,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼缅疟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了遍愿?” 一聲冷哼從身側(cè)響起存淫,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沼填,沒(méi)想到半個(gè)月后桅咆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坞笙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年岩饼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薛夜。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡籍茧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出梯澜,到底是詐尸還是另有隱情寞冯,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站吮龄,受9級(jí)特大地震影響檬某,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜螟蝙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一恢恼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胰默,春花似錦场斑、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至奴迅,卻和暖如春青责,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背取具。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工脖隶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人暇检。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓产阱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親块仆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子构蹬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容