青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統(tǒng)計

  • 隨筆 - 21
  • 文章 - 0
  • 評論 - 2
  • 引用 - 0

常用鏈接

留言簿

隨筆分類

隨筆檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

AT&T指令集

GAS中每個操作都是有一個字符的后綴,表明操作數(shù)的大小。

C聲明

GAS后綴

大小(字節(jié))

char

b

1

short

w

2

(unsigned) int / long / char*

l

4

float

s

4

double

l

8

long double

t

10/12

注意:GAL使用后綴“l”同時表示4字節(jié)整數(shù)和8字節(jié)雙精度浮點數(shù),這不會產(chǎn)生歧義因為浮點數(shù)使用的是完全不同的指令和寄存器。

 

 

操作數(shù)格式:

格式

操作數(shù)值

名稱

樣例(GAS = C語言)

$Imm

Imm

立即數(shù)尋址

$1 = 1

Ea

R[Ea]

寄存器尋址

%eax = eax

Imm

M[Imm]

絕對尋址

0x104 = *0x104

Ea

M[R[Ea]]

間接尋址

%eax= *eax

Imm(Ea)

M[Imm+R[Ea]]

(基址+偏移量)尋址

4(%eax) = *(4+eax)

Ea,Eb

M[R[Ea]+R[Eb]]

變址

(%eax,%ebx) = *(eax+ebx)

ImmEa,Eb

M[Imm+R[Ea]+R[Eb]]

尋址

9(%eax,%ebx)= *(9+eax+ebx)

(,Ea,s)

M[R[Ea]*s]

伸縮化變址尋址

(,%eax,4)= *(eax*4)

Imm(,Ea,s)

M[Imm+R[Ea]*s]

伸縮化變址尋址

0xfc(,%eax,4)= *(0xfc+eax*4)

(Ea,Eb,s)

M(R[Ea]+R[Eb]*s)

伸縮化變址尋址

(%eax,%ebx,4) = *(eax+ebx*4)

Imm(Ea,Eb,s)

M(Imm+R[Ea]+R[Eb]*s)

伸縮化變址尋址

8(%eax,%ebx,4) = *(8+eax+ebx*4)

注:M[xx]表示在存儲器中xx地址的值,R[xx]表示寄存器xx的值,這種表示方法將寄存器、內(nèi)存都看出一個大數(shù)組的形式。

 

 

數(shù)據(jù)傳送指令:

指令

效果

描述

movl S,D

D <-- S

傳雙字

movw S,D

D <-- S

傳字

movb S,D

D <-- S

傳字節(jié)

movsbl S,D

D <-- 符號擴展S

符號位填充(字節(jié)->雙字)

movzbl S,D

D <-- 零擴展S

零填充(字節(jié)->雙字)

pushl S

R[%esp] <-- R[%esp] – 4;

M[R[%esp]] <-- S

壓棧

popl D

D <-- M[R[%esp]]

R[%esp] <-- R[%esp] + 4;

出棧

注:均假設棧往低地址擴展。

 

 

算數(shù)和邏輯操作地址:

指令

效果

描述

leal S,D

D = &S

movl地版,S地址入D,D僅能是寄存器

incl D

D++

1

decl D

D--

1

negl D

D = -D

取負

notl D

D = ~D

取反

addl S,D

D = D + S

subl S,D

D = D – S

imull S,D

D = D*S

xorl S,D

D = D ^ S

異或

orl S,D

D = D | S

andl S,D

D = D & S

sall k,D

D = D << k

左移

shll k,D

D = D << k

左移(sall)

sarl k,D

D = D >> k

算數(shù)右移

shrl k,D

D = D >> k

邏輯右移

 

 

特殊算術操作:

指令

效果

描述

imull S

R[%edx]:R[%eax] = S * R[%eax]

無符號64位乘

mull S

R[%edx]:R[%eax] = S * R[%eax]

有符號64位乘

cltd S

R[%edx]:R[%eax] = 符號位擴展R[%eax]

轉換為4字節(jié)

idivl S

R[%edx] = R[%edx]:R[%eax] % S;

R[%eax] = R[%edx]:R[%eax] / S;

有符號除法,保存余數(shù)和商

divl S

R[%edx] = R[%edx]:R[%eax] % S;

R[%eax] = R[%edx]:R[%eax] / S;

無符號除法,保存余數(shù)和商

注:64位數(shù)通常存儲為,高32位放在edx,低32位放在eax。

 

 

條件碼:

條件碼寄存器描述了最近的算數(shù)或邏輯操作的屬性。

CF:進位標志,最高位產(chǎn)生了進位,可用于檢查無符號數(shù)溢出。

OF:溢出標志,二進制補碼溢出——正溢出或負溢出。

ZF:零標志,結果為0。

SF:符號標志,操作結果為負。

 

 

比較指令:

指令

基于

描述

cmpb S2,S1

S1 – S2

比較字節(jié),差關系

testb S2,S1

S1 & S2

測試字節(jié),與關系

cmpw S2,S1

S1 – S2

比較字,差關系

testw S2,S1

S1 & S2

測試字,與關系

cmpl S2,S1

S1 – S2

