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

<2013年10月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

統(tǒng)計(jì)

  • 隨筆 - 21
  • 文章 - 0
  • 評(píng)論 - 2
  • 引用 - 0

常用鏈接

留言簿

隨筆分類(lèi)

隨筆檔案

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

AT&T指令集

GAS中每個(gè)操作都是有一個(gè)字符的后綴,表明操作數(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”同時(shí)表示4字節(jié)整數(shù)和8字節(jié)雙精度浮點(diǎn)數(shù),這不會(huì)產(chǎn)生歧義因?yàn)楦↑c(diǎn)數(shù)使用的是完全不同的指令和寄存器。

 

 

操作數(shù)格式:

格式

操作數(shù)值

名稱(chēng)

樣例(GAS = C語(yǔ)言)

$Imm

Imm

立即數(shù)尋址

$1 = 1

Ea

R[Ea]

寄存器尋址

%eax = eax

Imm

M[Imm]

絕對(duì)尋址

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]表示在存儲(chǔ)器中xx地址的值,R[xx]表示寄存器xx的值,這種表示方法將寄存器、內(nèi)存都看出一個(gè)大數(shù)組的形式。

 

 

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

指令

效果

描述

movl S,D

D <-- S

傳雙字

movw S,D

D <-- S

傳字

movb S,D

D <-- S

傳字節(jié)

movsbl S,D

D <-- 符號(hào)擴(kuò)展S

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

movzbl S,D

D <-- 零擴(kuò)展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è)棧往低地址擴(kuò)展。

 

 

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

指令

效果

描述

leal S,D

D = &S

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

incl D

D++

1

decl D

D--

1

negl D

D = -D

取負(fù)

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

邏輯右移

 

 

特殊算術(shù)操作:

指令

效果

描述

imull S

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

無(wú)符號(hào)64位乘

mull S

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

有符號(hào)64位乘

cltd S

R[%edx]:R[%eax] = 符號(hào)位擴(kuò)展R[%eax]

轉(zhuǎn)換為4字節(jié)

idivl S

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

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

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

divl S

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

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

無(wú)符號(hào)除法,保存余數(shù)和商

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

 

 

條件碼:

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

CF:進(jìn)位標(biāo)志,最高位產(chǎn)生了進(jìn)位,可用于檢查無(wú)符號(hào)數(shù)溢出。

OF:溢出標(biāo)志,二進(jìn)制補(bǔ)碼溢出——正溢出或負(fù)溢出。

ZF:零標(biāo)志,結(jié)果為0

SF:符號(hào)標(biāo)志,操作結(jié)果為負(fù)。

 

 

比較指令:

指令

基于

描述

cmpb S2,S1

S1 – S2

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

testb S2,S1

S1 & S2

測(cè)試字節(jié),與關(guān)系

cmpw S2,S1

S1 – S2

比較字,差關(guān)系

testw S2,S1

S1 & S2

測(cè)試字,與關(guān)系

cmpl S2,S1

S1 – S2

比較雙字,差關(guān)系

testl S2,S1

S1 & S2

測(cè)試雙字,與關(guān)系

 

 

訪問(wèn)條件碼指令:

指令

同義名

效果

設(shè)置條件

sete D

setz

D = ZF

相等/

setne D

setnz

D = ~ZF

不等/非零

sets D

 

D = SF

負(fù)數(shù)

setns D

 

D = ~SF

非負(fù)數(shù)

setg D

setnle

D = ~(SF ^OF) & ZF

