mekatronik behöver inte mer hjälp
mekatronik 625
Postad: 6 jan 2022 15:33

Dissassemblera en instruktionssekvens

Hej, jag är väldigt nära på att lösa det här problemet men det är en liten bit som fattas;

För att lösa detta gjorde jag en lista på operand infon för att ta reda på sekvensen och fick då följande;

OP infoAdressF1FBA6FC25033320FCBDFE1FC21F3

Detta innebär att antingen E eller D kan vara rätt och det är där jag inte riktigt vet hur jag skall skilja på de två, de är i princip exakt samma men de skiljer sig åt vart de skrivit L1 och L2. På vilket sätt kan jag veta vilken av dessa som är rätt? (e är rätt enligt facit)

Programmeraren 3390
Postad: 6 jan 2022 17:13 Redigerad: 6 jan 2022 17:14

FCB DF betyder byten DF, det är ingen operand. 13 bytes totalt men i din tabell ser det ut som 14.

Det som skiljer D och E är brancharna.
D: BNE L1 är bakåt
E: BNE L1 är framåt

Instruktionen är 25 03 = BNE med offset 3. Är det framåt eller bakåt?

mekatronik 625
Postad: 6 jan 2022 18:00
Programmeraren skrev:

FCB DF betyder byten DF, det är ingen operand. 13 bytes totalt men i din tabell ser det ut som 14.

Det som skiljer D och E är brancharna.
D: BNE L1 är bakåt
E: BNE L1 är framåt

Instruktionen är 25 03 = BNE med offset 3. Är det framåt eller bakåt?

Borde gjort det mer tydligt, FCB = Form Constant Byte - ingen operand såklart :) .

Med offseten borde det väl vara framåt hopp tror jag? 

Kan det också vara så att e är rätt eftersom man lagrar resultatet i effektiv adressen FC direkt efter ADDA operationen för att sedan gör den tills villkoret uppfylls? I d) så lagrar man den inte på effektiv adressen, endast när den utför JMP då men då lagrar den bara 0 på effektiv adressen och inte bitoperationens resultat.

Kan det stämma?

Programmeraren 3390
Postad: 6 jan 2022 19:28 Redigerad: 6 jan 2022 19:30

Ja, jag menar att E är är rätt eftersom offset=3 är positivt, dvs man branchar till en högre adress och i E är L1 högre upp i minnet. I alternativ D är L1 bakåt och då skulle offseten vara negativ (i 2-komplement).

Jag har inte ens funderat på vad programmet gör, det spelar nog ingen roll.
Jag jämförde endast D och E eftersom du sa att du uteslutit de andra.

mekatronik 625
Postad: 6 jan 2022 19:39
Programmeraren skrev:

Ja, jag menar att E är är rätt eftersom offset=3 är positivt, dvs man branchar till en högre adress och i E är L1 högre upp i minnet. I alternativ D är L1 bakåt och då skulle offseten vara negativ (i 2-komplement).

Jag har inte ens funderat på vad programmet gör, det spelar nog ingen roll.
Jag jämförde endast D och E eftersom du sa att du uteslutit de andra.

Logisk förklaring, du är en hjälte! Tackar!

Svara
Close