Week 10 Learning Log
Lab: CALAS, City University of Hong Kong
Week of: July 21–27, 2025
Weekly Goals
1. Project Understanding
Goal: Solidify knowledge of RISC-V assembly programming fundamentals.
Actions Taken:
Studied RISC-V procedures, branching logic (
jal,jalr), stack management, frame pointers, and loop implementation.Analyzed decision-making patterns in branching (conditional jumps, loops) and memory allocation via stack frames.
Reflection: Clarified how high-level constructs (e.g., functions, loops) map to assembly instructions. Understand stack dynamics for nested procedures and variable storage.
2. Skill Development
Goal: Develop proficiency in RISC-V assembly coding and simulation tools.
Actions Taken:
Wrote basic RISC-V programs: arithmetic operations (add/sub/mul) and memory access (load/store).
Configured RARS (RISC-V Assembler and Runtime Simulator) for code testing and debugging.
Reflection: Gained hands-on experience translating logic to assembly. RARS setup successful; will expand to complex programs next week.
3. Progress Review
Goal: Assess foundational assembly skills and identify gaps.
Actions Taken:
Performed informal self-assessment during coding exercises to gauge proficiency.
Identified gaps through debugging challenges (e.g., stack management errors).
Reflection: Core operations mastered, but documentation and topic tracking still pending. Will prioritize formal gap analysis next week.
Daily Goals Summary
1. Task Prioritization
Used Notion/Obsidian to track 2–3 daily priorities:
Tue: Study stack frames and procedure calls.
Thu: Write/test arithmetic assembly code (add, mul).
Fri: Debug memory load/store errors in RARS.
2. Focused Learning
Dedicated 1.5 hours/day to:
RARS simulation workflows and register monitoring.
Branching logic deep dives (e.g.,
beq/bnevs.jal).
3. Documentation and Personal Reflection
Logged code outputs and RARS setup steps in Obsidian.
Captured debugging insights in personal blog (e.g., stack pointer behavior).
4. Mentor Interaction
Brief sync to validate assembly approaches and RARS configuration.
Discussed real-world use cases for stack-based memory allocation.
Reflections
Initiative: Created reusable assembly templates for arithmetic operations.
Curiosity: Explored branch penalty reduction strategies during loop coding.
Next Steps:
Formalize documentation of code snippets and gap-tracking checklist.
Write advanced programs (recursive functions, nested loops).
Deepen stack management skills for multi-procedure workflows.