5 svar
278 visningar
erikerik är nöjd med hjälpen
erikerik 44 – Fd. Medlem
Postad: 22 aug 2018 17:44

Assembly

Har nog missuppfattat hur man skall tänka när man gör en LSL vid simpla assembly uppgifter. Skulle behöva lite hjälp med hur man skall tänka när man utför en sådan. 

deklarationerna är short a,b,c och int vi[18]

vi[c]=(a+b) and 0x0F

svaret till denna uppgift blir en LSL med #2. 

kan någon förklara varför det blir det och hur jag ska tänka när jag gör liknande uppgifter i fortsättningen

Lindehaven 820 – Lärare
Postad: 22 aug 2018 18:12

Kan du visa hela uppgiften? Gäller detta AVR's Logical Shift Left?

erikerik 44 – Fd. Medlem
Postad: 22 aug 2018 18:26

Lindehaven 820 – Lärare
Postad: 23 aug 2018 23:40
Lindehaven skrev:

Kan du visa hela uppgiften? Gäller detta AVR's Logical Shift Left?

jek7 35 – Fd. Medlem
Postad: 24 aug 2018 13:34

Jag är lite osäker på vad frågan egentligen gäller, men att göra left-shift är ett snabbt sätt att multiplicera med två, och LSL #2 blir således en multiplikation med fyra (*2*2). Man skulle alltså lika gärna (teoretiskt iallfall) kunna ha haft instruktionen MUL R2,R2,#4

Blev du klokare på det?

PeterÅ 842
Postad: 2 sep 2018 15:23

Kan du publicera frågan (istället för lösningsförslaget)?

Svara Avbryt
Close