Operacje bitowe za pomocą ADD, SUB, MUL, DIV

0

Załóżmy, że mam procesor RISC z operacjami tylko ADD, SUB, MUL, DIV. Wszystkie te operacje wykonywane są na liczbach 16-bitowych ze znakiem w kodzie U2.

Pytanie: czy -- i jak -- za pomocą tylko tych 4 operacji zrealizować operacje bitowe? NOT, AND, OR, XOR, SHL, SHR?

0

http://stackoverflow.com/questions/2982729/is-it-possible-to-implement-bitwise-operators-using-integer-arithmetic

Same przesunięcia to chyba nie tak źle, bo to dzielenie/mnożenie przez potęgi 2 zasadniczo, nie?

0

Właśnie nie bardzo, biorąc pod uwagę arytmetykę U2. SHL działa, ale SHR nie. Weźmy (dla przejrzystości 8-bitowe):

11111110 // -2
SHR 1, czyli dzielenie przez 2
wynik: 11111111 // -1
oczekiwany: 01111111 // 127
0

a warunkowy skok dostępny?
choćby przez warunkowe ADD do PC

0

No tak zapomniałem dodać: dostępny jest skok bezwarunkowy i warunkowe również: BRANCHP (branch if positive) i BRANCHZ (branch if zero). Początkowe stwierdzenie o dostępnych tylko operacjach arytmetycznych było mocno przesadzone, w rzeczywistości procesor ma całe 16 rozkazów! ;)

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