[請益] 如何讀懂arm 組語?
hi,各位好。
小弟剛接觸arm系列,對於很多觀念都還不清楚,想藉由這個例子請教各位大大該如何讀懂
arm的組語,以下三行為我在程式碼看到的組語
IDE: Code Composer Studio
compiler: 不會看
CPU: arm cortex-a8
chip: TI am335x
圖: https://imgur.com/a/upkoQxM
MRS R1, CPSR;
AND R1, #0x80;
STR R1, [R0];
參考手冊: ARM and Thumb Assembler Instructions.pdf
---------------------------------------------------
MRS<cond> Rd, cpsr; //set Rd = cpsr
Q1: 依照手冊上指示: The instruction is only executed if the condition <cond> is
passed。但我要怎麼知道這個condition有沒有pass?
AND<cond>{S} Rd, Rn, #<rotated_immed> ARMv1
Q2: rotated_immed是什麼意思呢?
手冊: <rotated_immed> is any 32-bit immediate that can be represented as an
eightbit unsigned value rotated right (or left) by an even number of bit
positions.
看完了也看不懂...Orz
第三行,看了手冊,應該就是把R0指到的address的值放進R1,這行倒沒什麼問題。
Q4: function的名稱是CPUirq_get,看不太懂是什麼意思?拿到irq?
Q5: state完全沒用到,懷疑function裡面被串改過?
Q6: 用debug mode觀看暫存器行為:
1. 把CPSR的值放進R1,此時 R1 = CPSR = 0x60000013
2. 與0x80做and,此時 R1 = 0x00000000
3. 把address(0x80171F28) = 0x00000000,但address 0x80171F28根本沒變數啊...
Q7: 網路上有可以發問類似這些問題的論壇嗎?不管是中文或英文的都可以,我發現arm的
論壇真的好少><
謝謝各位指教QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.216.18
※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1542952843.A.307.html
※ 編輯: zzss2003 (118.163.216.18), 11/23/2018 14:01:02
推
11/23 19:24,
6年前
, 1F
11/23 19:24, 1F
推
11/26 02:44,
6年前
, 2F
11/26 02:44, 2F
→
11/26 02:46,
6年前
, 3F
11/26 02:46, 3F
→
11/26 02:46,
6年前
, 4F
11/26 02:46, 4F
→
11/26 02:47,
6年前
, 5F
11/26 02:47, 5F
→
11/26 02:53,
6年前
, 6F
11/26 02:53, 6F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章