18. maj 2004 - 13:09Der er
17 kommentarer og 1 løsning
ekstern programmering af program
Hej...
vi sidder og er ved at skulle lave en lommeregner man skal kunne programmere vha en txt-fil. vi har lavet de fleste funktioner, men vi kan ikke rigtig komme videre med dette:
:label - Definerer en label.
JP label - Hopper til label, hvis indholdet af regneregisteret er større end 0.
JN label - Hopper til label, hvis indholdet af regneregisteret er mindre end 0.
JZ label - Hopper til label, hvis indholdet af regneregisteret er 0.
JMP label - Hop ubetinget til label.
resten er noget i retning af:
ADD n - Adderer indholdet i register n til regneregisteret. Resultatet gemmes i regneregisteret.
SUB n - Subtraherer indholdet af register n fra regneregisteret. Resultatet gemmes i regneregisteret.
og dette har vi lavet ...
nogen der har en ide til hvordan vi kan gøre dette ? self skal vi læse txt-filen igennem først og så søge efter labels ? og hvordan skal vi så lave jump-funktionerne ?
LET 2 ; gem tallet 2 i regneregisteret STO 0 ; gem tallet 2 i register 0 LET 1 ; gem tallet 1 i regneregisteret STO 1 ; gem tallet 1 i register 1 IN ; brugeren indtaster et tal STO 2 ; gem det indtastede tal i register 2 CMP 0 ; sammenlign det indtastede tal med tallet 2 JN SLUT ; hvis det indtastede tal er mindre end 2 hoppes til SLUT RCL 0 ; kopier tallet 2 til regneregisteret OUT ; udskriv tallet 2 på skærmen ADD 1 ; adder tallet 1 til regneregisteret, resultatet er 3 :IGEN STO 3 ; gem tallet i register 3 CMP 2 ; sammenlign tallet med brugerens indtastning JP SLUT ; hvis tallet er større end indtastningen hoppes til SLUT PRIM 3 ; test om tallet er et primtal JZ NEXT ; er det ikke tilfældet hoppes til NEXT RCL 3 ; hent tallet til regneregisteret OUT ; udskriv tallet på skærmen :NEXT ADD 0 ; adder 2 til tallet JMP IGEN ; hop til igen :SLUT
Umiddelbart lyder det tiltalende at løbe filen igennem en gang og gemme byte offset for alle labels sammen med label i en STL map og så slå label op i den og seek'e til offset.
okai... hvordan kan vi så lave denne liste... at køre filen igennem er ok ... men at lave listen og så finde ud af at læse hvor langt den skal hoppe tilbage... det kan vi ikke helt få til at du ? har du et eksempel eller noget ?
indtil videre tak... jeg vil lige afprøve det i programmet ... men arne_v regner jeg med skal have pointsene, men venter lige med at lukke indtil jeg er sikker på jeg har det jeg skal bruge...
Hej... det virker fint for sig selv... men når vi bruger det på vores egen klasse giver den fejl idet vi bruger mange operator-overstyringer så dur det ikke med det using namespace std;
tak for hjælpen... vi fik det ikke helt til at virke... men vi har ikke for meget mere tid så det bliver nedprioriteret for nu... måske senere ... :)
mvh Brian
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.