大于(有符號(hào)>

setge D

setnl

D = ~(SF ^OF)

小于等于(有符號(hào)>=)

setl D

setnge

D = SF ^ OF

小于(有符號(hào)<)

setle D

setng

D = (SF ^ OF) | ZF

小于等于(有符號(hào)<=)

seta D

setnbe

D = ~CF & ~ZF

超過(guò)(無(wú)符號(hào)>)

setae D

setnb

D = ~CF

超過(guò)或等于(無(wú)符號(hào)>=)

setb D

setnae

D = CF

低于(無(wú)符號(hào)<)

setbe D

setna

D = CF | ZF

低于或等于(無(wú)符號(hào)<=)

 

 

跳轉(zhuǎn)指令:

指令

同義名

跳轉(zhuǎn)條件

描述

jmp   Label

 

1

直接跳轉(zhuǎn)

jmp   *Operand

 

1

間接跳轉(zhuǎn)

je     Label

jz

ZF

等于/

jne    Label

jnz

~ZF

不等/非零

js     Label

 

SF

負(fù)數(shù)

jnz    Label

 

~SF

非負(fù)數(shù)

jg     Label

jnle

~(SF^OF) & ~ZF

大于(有符號(hào)>)

jge    Label

jnl

~(SF ^ OF)

大于等于(有符號(hào)>=)

jl     Label

jnge

SF ^ OF

小于(有符號(hào)<

jle     Label

jng

(SF ^ OF) | ZF

小于等于(有符號(hào)<=)

ja     Label

jnbe

~CF & ~ZF

超過(guò)(無(wú)符號(hào)>)

jae    Label

jnb

~CF

超過(guò)或等于(無(wú)符號(hào)>=)

jb     Label

jnae

CF

低于(無(wú)符號(hào)<)

jbe    Label

jna

CF | ZF

低于或等于(無(wú)符號(hào)<=)

 

 

轉(zhuǎn)移控制指令:(函數(shù)調(diào)用):

指令

描述

call    Label

過(guò)程調(diào)用,返回地址入棧,跳轉(zhuǎn)到調(diào)用過(guò)程起始處,返回地址是call后面那條指令的地址

call    *Operand

leave

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

 

 

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

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

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

如:

asm ("..."

    :                    //output需要占位

    : "r" (src)       //后面的Overwrites不能寫(xiě),我測(cè)試的結(jié)果是寫(xiě)了編譯不過(guò)

};


如:

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)一編號(hào)(如上例中*dest表示%0,reset是%1,x是%2,y是%3),”r”表示整數(shù)寄存器,”=”表示對(duì)其進(jìn)行了賦值。%eax要寫(xiě)成%%eax,這是c語(yǔ)言字符串的規(guī)則,別忘了code-string就是一個(gè)c語(yǔ)言的字符串。

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

評(píng)論

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

不錯(cuò),樓主是有心人

只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            红桃视频一区| 久久都是精品| 欧美人交a欧美精品| 在线亚洲欧美专区二区| 久久久一区二区| 久久久91精品国产一区二区精品| 欧美三级视频在线| 欧美精品国产一区| 欧美日韩午夜激情| 国产精品欧美经典| 国内外成人在线视频| 狠狠色伊人亚洲综合成人| 亚洲福利视频网站| 一本一本久久a久久精品综合妖精| 一区二区毛片| 久久国产天堂福利天堂| 欧美91福利在线观看| 亚洲片在线观看| 国产精品99久久久久久www| 午夜电影亚洲| 欧美丰满少妇xxxbbb| 国产精品网站在线| 亚洲国产日韩欧美在线动漫 | 亚洲国产日韩欧美| 亚洲视频日本| 欧美刺激午夜性久久久久久久| 99一区二区| 久久精品一区二区三区中文字幕| 欧美精品久久久久久久免费观看 | 香蕉久久精品日日躁夜夜躁| 另类天堂视频在线观看| 欧美午夜久久久| 亚洲成人自拍视频| 午夜精品一区二区三区在线视| 免费视频一区| 亚洲少妇最新在线视频| 麻豆成人小视频| 国产精品美女诱惑| 亚洲精品一区二区三区不| 欧美在线三级| 99精品福利视频| 久久综合久久综合这里只有精品| 久久久噜噜噜久久中文字幕色伊伊| 欧美日本中文字幕| 亚洲高清久久网| 久久久久国产精品一区三寸| 夜夜狂射影院欧美极品| 免费美女久久99| 国产资源精品在线观看| 亚洲一区二区三区四区五区午夜 | 免费日韩av| 国产精品色婷婷| 国产一区二区三区免费观看| 亚洲欧美成人综合| 一本色道久久综合狠狠躁篇的优点| 免费日韩成人| 亚洲国产日韩综合一区| 美女国内精品自产拍在线播放| 欧美亚洲在线| 国内自拍视频一区二区三区| 久久久噜噜噜久久人人看| 亚欧美中日韩视频| 国产一区99| 麻豆freexxxx性91精品| 久久综合中文| 亚洲区第一页| 中文国产一区| 亚洲欧美在线磁力| 欧美与黑人午夜性猛交久久久| 亚洲视频精品| 国产欧美在线观看一区| 久久久久久国产精品mv| 久久久久久亚洲综合影院红桃| 一区二区三区在线观看国产| 欧美不卡福利| 欧美日韩亚洲成人| 午夜精品视频网站| 久久激情五月激情| 亚洲国产欧美日韩精品| 亚洲精品久久久久久一区二区| 欧美日韩一卡| 欧美与欧洲交xxxx免费观看| 久久国产乱子精品免费女 | 国产亚洲精品一区二555| 久久精品亚洲热| 欧美va亚洲va香蕉在线| 亚洲一区二区三区高清| 午夜在线电影亚洲一区| 亚洲国产精品一区二区三区| 日韩亚洲欧美中文三级| 久久综合色8888| 亚洲一区二区精品| 亚洲在线免费观看| 国户精品久久久久久久久久久不卡| 久久这里只有| 欧美日韩色综合| 久久久久久一区二区三区| 欧美精品一区二区在线播放| 午夜精品久久| 蜜臀久久久99精品久久久久久| 亚洲特级片在线| 久久尤物视频| 亚洲女爱视频在线| 久久亚洲私人国产精品va媚药| 亚洲一区二区三区四区五区黄| 欧美在线不卡视频| 亚洲伊人久久综合| 欧美精品 日韩| 免费成人性网站| 欧美日韩一区免费| 日韩一区二区精品视频| 国产精品视频导航| 亚洲高清资源| 经典三级久久| 亚洲在线免费| 亚洲欧美视频| 欧美日本一区二区视频在线观看 | 欧美一区二区三区在线视频| 欧美大尺度在线| 久久综合色播五月| 国产欧美在线观看一区| 中日韩美女免费视频网址在线观看| 最新中文字幕亚洲| 久久亚洲免费| 玖玖玖国产精品| 国产一区二区三区直播精品电影| 一区二区免费看| 宅男噜噜噜66一区二区66| 欧美激情一区二区三区四区| 欧美va天堂| 在线观看视频日韩| 久久精品国产69国产精品亚洲| 午夜老司机精品| 国产精品视频网| 亚洲女性裸体视频| 久久se精品一区二区| 国产精品专区h在线观看| 亚洲视频在线观看视频| 亚洲一区二区三区在线| 欧美视频二区36p| 亚洲色诱最新| 久久高清一区| 激情国产一区| 免费视频最近日韩| 亚洲国产精品日韩| 一本一本久久a久久精品综合妖精| 欧美人与性动交cc0o| 99视频超级精品| 亚洲欧美日韩国产综合精品二区| 国产精品99一区| 亚洲欧美一区二区原创| 久久免费午夜影院| 亚洲国产精品专区久久| 欧美裸体一区二区三区| 亚洲午夜一区二区三区| 久久久免费精品视频| 亚洲激情成人| 欧美性猛片xxxx免费看久爱| 亚洲欧美综合精品久久成人| 免费日韩精品中文字幕视频在线| 日韩一级免费观看| 国产精品日韩在线播放| 久久久精品五月天| 亚洲日本欧美| 久久久久久久网站| 亚洲美女91| 国产美女在线精品免费观看| 猫咪成人在线观看| 宅男噜噜噜66一区二区66| 久久久www成人免费无遮挡大片| 亚洲电影免费在线 | 亚洲激情在线观看视频免费| 欧美日韩一二三区| 久久精品91| 99视频一区二区三区| 久久综合狠狠综合久久综合88| 99精品视频免费| 黄网动漫久久久| 亚洲在线观看视频| 亚洲精品一区二区三区四区高清| 欧美日韩国产系列| 亚洲一区尤物| 亚洲成人资源网| 欧美一级久久久久久久大片| 亚洲欧洲精品天堂一级| 国产精品视频最多的网站| 蜜臀99久久精品久久久久久软件 | 亚洲国产一区二区三区在线播| 国产精品电影网站| 乱人伦精品视频在线观看| 性8sex亚洲区入口| 99re这里只有精品6| 欧美v国产在线一区二区三区| 亚洲综合色网站| 亚洲免费观看| 在线观看欧美视频| 国产一区二区高清不卡| 国产精品五月天| 国产精品久久久久秋霞鲁丝 | 黄色亚洲精品|