Advertisement
Lillo_Barilotto22

Untitled

Dec 5th, 2023
1,204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 2.45 KB | None | 0 0
  1.                 AREA    WriteData, DATA, READWRITE, align=4
  2. Calories_tot            SPACE 28
  3. Calories_food_ordered   SPACE 28
  4. Calories_sport_ordered  SPACE 28
  5.    
  6. Calories_food_orderedWITHID SPACE   56
  7. Calories_sport_orderedWITHID SPACE  56
  8.  
  9.                 AREA    |.text|, CODE, READONLY, align=3
  10.  
  11. ; Reset Handler
  12.  
  13. Reset_Handler   PROC
  14.                 EXPORT  Reset_Handler             [WEAK]                                            
  15.                 LDR     R0, =Reset_Handler
  16.  
  17.                 ; your code here       
  18. i   RN 1
  19. j   RN 2
  20.  
  21. tmp_cal     RN 3
  22. tmp_day     RN 4
  23. day         RN 5
  24.  
  25. count_swap  RN 6
  26. cal_addr    RN 7
  27. cal_ord     RN 8
  28.  
  29.  
  30. tmp_cal1    RN 9
  31. tmp_day1    RN 10
  32.    
  33.                 LDRB day,   Num_days
  34.                 MOV i, #0
  35.                 LDR cal_addr,   =Calories_food
  36.                 LDR cal_ord,    =Calories_food_orderedWITHID
  37. cpy_food       
  38.                 LDRD tmp_day, tmp_cal, [cal_addr]
  39.                 STRD tmp_day, tmp_cal, [cal_ord]
  40.                
  41.                 ADD cal_addr, cal_addr, #8
  42.                 ADD cal_ord, cal_ord, #8
  43.                 ADD i, i, #1
  44.                 CMP i, day
  45.                 BNE cpy_food
  46.  
  47.                 MOV i, #0
  48.                 LDRB day,   Num_days_sport
  49.                 LDR cal_addr,   =Calories_sport
  50.                 LDR cal_ord,    =Calories_sport_orderedWITHID
  51. cpy_sport
  52.                 LDRD tmp_day, tmp_cal, [cal_addr]
  53.                 STRD tmp_day, tmp_cal, [cal_ord]
  54.                
  55.                 ADD cal_addr, cal_addr, #8
  56.                 ADD cal_ord, cal_ord, #8
  57.                 ADD i, i, #1
  58.                 CMP i, day
  59.                 BNE cpy_sport
  60.  
  61.                 LDR cal_ord,    =Calories_food_orderedWITHID
  62.                 LDRB day,   Num_days
  63. bsort_next                    
  64.     MOV     i,#0              
  65.     MOV     count_swap,#0              
  66. bsort_loop  
  67.     ADD     j,i,#1            
  68.     CMP     j,day              
  69.     BGE     bsort_check        
  70.    
  71.     LDRD    tmp_day, tmp_cal, [cal_ord,i,LSL #3]  
  72.     LDRD    tmp_day1,tmp_cal1,[cal_ord,j,LSL #3]  
  73.    
  74.     CMP     tmp_cal,tmp_cal1              
  75.     STRDLT   tmp_day,tmp_cal,[cal_ord,j,LSL #3]  
  76.     STRDLT   tmp_day1,tmp_cal1,[cal_ord,i,LSL #3]  
  77.     ADDLT   count_swap,count_swap,#1          
  78.     MOV     i,j              
  79.     B       bsort_loop        
  80. bsort_check                    
  81.     CMP     count_swap,#0              
  82.     SUBGT   day,day,#1          
  83.     BGT     bsort_next  
  84.    
  85.    
  86.                 BX      R0
  87.                 ENDP
  88.                    
  89.  
  90.  
  91. Days            DCB 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
  92.  
  93. Calories_food   DCD 0x06, 1300, 0x03, 1700, 0x02, 1200, 0x04, 1900
  94.                 DCD 0x05, 1110, 0x01, 1670, 0x07, 1000
  95.  
  96. Calories_sport  DCD 0x02, 500, 0x05, 800, 0x06, 400
  97.  
  98. Num_days        DCB 7
  99. Num_days_sport  DCB 3
  100.  
  101. ; Dummy Exception Handlers (infinite loops which can be modified)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement