Hallo zusammen,
im Rahmen meiner Ausbildung befasser wir uns mit der Assamber Programmierung ( auf einem MSP 430).
Die Aufgabe bestand darin den Speicher von der Adress 200h bis 300h beginnend bei 100 in einer inkrementen zu füllen.
Mein Code:
Nun gut, diese Lösung funktioniert. Mich würde es aber intressieren ob der code effizienter, sprich mit weniger Commandos und Register auskommt.
Freue mich über eure Antworten.
im Rahmen meiner Ausbildung befasser wir uns mit der Assamber Programmierung ( auf einem MSP 430).
Die Aufgabe bestand darin den Speicher von der Adress 200h bis 300h beginnend bei 100 in einer inkrementen zu füllen.
Mein Code:
Code:
;Reset-Vektor setzen ORG 0FFFEh DW main ;Programmstart setzten ORG 0F000h ;Adress 00200h var_a zuweisen var_a EQU 00200h ;Register R4,R5 löschen main CLR R4 CLR R5 ;100 in Adr. 00200h schreiben MOV #100d,var_a ;Register erhöhen ;R4 Adress ;R5 Wert loop ADD #2,R4 ADD #1,R5 ;Wert von Adr. 00200h Adr. 00200h+R2 kopieren MOV var_a,var_a(R4) ;Wert R5 zu Wert in Adr. 00200h+R2 => 200+1; 200+2; .... ADD R5,var_a(R4) ;Vergleichen CMP var_a(R4),00300h ;Schleife nur erfüllt wen CMP true JNE loop done JMP done END
Freue mich über eure Antworten.
Comment