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
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
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
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
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
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
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
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 47 gości