|
分類
|
限定符
|
描述
|
|
通用寄存器
|
“a”
|
將輸入變量放入eax
|
|
“b”
|
將輸入變量放入ebx
|
|
“c”
|
將輸入變量放入ecx
|
|
“d”
|
將輸入變量放入edx
|
|
“s”
|
將輸入變量放入esi
|
|
“d”
|
將輸入變量放入edi
|
|
“q”
|
將輸入變量放入eax,ebx,ecx,edx中的一個(gè)
|
|
“r”
|
將輸入變量放入通用寄存器,即eax,ebx,ecx,edx,esi,edi之一
|
|
“A”
|
把eax和edx合成一個(gè)64 位的寄存器(use long longs)
|
|
內(nèi)存
|
“m”
|
內(nèi)存變量
|
|
“o”
|
操作數(shù)為內(nèi)存變量,但其尋址方式是偏移量類型, 也即基址尋址
|
|
“V”
|
操作數(shù)為內(nèi)存變量,但尋址方式不是偏移量類型
|
|
“ ”
|
操作數(shù)為內(nèi)存變量,但尋址方式為自動(dòng)增量
|
|
“p”
|
操作數(shù)是一個(gè)合法的內(nèi)存地址(指針)
|
|
寄存器或內(nèi)存
|
“g”
|
將輸入變量放入eax,ebx,ecx,edx之一,或作為內(nèi)存變量
|
|
“X”
|
操作數(shù)可以是任何類型
|
|
立即數(shù)
|
“I”
|
0-31之間的立即數(shù)(用于32位移位指令)
|
|
“J”
|
0-63之間的立即數(shù)(用于64位移位指令)
|
|
“N”
|
0-255之間的立即數(shù)(用于out指令)
|
|
“i”
|
立即數(shù)
|
|
“n”
|
立即數(shù),有些系統(tǒng)不支持除字以外的立即數(shù),則應(yīng)使用“n”而非 “i”
|
|
匹配
|
“ 0 ”
|
表示用它限制的操作數(shù)與某個(gè)指定的操作數(shù)匹配
|
|
“1” ...
|
也即該操作數(shù)就是指定的那個(gè)操作數(shù),例如“0”
|
|
“9”
|
去描述“%1”操作數(shù),那么“%1”引用的其實(shí)就是“%0”操作數(shù),注意作為限定符字母的0-9 與指令中的“%0”-“%9”的區(qū)別,前者描述操作數(shù), 后者代表操作數(shù)。
|
|
&
|
該輸出操作數(shù)不能使用過和輸入操作數(shù)相同的寄存器
|
|
操作數(shù)類型
|
“=”
|
操作數(shù)在指令中是只寫的(輸出操作數(shù))
|
|
“+”
|
操作數(shù)在指令中是讀寫類型的(輸入輸出操作數(shù))
|
|
浮點(diǎn)數(shù)
|
“f”
|
浮點(diǎn)寄存器
|
|
“t”
|
第一個(gè)浮點(diǎn)寄存器
|
|
“u”
|
第二個(gè)浮點(diǎn)寄存器
|
|
“G”
|
標(biāo)準(zhǔn)的80387浮點(diǎn)常數(shù)
|
|
%
|
該操作數(shù)可以和下一個(gè)操作數(shù)交換位置,例如addl的兩個(gè)操作數(shù)可以交換順序(當(dāng)然兩個(gè)操作數(shù)都不能是立即數(shù))
|
|
#
|
部分注釋,從該字符到其后的逗號(hào)之間所有字母被忽略
|
|
*
|
表示如果選用寄存器,則其后的字母被忽略
|