電腦系統之彙編---IA32處理器資料格式及資料操作

來源:互聯網
上載者:User

標籤:電腦系統   ia32   資料格式   資料操作   定址方式   

電腦系統之彙編---IA32處理器資料格式及資料操作

IA32資料格式:
Intel用術語“字”表示16位元據類型,因此,稱32位元為“雙字”,稱64位元為“四字”。



Char*這裡指的是所有指標類型,注意:c語言新增加的long long是八位元組,但是硬體IA32不支援這個類型。

寄存器(8個32位的寄存器,均以%e開頭)
%eax、%ecx、%edx:調用者儲存(資料)寄存器,當過程p調用q,q可以覆蓋這些寄存器,但是不會改變p中的資料。
%ebx、%esi、%edi:被調用者儲存(資料)寄存器,當過場p調用q,q必須在覆蓋這些寄存器資料前,要把它們儲存到棧,
並在調用結束返回時恢複它們,這些資料p或其他過程需要它們。
%esp、%ebp:有關棧指標的



大多數指令有一個或多個運算元,指示出執行一個操作中要引用的來源資料值,以及放置結果的目標位置。來源資料值可以以常數形式給出,或從寄存器或儲存空間中讀出,結果可以儲存放在寄存器或儲存空間中。

運算元分三種:
>>>1. 立即數即常數,用$開頭,後面加一個整數表示;
>>>2. 寄存器數,對字操作而言表示某個寄存器中的儲存的值;對位元組操作而言是8個單位元組寄存器中的 一個,比如:%al(eax寄存器中的低8位)
>>>3. 儲存空間引用,根據計算出的有效地址來訪問儲存空間的某個位置;包括四部分:立即數位移(lmm)、基底位址暫存器 Eb、變址寄存器 Ei、比例因素s。 有效地址被計算為 Imm + R[Eb] + R[Ei] * s。 (R[Eb]表示寄存器Eb的值,R[Ei]表示寄存器Ei的值,s的值只能是1,2,4或者8) 下表中Mb[addr] 表示對儲存空間在儲存空間中從地址addr開始的b個位元組值的引用。

有關運算元格式表



例如:地址0x100的值是56,那麼運算元0x100的值就是56,屬於絕對定址;$0x100的值0x100,是立即數定址;

電腦系統之彙編---IA32處理器資料格式及資料操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.