1. 程式人生 > >[組合語言]立即數定址和暫存器定址

[組合語言]立即數定址和暫存器定址

1. 什麼是立即數?

運算元從指令程式碼中得到,即立即數(Immediate),也可以說就是指令的一部分了,
例如:

MOV EAX 33221100H
;機器程式碼為 B8 00 11 22 33
;操作碼為 B8
;立即數為 33221100
操作碼 (運算元)立即數
B8 33221100

2. 立即數定址

資料已經儲存在指令程式碼中→立即數定址,
立即數定址方式只用於源運算元,常用來給暫存器和儲存單元賦值,用常量形式直接表達。


圖1 立即數定址示意圖(來自錢曉捷老師組合語言PPT)

3. 暫存器定址

運算元存放在處理器的內部暫存器中,用暫存器名錶示它的內容,暫存器定址的格式可以是:

  1. 源運算元和目的運算元都是暫存器定址
  2. 目的運算元是暫存器定址
  3. 源運算元是暫存器定址

圖2 暫存器定址(來自錢曉捷老師組合語言PPT)

相關推薦

[組合語言]立即

1. 什麼是立即數? 運算元從指令程式碼中得到,即立即數(Immediate),也可以說就是指令的一部分了, 例如: MOV EAX 33221100H ;機器程式碼為 B8 00 11 22 33 ;操作碼為 B8 ;立即數為 33221100 操作

指令ldmia/ldmibARM儲存器訪問指令——多存取

多暫存器和堆疊定址的用法:多暫存器定址:LDMIA,LDMIB,STMIA,STMIB,LDMDA,LDMDB,STMDA,STMDB; 堆疊定址:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED; 弄清堆疊定址的SP的變化:LDMFA,LDMFD,STMFA,

組合語言:將主程式中BX內的二進位制用十六進位制的形式在螢幕上顯示出來。

上機程式碼:   code segment       assume cs:code   start:       mov bx,1234H  

使用Top Server為Wonderware揭開Modbus的神祕面紗

    從1979年開始,Modbus已經作為一種“開放式”協議使用,多年來各行各業對Modbus有許多不同的解釋。對於那些不同的Modbus解釋,有很多關於訪問資料的不同術語的困惑。在這篇文章中,我將逐步介紹Modbus定址的基礎知識,包括偏移如何發揮作用,以及它們如何影響在T

2018/11/03-棧、x86架構-《惡意程式碼分析實戰》

  棧用於函式的記憶體、區域性變數、流控制結構等被儲存在棧中。棧是一種用壓和彈操作來刻畫的資料結構,向棧中壓入一些東西,然後再把他們彈出來。它是一種先入後出(LIFO)的結構。   x86架構有對棧的內建支援。用於這種支援的暫存器包括ESP和EBP。其中,ESP是棧指標,包含了指向棧頂的記憶體地址。一些東西

第005課 計算機單位

計算機單位換算 單位換算 微米,毫米,釐米,分米....... 1Byte = 8Bit 1M = 1024KB 1G = 1024M 1個字母在計算機中佔一個位元組,8個位。 位寬 1個位元組   256 2個位元組   65

中斷,異常,系統呼叫,程序切換時的堆疊變化儲存

 1. 中斷,異常,系統呼叫相同:     CPU自動壓入:   ss            執行級別提升時需切換堆疊,因此多壓入

記憶體、cache之間的關係及區別

cache是一個高速小容量的臨時儲存器,可以用高速的靜態儲存器晶片實現,或者整合到CPU晶片內部,儲存CPU最經常訪問的指令或者操作資料。而暫存器不同,暫存器是記憶體階層中的最頂端,也是系統獲得操作資料的最快速途徑。三者之間的順序就是 :記憶體-cahe-暫存器此外,暫存器

驅動你的串列埠 打交道

/* UART primitives */#define GET_STATUS(p) (*(volatile unsigned  *)((p) + USTAT))  // 獲得當前 UART 狀態 //offset?? //因為有了MMU,so要找到Pmemory要加偏移量#define RX_DATA(s)

