Konvertera assemblerspråk/C till maskinkod
Hej, jag undrar ifall det finns någon enkel metod att konvertera en subrutin till maskinkod? Alltså för hand då, här är ett exempel vi fått att jobba med (vi kan använda C och assembler men vi jobbar helst med assembler):
http://www.cse.chalmers.se/edu/year/2014/course/EDA216/FlisProcessorHandbok-A4.pdf
Man kan ju använda assemblern och sedan titta vad det blev med nåt program för att dumpa binärkod.
Laguna skrev:Man kan ju använda assemblern och sedan titta vad det blev med nåt program för att dumpa binärkod.
Vi behöver veta hur man gör det för hand, men finns det något program som visar hur man får fram motsvarande binärkod som man sedan kan omvandla till maskinkod?
Svaret varierar nog mycket beroende på processor och operativsystem, och för den processorn ni använder har jag ingen aning.
Laguna skrev:Svaret varierar nog mycket beroende på processor och operativsystem, och för den processorn ni använder har jag ingen aning.
Du råkar inte heller veta då hur man omvandlar assembler kod till binär kod för hand då? Det är egentligen bara det steget jag inte riktigt förstår
Slå upp instruktionerna och titta vad de har för opkod och hur resten av instruktionen kodas. Hittar du LDA?
Laguna skrev:Slå upp instruktionerna och titta vad de har för opkod och hur resten av instruktionen kodas. Hittar du LDA?
LDA Adr = F1, F1 binärt blir 1111 0001. Men detta kan man väl inte omvandla till maskinkod? Man behöver två åtta bitars strängar för det (dvs 1 16 bitars sträng)
Och så adressen.
Laguna skrev:Och så adressen.
Det blev lite problematiskt nu påvägen;
Eftersom OP koden som står i FLISP handboken redan står i hexadecimal form får jag samma svar. Dvs, F1 = F1 (op kod till maskin kod).
Jag menade argumentet till LDA. Det står #Adr och det är tydligen adressen som instruktionen står på, och den kanske anges av "ORG $D5".