Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ideen gesucht: einfaches Programm in Assambler (https://www.delphipraxis.net/103344-ideen-gesucht-einfaches-programm-assambler.html)

everdream 14. Nov 2007 16:33


Ideen gesucht: einfaches Programm in Assambler
 
Hallo,

ich schreibe bald (jezt noch 14,5 Stunden) eine Klausur in Info und brauche ein wenig Stoff zum Üben. Im Unterricht arbeiten wir mit dem Modell-Assambler WinALI. Als letztes haben wir Quicksort gemacht, nur damit ihr wisst wo ich in etwa damit stehe.

Ich möchte irgendwas machen, was nochmal alles ausnutzt, was wir gemacht haben, das sind:

Arrays,
(rekursive) Prozeduren inkl. Parameterübergabe und lokalen Variablen,
alle Arten von schleifen ja eh...
das ganze bewegt sich zahlenmäßig im smallint-Bereich.

Wem spontan ein Problem ainfällt, das diese Anforderungen nich zu weit ausreitzt (Bspl. Arrays als lok. Var. oder x verschiedene Prozeduren), dem wäre ich dankbar, wenn er sich melden würde

:corky:

Wer will darf nachher auch meine Lösung sehen xD

lg, everdream

p.s.: funktionen hatten wir noch nicht, d.h. referenzparameter sollten bitte nicht drin vorkommen.

Der_Unwissende 14. Nov 2007 16:37

Re: Ideen gesucht: einfaches Programm in Assambler
 
Wie wäre es denn mit den Fibonacci-Zahlen?

everdream 14. Nov 2007 16:59

Re: Ideen gesucht: einfaches Programm in Assambler
 
Die Lösung von Fibonacci ohne function is natürlich nich grade schön, aber im Prinzip ist das ne gute Idee... Dann speicher ich nebenher einfach noch alle Fibs in ein Array und lasse das dann von einer weiteren Prozedur ausgeben... joa, vielen Dank für den Tipp!

--> weitere Ideen sind natürlich trotzdem gefragt, fange jetzt mit Fibonacci an, aber der Abend hat ja grad' erst angefangen :stupid:

everdream 14. Nov 2007 18:23

Re: Ideen gesucht: einfaches Programm in Assambler
 
Okay, ich wäre dann soweit:

Delphi-Quellcode:
fibo   start   0
   lda   5, '4094'
   
   ini   input      
   lda   0,'0'
   sta   0,fibs(0)
   lda   3,'2'
   lda   0,'1'
   sta   0,fibs(3)
   
   sub   5,'10'
   lda   0,'0'
   sta   0,2(5)
   lda   0,'1'
   sta   0,4(5)
   lda   0,'2'
   sta   0,6(5)
   la   0,rfib
   sta   0,0(5)
   b   fib
rfib   add   5,'6'
   lda   0,'0'
   sta   0,2(5)
   la   0,rput
   sta   0,0(5)
   b   put      
rput   eoj

input   DS   F
fibs   DS   25F

* Datenschachtel: fib;
* nr1 | 0(5) | Rücksprungadresse
* nr2 | 2(5) | 1. Parameter: a
* nr3 | 4(5) | 2. Parameter: b
* nr4 | 6(5) | 3. Parameter: n
* nr5 | 8(5) | lok. Variable: c
* Gesamtgröße: 10 bytes (-> Offset)

fib   lda   0,2(5)
   add   0,4(5)
   sta   0,8(5)
   lda   0,6(5)
   add   0,'1'
   cmp   0,input
   bh   p1
   ldr   4,5
   sub   5,'10'
   lda   0,4(4)
   sta   0,2(5)
   lda   0,8(4)
   sta   0,4(5)
   lda   0,6(4)
   add   0,'1'
   sta   0,6(5)
   la   0,rek
   sta   0,0(5)
   b   fib
rek   add   5,'10'
p1   lda   3,6(5)
   mul   3,'2'
   lda   0,8(5)
   sta   0,fibs(3)
   lda   0,0(5)
   br   0

* Datenschachtel: put;
* nr1 | 0(5) | Rücksprungadresse
* nr2 | 2(5) | lok. Variable
* Gesamtgröße: 2 bytes (-> Offset)

put   lda   3,2(5)
   mul   3,'2'
   outi   fibs(3)
   lda   0,2(5)
   add   0,'1'
   sta   0,2(5)
   cmp   0,input
   bnh   put
   lda   0,0(5)
   br   0
Geht bis fib(23), weil mehr in die 2 bytes leider nicht rein passen :roll:
Dafür wird auch wirklich alles schön ausgegeben...

Soooo, hat noch jemand was für mich?

everdream 15. Nov 2007 15:39

Re: Ideen gesucht: einfaches Programm in Assambler
 
mkay, klausur is super gelaufen, 13 bis 15 punkte sollten drin sein.

Die Übung mit den Fibonacci-Zahlen hat mi übrigens sehr geholfen, war ne gute Idee!

Danke nochmal


-> Thema kann nu eigentlisch weg...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz