9 svar
156 visningar
mekatronik 618
Postad: 22 mar 2022 20:42

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

Laguna Online 28611
Postad: 22 mar 2022 21:10

Man kan ju använda assemblern och sedan titta vad det blev med nåt program för att dumpa binärkod.

mekatronik 618
Postad: 22 mar 2022 21:27
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?

Laguna Online 28611
Postad: 22 mar 2022 21:32

Svaret varierar nog mycket beroende på processor och operativsystem, och för den processorn ni använder har jag ingen aning.

mekatronik 618
Postad: 23 mar 2022 07:21
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

Laguna Online 28611
Postad: 23 mar 2022 08:02

Slå upp instruktionerna och titta vad de har för opkod och hur resten av instruktionen kodas. Hittar du LDA?

mekatronik 618
Postad: 23 mar 2022 08:14
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)

Laguna Online 28611
Postad: 23 mar 2022 08:32

Och så adressen.

mekatronik 618
Postad: 23 mar 2022 10:39
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).

Laguna Online 28611
Postad: 23 mar 2022 11:11

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".

Svara Avbryt
Close