[ASM] Jak dodac 4 lub wiecej liczb, suma >255
[ASM] Jak dodac 4 lub wiecej liczb, suma >255
Jak w temcie - jak dodac w asemblerze 4 albo i wiecej liczb ktorych suma wieksza jest niz 255
Liczby, które chcesz dodawać do siebie mają być 8-bitowe czy większe?
Asembler AVR (dodawanie liczb 8-bitowych):
Podobnie jest w asemblerze x86 (w 8051 zapewne także).
Chodzi tu głównie o flagę przeniesienia, tak jak powiedział przedmówca.
Asembler AVR (dodawanie liczb 8-bitowych):
Kod: Zaznacz cały
;przykladowe dane
ldi R18, 250
ldi R19, 186
ldi R20, 240
ldi R21, 92
ldi R22, 0 ;zerowanie R22
;dodawanie do R16 kolejnych liczb
;do R17 dodajemy tylko flage przeniesienia [0 albo 1]
add R16, R18
adc R17, R22
add R16, R19
adc R17, R22
add R16, R20
adc R17, R22
add R16, R21
adc R17, R22
;wynik jest w R17:R16 [0x0300 - 768]
Chodzi tu głównie o flagę przeniesienia, tak jak powiedział przedmówca.
Szczerze mowiac, to nie bardzo wiem ;]]] Ale prosilbym o napisanie dla 8 i 16 bitowych jesli istnieje taka mozliwosc.
Ddevil dzieki Ci ze napisales ale to chyba niewiele mi pomoze - korzystam z asemblera 8051 z instrukcjami takimi jak m.in: MOV, MOVC, ADD ADDC, - i nie moge zbytnio zrozumiec tego co napisales ;/ W programie ktorego uzywam jest 7 rejestrow - R0-R7.
Bylbym niezmiernie wdzieczny jakbys mogl mi napisac wersje dla asemblera 8051 - z w/w instrukcjami.
Ddevil dzieki Ci ze napisales ale to chyba niewiele mi pomoze - korzystam z asemblera 8051 z instrukcjami takimi jak m.in: MOV, MOVC, ADD ADDC, - i nie moge zbytnio zrozumiec tego co napisales ;/ W programie ktorego uzywam jest 7 rejestrow - R0-R7.
Bylbym niezmiernie wdzieczny jakbys mogl mi napisac wersje dla asemblera 8051 - z w/w instrukcjami.
Żaden problem przerobić to na 8051
To, co napisałem, jest dla AVRów, ale rozkazy są podobne. ADD jest ten sam dla obu procesorów. ADC = ADDC (dodawanie z przeniesieniem). Ładowanie wartości do rejestrów w 8051 to MOV, o ile się nie mylę. W moim programie tę funkcję pełni LDI. Jeżeli chodzi o rejestry robocze, to odpowiednio możesz użyć R0...R7.