An Introductory Cache Problem

I recently gave a problem on the final in E85. The students didn’t do too well on it overall, so I wanted to post the problem and solution in an effort to make more resources available for people learning basic cache behaviors. First of all, I need to introduce the piece of ARM assembly being used since it is the basis for a number of questions. FUNC: 0x0044 SUBS R0, R0, #3 0x0048 BLT DONE 0x004C STR LR, [SP, #-4]!