Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Zapisać program

kojoy88
-
-
Posty:3
Rejestracja:12 lis 2007, o 14:04
Lokalizacja:Wodzisław Śląski
Zapisać program

Postautor: kojoy88 » 12 lis 2007, o 14:13

Witam, to mój pierwszy post na tym forum, mam taką sprawe, otóż na jutro muszę mieć napisany program w Asemblerze który mnoży dwie liczby 8-bitowe umieszczone w komórkach pamięci 10 H mnożna i 11 H mnożnik, wynik powinien być wpisany do komórek o adresach 21 H i 20 H, mam nadzieje że ktoś z was będzie w stanie mi pomóc

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 12 lis 2007, o 14:46

Nie napisałeś w jakim asemblerze. A to ma diametralne znaczenie.

kojoy88
-
-
Posty:3
Rejestracja:12 lis 2007, o 14:04
Lokalizacja:Wodzisław Śląski

Postautor: kojoy88 » 12 lis 2007, o 14:55

program jakiego używamy nazywa się Jagoda symulator systemu DSM 51

tak przykładowo wyglądał kalkulator sumujący:
ORG 000H
AJMP Start
ORG 100H
Start: MOV 20H,#11111111B
MOV 21H,#11111111B
MOV 22H,#11111111B
MOV 23H,#11111111B
CLR C
MOV A,20H
ADD A,22H
MOV 30H,A
MOV A,21H
ADDC A,23H
MOV 31H,A
MOV A,#0
ADDC A,#0
MOV 32H,A
MOV A,32H
LCALL WRITE_HEX
MOV A,31H
LCALL WRITE_HEX
MOV A,30H
LCALL WRITE_HEX
Stop: SJMP Stop
END

Awatar użytkownika
piotr_go
-
-
Posty:159
Rejestracja:27 sie 2004, o 12:18
Lokalizacja:far far away

Postautor: piotr_go » 12 lis 2007, o 15:03

mov a,10h
mov b,11h
mul ab
mov 21h,b (nie jestem pewien czy dobra kolejność bo w tej instrukcji coś chyba inaczej było)
mov 20h,a

kojoy88
-
-
Posty:3
Rejestracja:12 lis 2007, o 14:04
Lokalizacja:Wodzisław Śląski

Postautor: kojoy88 » 12 lis 2007, o 17:59

dzięki Piotr za odpowiedź, ale ja to musze mieć bardziej "rozbudowane" chyba, nie wykorzystując prostego polecenia mnóż, tylko ułożyć cały program na podobnej zasadzie jak ten kalkulator sumujący

Awatar użytkownika
piotr_go
-
-
Posty:159
Rejestracja:27 sie 2004, o 12:18
Lokalizacja:far far away

Postautor: piotr_go » 12 lis 2007, o 20:57

hehe, a w przykładzie który podałeś wykorzystujesz "proste dodawanie" :)
to co podałem to tylko funkcja mnożenia rejestrów, bez ich ustawiania i bez wyświetlania wyników

wersja "po twojemu" to pewnie będzie coś takiego(zaznaczam że nie znam tego symulatora który podałeś):

ORG 000H
AJMP Start
ORG 100H
Start:
MOV 10H,#11111111B
MOV 11H,#11111111B

mov a,10h
mov b,11h
mul ab
mov 21h,b
mov 20h,a

MOV A,21H
LCALL WRITE_HEX
MOV A,20H
LCALL WRITE_HEX
Stop: SJMP Stop
END

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 47 gości