Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IF :LNOT::DEF:NO_CRP
- AREA |.ARM.__at_0x02FC|, CODE, READONLY
- CRP_Key DCD 0xFFFFFFFF
- ENDIF
- AREA WriteData, DATA, READWRITE, align=2
- Calories_tot SPACE 28
- AREA |.text|, CODE, READONLY, align=3
- ; Reset Handler
- Reset_Handler PROC
- EXPORT Reset_Handler [WEAK]
- LDR R0, =Reset_Handler
- ; your code here
- count_dd RN 1
- tmp_cal RN 2
- tmp_day RN 3
- day_food RN 4
- day_sport RN 5
- day_tot RN 6
- cal_addr RN 7
- tmp_cal_sports RN 8
- day_less RN 11
- LDRB day_food, Num_days
- LDRB day_sport, Num_days_sport
- LDR day_tot, =Calories_tot
- MOV count_dd, #0
- LDR cal_addr, =Calories_food
- loop_food
- LDR tmp_day, [cal_addr, #4]!
- LDR tmp_cal, [cal_addr, #4]!
- ADD tmp_day, tmp_day, #-1
- STR tmp_cal, [day_tot, tmp_day, LSL #2]
- ADD count_dd, count_dd, #1
- CMP count_dd, day_food
- BNE loop_food
- MOV count_dd, #0
- LDR cal_addr, =Calories_sport
- loop_sport
- LDR tmp_day, [cal_addr, #4]!
- LDR tmp_cal_sports, [cal_addr, #4]!
- ADD tmp_day, tmp_day, #-1
- LDR tmp_cal, [day_tot, tmp_day, LSL #2]
- SUB tmp_cal, tmp_cal, tmp_cal_sports
- STR tmp_cal, [day_tot, tmp_day, LSL #2]
- ADD count_dd, count_dd, #1
- CMP count_dd, day_sport
- BNE loop_sport
- MOV count_dd, #0
- MOV day_less, #0
- loop_total
- LDR tmp_cal, [day_tot, count_dd, LSL #2]
- CMP tmp_cal, #500
- ADDLT day_less, day_less, #1
- ADD count_dd, count_dd, #1
- CMP count_dd, #7
- BNE loop_total
- BX R0
- ENDP
- LTORG
- Days DCB 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
- Calories_food DCD 0x06, 1300, 0x03, 1700, 0x02, 1200, 0x04, 1900
- DCD 0x05, 1110, 0x01, 1670, 0x07, 1000
- Calories_sport DCD 0x02, 500, 0x05, 800, 0x06, 400
- Num_days DCB 7
- Num_days_sport DCB 3
- ; Dummy Exception Handlers (infinite loops which can be modified)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement