###### tags: `組合語言` # 組合語言共筆 14 : Register 區段與功能 ## 1. CPSR 與 SPSR 區段介紹 :::info  ::: :::info CPSR 中主要分成四個區段 - **f** [31:24] : 儲存 flag 的區段 - [NZCV 介紹](https://hackmd.io/9d9ixGRKTHyVAVZnPftfNw?view) - **s** [23:16] : 除存 State 資訊 - **x** [15:8] : 其他資訊 - **c** [7:0] : 儲存控制狀態資訊 - I : IRQ 中斷禁止位 - F : FIQ 中斷禁止位 - T : 儲存現在是否為 Thumb mode 資訊 - Mode : 儲存現在模式 ex : user、fiq、irq..... `反正就是 8 個 bit 算一個區段` ::: 如果要用指令讀取、存取 CPSR ,可以使用像是 `MRS`, `MSR` 指令 [組合語言共筆 12 : Data Processing 指令](/Q_bwvYgwRn6tEgvaXlpoow) --- <br> ## 2. Data Processing 指令暫存器區段介紹  資料執行指令在暫存器中包含以下幾個區段 - **cond** [31:28] : 儲存條件指令 - **I** [25] : 表示 Operand 2 是否是立即值,也代表符號 '#' - **OpCode** [24:21] : 儲存執行 (operation) 指令 - **S** [20] : 表示執行結果是否會更動 CPSR (flags) - **Rn** [19:16] : 第一個操作的 register - **Rd** [15:12] : 儲存目的 Register - **Operand 2** [11:0] --- <br> ## 3. Operand 2 區段介紹  <br> 這邊 Operand 2 區段中主要又分三種類型,也對應不同 Operand 2 格式 - 立即值格式 : 當 I=1 時,就表示 Operand 是一個立即值 - 立即值 Shift 格式 : 此模式表示是利用立即值來做 Shift,[11:7] 會存立即值 - 暫存器 Shift 格式 : 此模式會利用一暫存器(Rs)做 Shift,[11:8] 會存暫存器位址 --- <br>
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up