bootloader中的偽指令分析

2021-08-21 03:35:37 字數 587 閱讀 3827

偽指令(pseudo instruction)是用於告訴匯程式設計序如何進行彙編的指令。它既不控制機器的操作也不被彙編成機器**,只能為匯程式設計序所識別並指導彙編如何進行。

比如:

ldr r0, = 0x48000000

由於0x48000000比較簡單,可以表示成立即數(每個立即數由乙個8位的常數迴圈右移偶數字得到,其中迴圈右移的位數由乙個4位二進位制的兩倍表示),它就用mov指令來表示。故反彙編為:

33f80030: e3a00312 mov r0, #1207959552 ; 0x48000000

通常一條指令是32位,用乙個32位的數字來表示即指令碼e3a00312,32位指令碼除了表示指令,還會表示其他暫存器,所以剩下不到32位來表示乙個數,所以並不是任意的數字都能拿來儲存進去。能夠用mov指令直接操作的數字我們稱之為立即數。

比如:

ldr r1 ,= 0x4c000004

這個數字比較複雜,不是立即數。這種情況編譯器會將此數字存在某個地方,然後用一條讀位址的指令讀出來。

反彙編:

33f80024: e59f0084 ldr r0, [pc, #132] ;33f800b0

A51中的偽指令

a51中得偽指令 本章講解彙編器的偽指令。說明如何定義符號和怎樣控制 和資料在程式儲存器中的位置。簡介 ax51彙編器有一些偽指令,可以讓我們定義符號值,預留和初始化記憶體,以及控制 的位置。不要把偽指令與指令相混淆。偽指令不產生可執行的 除db,dw和dd之外,它們對 儲存器的內容沒有直接的影響。...

指令和偽指令的區別

這個標題看似簡單,但是我卻一下子沒明白,這裡做下記錄。指令 每一條指令語句在源程式彙編時都要產生可供計算機執行的指令 即目標 所以這種語句又叫做可執行語句,每一條指令語句表示cpu具有的乙個基本能力,比如資料傳送,兩數相加或相減,移位等,而這種能力是在目標程式執行時完成的,是依賴於cpu 儲存器 i...

LABEL偽指令的功能

label 一般用作定義變數和標號的屬性,它是與緊接著的下一條變數和標號定義語句相關的,其型別可以為byte word dword qword near far等等。用法為 buffer 變數 label byte 型別 例如 buffer1 label word buffer2 db 20 dup...