AT&T匯編語(yǔ)言基礎(chǔ)

INDEXED MEMORY?。蚈DE


.section .data
values:
    .int 10,15,20,25,30,35,40,45,50,55,60

base_address(offset_address, index,size)
==> base_address + offset_address + index*size

movl $2, %edi
movl values(,%edi,4),%eax

間接尋址

  • 在寄存器標(biāo)號(hào)前加$取得是地址
  • 在寄存器標(biāo)號(hào)加()取的是該寄存器地址所指向的內(nèi)存的內(nèi)容
    在這里插入圖片描述
  • example:
.section .data
values:
    .int 10,15,20,25,30,35,40,45,50,55,60
.sectio .text
.globl main
main:
    nop
    movl values, %eax    # %eax=10
    movl $values, %edi   # %edi=&values
    movl $100, 4(%edi)   # 15換成100
    movl $1, %edi        # %edi=1
    movl values(,%edi,4),%ebx # 100賦給%ebx
    movl $1  %eax        # %eax = 1
    int $0x80  
在這里插入圖片描述
  • inc = ++
  • cmpl 比較
  • jne jump if not equal

DATA EXCHANGE

  • XCHG operand1, operand2
  • bubble sort:


    bubblesort
  • %esi作為指針(保存數(shù)組起點(diǎn))
  • jge jump greater then equal 后-前是否>=0
  • dec = --
  • jnz 上一條語(yǔ)句的結(jié)果是否為0
  • xchg 寄存器和操作數(shù)

ADD

  • add? sourcr destination 把source加到destination

  • Source operand: register,memory,immediate value

  • Destination operand:register,memory


    在這里插入圖片描述
  • CF: 若進(jìn)位則為1

  • OF: 前面兩個(gè)高位相同且與第三個(gè)高位不同則為1

  • SF: 結(jié)果的高位是什么就是什么

  • ZF: 結(jié)果是0就是1 否則為0

  • sub? source destination:destination - source

  • neg? destination:取反(negative)

  • inc? destination :--

  • dec? destination :++

  • mul? source:無符號(hào)數(shù)乘法

    • 8位的數(shù)與%al相乘,結(jié)果放入%ax
    • imul? source
    • imul? source, destination
    • imul? multipler, source, destination:destination = multipler*source
multiple rules

在這里插入圖片描述

DIVIDE

  • dividend / devisor = quotient * divisor + remainder
  • div? divisor
  • idiv? divisor
  • 被除數(shù)是除數(shù)長(zhǎng)度的兩倍
div

SHIFT LEFT(MULTIPLY 2^N)

  • sal? destination : *2
  • sal? %cl,destination : *2^cl
  • sal? shifter destination : *2^shifter(立即數(shù))
  • shl? (as same as sal)

SHIFT RIGHT(DIVIDED BY 2^N)

  • sar? destination
  • sar? %cl,destination : /2^cl
  • sar? shifter destination : /2^shifter(立即數(shù))
  • shr? (same as sar except always filling zero)

ROTATE SHIFT

在這里插入圖片描述

BOOLEAN LOGIC

  • NOT
    • not? destination
  • AND
  • OR
  • XOR
    • and?/or?/xor? source, destination
      在這里插入圖片描述
  • 清零
    • xor 三個(gè)時(shí)鐘周期
    • mov 四個(gè)時(shí)鐘周期

REVIEW

在這里插入圖片描述

INSTRUCTION POINTER

在這里插入圖片描述
  • jmp無條件跳
在這里插入圖片描述

CMOVE

在這里插入圖片描述

COMPARE

在這里插入圖片描述

LOOP

在這里插入圖片描述

PRINTF

p
在這里插入圖片描述
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.地址總線,數(shù)據(jù)總線,控制總線在哪里,它們有什么作用?答:它們都是cpu連接外部組件的線路。地址總線:地址總線A...
    MagicalGuy閱讀 1,672評(píng)論 0 1
  • 計(jì)算機(jī)通過執(zhí)行指令序列來使機(jī)器得以工作,所以對(duì)于每一系列的計(jì)算機(jī)都有指定的一組指令集供計(jì)算機(jī)使用,這組指令...
    未來科技工作室閱讀 8,337評(píng)論 1 10
  • 匯編語(yǔ)言分位數(shù)和標(biāo)準(zhǔn),位數(shù)是根據(jù)cpu寄存器的位數(shù)發(fā)展而變化,而標(biāo)準(zhǔn)主要有兩類: AT&T 標(biāo)準(zhǔn), 主要用于UNI...
    洽白閱讀 2,454評(píng)論 1 1
  • Logic Instructions AND DST, SRC ; (DST)<--(DST) & (SRC) O...
    金發(fā)萌音閱讀 954評(píng)論 0 1
  • 2106.9.9房租預(yù)定 2016.11.11開始裝修 2017.1.10門面掛牌 2017.1.18廚房開火 2...
    元月10號(hào)閱讀 280評(píng)論 0 0

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