比較雙字,差關系

testl S2,S1

S1 & S2

測試雙字,與關系

 

 

訪問條件碼指令:

指令

同義名

效果

設置條件

sete D

setz

D = ZF

相等/

setne D

setnz

D = ~ZF

不等/非零

sets D

 

D = SF

負數(shù)

setns D

 

D = ~SF

非負數(shù)

setg D

setnle

D = ~(SF ^OF) & ZF

大于(有符號>

setge D

setnl

D = ~(SF ^OF)

小于等于(有符號>=)

setl D

setnge

D = SF ^ OF

小于(有符號<)

setle D

setng

D = (SF ^ OF) | ZF

小于等于(有符號<=)

seta D

setnbe

D = ~CF & ~ZF

超過(無符號>)

setae D

setnb

D = ~CF

超過或等于(無符號>=)

setb D

setnae

D = CF

低于(無符號<)

setbe D

setna

D = CF | ZF

低于或等于(無符號<=)

 

 

跳轉指令:

指令

同義名

跳轉條件

描述

jmp   Label

 

1

直接跳轉

jmp   *Operand

 

1

間接跳轉

je     Label

jz

ZF

等于/

jne    Label

jnz

~ZF

不等/非零

js     Label

 

SF

負數(shù)

jnz    Label

 

~SF

非負數(shù)

jg     Label

jnle

~(SF^OF) & ~ZF

大于(有符號>)

jge    Label

jnl

~(SF ^ OF)

大于等于(有符號>=)

jl     Label

jnge

SF ^ OF

小于(有符號<

jle     Label

jng

(SF ^ OF) | ZF

小于等于(有符號<=)

ja     Label

jnbe

~CF & ~ZF

超過(無符號>)

jae    Label

jnb

~CF

超過或等于(無符號>=)

jb     Label

jnae

CF

低于(無符號<)

jbe    Label

jna

CF | ZF

低于或等于(無符號<=)

 

 

轉移控制指令:(函數(shù)調用):

指令

描述

call    Label

過程調用,返回地址入棧,跳轉到調用過程起始處,返回地址是call后面那條指令的地址

call    *Operand

leave

為返回準備好棧,為ret準備好棧,主要是彈出函數(shù)內(nèi)的棧使用及%ebp

 

 

GCCC中潛入?yún)R編代碼:

asm( code-string [:output-list [ : input-list [ :overwrite-list]]]);

注意,后面的參數(shù)(如overwrite-list)如果為空則不要相應的“:”,而如果前面參數(shù)(如output-list)為空則需要用“:”占位。

如:

asm ("..."

    :                    //output需要占位

    : "r" (src)       //后面的Overwrites不能寫,我測試的結果是寫了編譯不過

};


如:

Int ok_umul(unsigned x,unsigned y,unsigned *dest)

{

  int result;

asm(“movl %2 , %%eax; mull %3; movl %%eax,%0;\

           setae %dl; movzbl %%dl,%1”

           :  “=r” (*dest)  ,  “=r” (result)         //output

           :  “r” (x)  ,  “r” (y)                         //inputs

           :  “%ebx”  , “%edx”                        //Overwrites

);

 

return result;

}

我們用%0--%n表示輸入的參數(shù),從前往后統(tǒng)一編號(如上例中*dest表示%0,reset是%1,x是%2,y是%3),”r”表示整數(shù)寄存器,”=”表示對其進行了賦值。%eax要寫成%%eax,這是c語言字符串的規(guī)則,別忘了code-string就是一個c語言的字符串。

posted on 2009-12-08 15:48 ChinaPanda 閱讀(1898) 評論(1)  編輯 收藏 引用

評論

# re: AT&T指令集 2011-08-31 18:05 樓主

不錯,樓主是有心人
  回復  更多評論    
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜精品国产更新| 99在线精品视频在线观看| 午夜精品久久久久久久男人的天堂 | **网站欧美大片在线观看| 久久综合电影| 老司机久久99久久精品播放免费| 亚洲黄色天堂| 一区二区三区高清视频在线观看| 国产精品日产欧美久久久久| 久久精品一区二区国产| 女同一区二区| 亚洲欧美日韩第一区| 久久久久久久久久久久久女国产乱 | 亚洲欧美日韩视频一区| 黄色亚洲网站| 亚洲日本久久| 国产农村妇女毛片精品久久麻豆 | 免费在线观看成人av| 亚洲欧美国产日韩天堂区| 久久狠狠婷婷| 亚洲一区二区高清| 久久久久久久久久看片| 亚洲一区二区三区影院| 久久久精品一区| 亚洲男人第一网站| 欧美成人激情视频免费观看| 欧美自拍偷拍| 欧美日韩三区| 欧美黑人国产人伦爽爽爽| 国产精品私房写真福利视频| 亚洲国产欧美一区二区三区同亚洲| 国产精品久久久久久久久动漫 | 一区二区欧美激情| 久久精品国产99国产精品澳门| 99国产麻豆精品| 久久久久青草大香线综合精品| 国产精品99久久久久久有的能看| 久久久爽爽爽美女图片| 欧美在线视频导航| 欧美视频在线不卡| 亚洲第一区在线观看| 国精品一区二区三区| 中日韩美女免费视频网站在线观看| 亚洲国产精品一区二区www在线| 亚洲欧美另类中文字幕| 99在线精品视频在线观看| 久久只精品国产| 久久理论片午夜琪琪电影网| 国产乱码精品一区二区三区五月婷| 91久久亚洲| 亚洲国产婷婷香蕉久久久久久| 欧美一级视频免费在线观看| 午夜精品区一区二区三| 欧美亚州韩日在线看免费版国语版| 亚洲第一中文字幕| 亚洲国产日韩在线| 欧美成人高清视频| 亚洲大片在线| 亚洲美女黄网| 欧美日韩国产一中文字不卡| 亚洲高清免费在线| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美国产精品v| 亚洲高清av在线| 美日韩丰满少妇在线观看| 欧美国产精品人人做人人爱| 亚洲国产精品视频一区| 欧美阿v一级看视频| 亚洲国产成人精品视频 | 欧美性大战久久久久久久| 一区二区欧美精品| 欧美一区二区三区日韩| 国产一区二区三区四区老人| 久久精品国产综合精品| 欧美福利一区二区| 日韩亚洲在线| 国产精品麻豆成人av电影艾秋| 亚洲图片欧美一区| 久久伊人精品天天| 亚洲黄色一区二区三区| 欧美日韩日日夜夜| 午夜精品久久久久久久白皮肤| 久久伊人精品天天| 亚洲免费观看高清完整版在线观看熊 | 亚洲专区一区| 你懂的视频一区二区| 99精品国产福利在线观看免费| 欧美视频在线一区二区三区| 欧美一级淫片aaaaaaa视频| 欧美波霸影院| 亚洲视频免费看| 国产亚洲精品一区二区| 欧美/亚洲一区| 亚洲一区二区免费视频| 免费成人性网站| 中文亚洲视频在线| 激情久久久久久| 欧美日韩另类在线| 久久久91精品国产一区二区精品| 欧美激情网友自拍| 欧美在线电影| 一本一道久久综合狠狠老精东影业| 国产精品日韩在线播放| 免费短视频成人日韩| 亚洲永久字幕| 亚洲精品人人| 麻豆av一区二区三区久久| 亚洲一区二区三区三| 亚洲电影欧美电影有声小说| 国产精品国色综合久久| 欧美大成色www永久网站婷| 亚洲男人的天堂在线观看| 亚洲国产一区二区a毛片| 久久久久国色av免费观看性色| 99在线精品视频| 在线日韩视频| 国产亚洲欧洲一区高清在线观看| 欧美日韩性生活视频| 免费看亚洲片| 久久综合精品国产一区二区三区| 亚洲伊人网站| 一区二区三区四区五区精品| 亚洲国产高清自拍| 美女成人午夜| 久久频这里精品99香蕉| 欧美在线www| 亚洲欧美日韩专区| 亚洲天天影视| 亚洲午夜日本在线观看| 一本色道**综合亚洲精品蜜桃冫| 亚洲国产天堂网精品网站| 一区精品在线播放| 狠狠色综合日日| 国外成人在线视频| 红桃视频国产精品| 黄色亚洲免费| 亚洲二区免费| 亚洲激情视频网站| 亚洲美女在线视频| 亚洲精选大片| 一区二区三区不卡视频在线观看| 亚洲精品美女| 99热免费精品在线观看| 一本久久综合亚洲鲁鲁| 亚洲视频综合在线| 亚洲欧美网站| 久久黄色网页| 久久综合99re88久久爱| 美女视频黄a大片欧美| 欧美高清在线观看| 亚洲黄色毛片| 99视频精品在线| 亚洲欧美激情在线视频| 久久国产福利| 欧美成人一区二区三区| 欧美日韩午夜激情| 国产精品视频免费| 影音先锋另类| 在线亚洲美日韩| 羞羞答答国产精品www一本| 久久天天躁狠狠躁夜夜av| 欧美二区不卡| 在线中文字幕日韩| 欧美在线二区| 亚洲一区二区四区| 久久久久久一区二区| 亚洲大片精品永久免费| 一本大道久久精品懂色aⅴ| 午夜精品福利电影| 裸体女人亚洲精品一区| 国产精品啊啊啊| 极品日韩久久| 亚洲视频日本| 男人插女人欧美| 亚洲视频精选在线| 久久婷婷影院| 国产精品久久久久影院色老大 | 国产精品麻豆欧美日韩ww| 精品成人免费| 亚洲欧美视频在线| 欧美国产精品久久| 亚洲欧美一区二区三区久久| 男人天堂欧美日韩| 国产一区二区高清视频| 日韩一级精品| 六月天综合网| 亚洲综合视频一区| 欧美精品黄色| 樱桃国产成人精品视频| 午夜精品影院| 亚洲日本中文字幕| 久久久国产一区二区| 国产精品视频xxxx| 日韩视频在线一区| 欧美.www| 久久久亚洲精品一区二区三区 | 亚洲综合视频一区| 91久久久久久国产精品| 久久久噜噜噜久久| 国产亚洲欧美日韩一区二区|