Wątek przeniesiony 2018-11-07 15:31 z Inne języki programowania przez Marooned.

dodawanie assembler

0

Kiedy w assemblerze trzeba używać addc a kiedy add?
Tylko w przypadku jeżeli chcemy uwzględnić bit przeniesienia,bo będzie nam w dalszym ciągu do czegoś potrzeby czy tutaj chodzi o coś innego? Najlepiej by było, żeby ktoś to pokazał na przykłądzie.

2

flaga carry jest potrzebna gdy chcesz operować na liczbach większych niż mają rejestry, np. chcesz dodać 64-bitowe liczby a rejestry mają 32 bity.

1

Jak masz addc to znaczy że do wyniku dodawania dodawany jest jeszcze bit znajdujący się w fladze carry.

Tak jak napisał Azarien, jak chcesz dodać liczbę 64 bitową mając do dyspozycji rejestry 32 bitowe, to najpierw za pomocą add dodajesz młodsze połówki, a później przy pomocy addc starsze. Wtedy przy dodawaniu starszych połówek liczby uwzględniasz jeszcze ewentualne przeniesienie, które mogło nastąpić przy dodawaniu młodszych.

https://courses.engr.illinois.edu/ece390/books/artofasm/CH09/CH09-3.html#HEADING3-3

0

TO proszę sprawdzić rozumowanie chcę dodać liczby 1101 i 1011 do siebie czterobitowe, rejestry mam dwubitowe tylko

 
mov a, #01b // dwa najmłodsze bity pierwszej liczby do akumulatora
mov R0,#11b // dwa najmłodsze bity drugiej liczby do akumulatora
add a,R0 // dodaj
mov R1,a // suma do R1
mov a ,#11b // dwa najstarsze 1 liczby do ak.
mov R1,#10b // dwa najstarsze 1 liczby do ak.
addc a,R1 //dodaj uwzględniając przeniesienie

i co ja mam z tym dalej zrobić żeby mieć wynik dodawania?

1 użytkowników online, w tym zalogowanych: 0, gości: 1