vs2010中檢視記憶體

今天講一下如何從VS2010中檢視記憶體和暫存器狀態,一般來講,只要從事C/C++程式設計的人,基本上對於這篇文章完全可以略過了,但寫這篇文章的初衷在於,自己也是從這一步中過來的,記得當年自己其實也不知道如何快速使用VS中各種工具,導致花了很多時間在查詢資料上面。所以,本文基本上可以說是面向菜鳥級選

1.4 x86 CPU地址空間分配訪問

1、基本概念 cpu地址空間和pci地址空間是兩個常用的比較容易混淆的概念,特別是其中不同系列的cpu的實現還各不相同:x86系列cpu地址空間和pci地址空間是重合的,即為同一空間;而非x86 cpu的cpu地址空間和pci地址空間為兩個獨立的空間。 也許

FPGA 查詢表等詳解

1.FPGA-現場可程式設計門陣列   每一塊FPGA晶片都是由有限多個帶有可程式設計連線的預定義源組成來實現一種可重構數位電路。   圖1.FPGA不同構成   FPGA晶片說明書中,包含了可程式設計邏輯模組的數量、固定功能邏輯模組(如乘法器)的數目及儲存器資

計算機中記憶體、cache之間的關係及區別

1. 暫存器是中央處理器內的組成部份。暫存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、資料和位址。在中央處理器的控制部件中,包含的暫存器有指令暫存器(IR)和程式計數器(PC)。在中央處理器的算術及邏輯部件中,包含的暫存器有累加器(ACC)。 2. 記憶體包含的範圍

組合語言——彙編的8種方式,以及2個預設段

1.立即定址方式 MOV AH, 80H(直接給暫存器賦值)2. 暫存器定址方式(源或者目的有一個是暫存器) 2.1) 源運算元是暫存器定址方式 如:ADD VARD, EAX  ADD VARW, AX   MOV VARB, BH等。 其中:VARD、VARW和VARB是雙字,字和位元組

MIPS的、指令方式的分類

MIPS的32個暫存器 助記符 編號 作用 zero 0 恆為0 at 1 (assembly temporary)保留給彙編器使用 v0,v1 2-3

微機原理 七種方式

16位cpu 八個通用暫存器 指令指標IP 標誌暫存器FR 段暫存器 AX BX  CX DX BP SP SI DI 其中前四個又分為高八位和低八位 AX 累加器 BX 基址暫存器 CX 計數暫存器 DX 資料暫存器 BP 基址指標暫存器 SP 堆疊指標暫存器 

C語言的本質(29)——C語言與彙編之方式

x86的通用暫存器有eax、ebx、ecx、edx、edi、esi。這些暫存器在大多數指令中是可以任意選用的,比如movl指令可以把一個立即數傳送到eax中,也可傳送到ebx中。但也有一些指令規定只能用其中某些暫存器做某種用途,例如除法指令idivl要求被除數在eax暫存器中

運算元的方式(間接,基址,間,比例間接

計算機中程式是由按一定順序排列的一系列指令,通常一條指令包括兩方面的內容:操作碼和運算元,操作碼決定要完成的操作,告訴計算機要幹什麼;運算元指參加運算的資料及其所在的單元地址。整條指令以二進位制編碼的形式存放在儲存器中。指令要進行操作,都有相應的資料參加,可是資

與七種方式

一、暫存器 總共有14個16位暫存器,8個8位暫存器。 通用暫存器:   資料暫存器:   AH(8位)  AL(8位)  AX(16位)   (AX和AL又稱累加器)   BH(8位)  BL(8位)  BX(16位)   (BX又稱基址暫存器,唯一作為儲

組合語言: 試編制一個程式,把BX內的二進位制數以十六進位制的形式在螢幕上顯示出來

試編制一個程式,把BX暫存器內的二進位制數以十六進位制數的形式在螢幕上顯示出 來。 2017年5月29日15:47:49 data segment N dw 01111111