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;
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)
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?
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åtInstruktionen ä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?
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.
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!