CamillaS Postad 18 oktober, 2008 Share Postad 18 oktober, 2008 hej. jag håller på att programmera i c64. jag tänkte bara kolla om någon kan förklara för mej vad sec, sbc och sta gör? Länk till kommentar Dela på andra webbplatser More sharing options...
fhe Postad 18 oktober, 2008 Share Postad 18 oktober, 2008 Jag har inte hackat 64-assembler sen kanske 1991 men i korthet är det så här: STA - STore Accumulator = Lagra värdet i accumulatorn i adressen som följer. Står vanligtvis STA $A000 (för att lagra accumulatorn på adressen $A000 men det kan också vara t.ex "STA $A000, X" (eller Y) för att lagra den på $A000+(värdet av x). SBC - SuBtract with Carry - Dvs, den gör en subtraktion med hänsyn tagen till carry-flagan. Carry-flaggan är i princip en indikation på att subtraktionen behövde "låna". Jag har ärligt talat glömt exakt hur det var men jag har för mig att carryn hade någon funktion även för att genomföra subtraktionen. Du får googla på det. SEC - SEt Carry. motsatsen till CLC (CLear Carry) Det känns lite som skoluppgift om man inte vet vad STA gör men frågar om SEC, berätta Länk till kommentar Dela på andra webbplatser More sharing options...
2Many2 Postad 18 oktober, 2008 Share Postad 18 oktober, 2008 jag bjuder på lite musik för assembler-proggare, genren kallas "push-pop" Länk till kommentar Dela på andra webbplatser More sharing options...
CamillaS Postad 18 oktober, 2008 Trådskapare Share Postad 18 oktober, 2008 jo det är en skoluppgift..men det var mest sec jag var nyfiken på. sen är det inte fel att få lite repetering av det gamla Länk till kommentar Dela på andra webbplatser More sharing options...
fhe Postad 18 oktober, 2008 Share Postad 18 oktober, 2008 men det var mest sec jag var nyfiken på Räckte svaret eller vill du förstå konceptet carry? sen är det inte fel att få lite repetering av det gamla Absolut inte, jag blev mest förvånad över att frågan dök upp, det är inte direkt mainstream med assembler för C64 nuförtiden :-) [inlägget ändrat 2008-10-18 20:26:06 av fhe] Länk till kommentar Dela på andra webbplatser More sharing options...
CamillaS Postad 18 oktober, 2008 Trådskapare Share Postad 18 oktober, 2008 nej jag har inte så klart för mig än om carry.. jag har en kod här jag fått som är en enkel variant av en uppgift jag fått. den lyder så här. inc d020 jsr ffe4 cmp #00 beq 1000 jsr ffd2 cmp #31 beq 101a cmp #32 beq 101a cmp #51 bne 1000 brk sec // 101a sbc #11 sta 1001 jmp 1000 jag hänger med hela vägen ner till efter brk om vad dom gör. det var därför jag ville ha lite hjälp. Länk till kommentar Dela på andra webbplatser More sharing options...
fhe Postad 18 oktober, 2008 Share Postad 18 oktober, 2008 Det var ett rätt ostandard sätt att skriva assember till c64 på :-) Nåväl, SEC sätter carry-flaggan. Därefter subtraherar man ackumulatorn med med 11 och sparar värdet i 1001, sen hoppar man till 1000 (vilket ärligt talat makear noll sense men vafan, det är ju en skoluppgift och det var länge sen sist . Det är på tok för länge sen för att jag ska komma ihåg men jag har för mig att carryn vid subraktioner är just låneminnet. Dvs om du ska subtrahera det hexadecimala talet 99 från 100 så gör du först: 00-99 => 01 + C (carryn sätts för att du var tvungen att låna). därefter gör du: 01 - 00 och eftersom carryn är satt så blir det 01 - 00 - 1 (du har ju lånat ett) => 0 När du sätter carryn innan subtraktionen så talar du alltså i princip om att ackumulatorn ska minskas med talet i subtaktionen och därefter med ett till. Själva carryn används vid annat än subtraktioner... Lite kan man se den som en extra bit för ackumulatorn. Jämför med "minnesraden" över själva uträkningen när du i lågstadiet fick lära dig att räkna + och - på rutat papper, när du la ihop 12+19 så började du med 9+2, skrev 1 underst och satte en liten etta över 1+1-kollumnen. Den lilla ettan är carry-flaggan, dvs det du bär (carry) med dig till nästa del av operationen. Edit: Var tvungen att färska upp lite, hittade länken nedan. Jag hade någon liknande i pappersform när jag hackade 6502/6510-assembler (inte bara på 64:an) och den var rätt användbar: http://www.masswerk.at/6502/6502_instruction_set.html Det är inte mer som skiljer 6510 från 6502 än att du kan använda den. [inlägget ändrat 2008-10-18 20:55:17 av fhe] Länk till kommentar Dela på andra webbplatser More sharing options...
Anjuna Moon Postad 19 oktober, 2008 Share Postad 19 oktober, 2008 Tragiskt att jag var tvungen att vara på släktmiddag när det inte bara dök upp en charmig fråga assemblerfråga, utan även att jag fick se att fhe var tillbaka i livet. Me be excited 041 Att sätta litta carrys vore väl trevligt. Varför inte dra igång det riktigt nördigt. Gissa vad jag börjar på snart.... MER: insåg att även jag glömt bort för mkt av den assemblern. Väldigt synd, för det var passion att txa:a på sin tid =) [inlägget ändrat 2008-10-19 05:47:44 av Anjuna Moon] Länk till kommentar Dela på andra webbplatser More sharing options...
fhe Postad 20 oktober, 2008 Share Postad 20 oktober, 2008 utan även att jag fick se att fhe var tillbaka i livet Tack! Inte för att jag tänkt maila men fungerar den adress du har i profilen fortfarande eller har du bara glömt uppdatera? Länk till kommentar Dela på andra webbplatser More sharing options...
Anjuna Moon Postad 20 oktober, 2008 Share Postad 20 oktober, 2008 nte för att jag tänkt maila men fungerar den adress du har i profilen fortfarande eller har du bara glömt uppdatera? Hej. jodå den fungerar. Det är förvisso min gamla jobbadress och jag kollar av den enbart nån gång i veckan. Men om du använder den får du även min nya mail i ett studsmeddelande . Länk till kommentar Dela på andra webbplatser More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.