首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 組合語言

計算機系統原理(十四)數據格式、訪問信息與操作數指示符詳解

     編輯:組合語言

引言

本文內容可視為匯編語言的基石。因為匯編指令大多操作的是我們在高級語言開發中不可見的底層對象,理解這些對象是掌握匯編的關鍵。

匯編層面的 CPU 對象

在匯編視角下,CPU 狀態不再隱藏,主要包含以下對象:

  • 程序計數器 (PC):記錄下一條指令地址。
  • 整數寄存器文件:共 8 個,存儲地址或整數數據。
  • 條件寄存器:保存算術/邏輯指令狀態,支撐流程控制。
  • 浮點寄存器:存儲浮點數。

這些對象在程序運行時不斷變化,通過匯編代碼可窺見其動態行為。

數據格式與後綴

匯編指令後綴表示操作數位寬:

  • b (byte) — 8 位 / 單字節
  • w (word) — 16 位 / 雙字節
  • l (long) — 32 位 / 雙字(IA32 標準整數)

歷史習慣稱 16 位為「字」,32 位為「雙字」,64 位為「四字」。IA32 架構下各後綴對應關係如圖:

操作數指示符(寻址模式)

操作數指示符即取值標識方式,共三大類:

  1. 立即數:$ 開頭,如 $100、$0x11,直接取常數值。
  2. 寄存器:直接取寄存器內容,可操作 1/2/4 字節(如 %al、%ax、%eax)。
  3. 存儲器 (內存):計算有效地址後讀取內存值,形式多樣,通用格式為 Imm(Eb, Ei, s),即 Imm + Eb + Ei*s。

詳細分類表見下圖:

例如 4(%esp,%eax,4) 表示地址 4 + %esp + 4*%eax 處的內存值。這些寻址模式將貫穿後續所有指令講解。

小結

本章奠定了匯編基礎:數據格式、CPU 可見對象、操作數標識方式。建議結合上一章的匯編代碼實踐理解,為後續指令學習鋪路。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved