xor
lyszt.net obejmuje xor i inne instrukcje RISC-V w większych szczegółach.
Format kodowania
Opis
xor to instrukcja bitowa. Podobnie jak and i or, działa na 32 pozycjach rejestru (strona and omawia operacje bitowe). Nazwa oznacza exclusive OR (alternatywę wykluczającą). Na każdej pozycji wynik wynosi 1, gdy dwa bity wejściowe się różnią, jeden 0 i jeden 1, a 0, gdy są takie same. Poniższa forma stosuje to do rs1 i rs2 i zapisuje wynik do rd.
xor rd, rs1, rs2
Dwie właściwości czynią XOR użytecznym. Wartość poddana XOR z samą sobą daje 0, ponieważ każdy bit jest zgodny sam ze sobą, więc następna linia ustawia rejestr na zero.
xor t0, t0, t0
XOR z maską odwraca bity tam, gdzie maska ma 1, a pozostałe pozostawia bez zmian. Dwukrotne odwrócenie przywraca pierwotną wartość. Opierają się na tym proste szyfrowanie i kontrole błędów.
XOR sprawdza także równość. Po poniższej linii t2 wynosi zero, gdy dwa wejścia były identyczne, a wartość niezerową, gdy się różnią, a rozgałęzienie może przetestować wynik.
xor t2, t0, t1
Podręcznik RISC-V wymienia xor wśród operacji rejestr-rejestr, które odczytują rs1 i rs2 i zapisują wynik do rd. Wykonuje ona bitową logiczną alternatywę wykluczającą.
Przykład zeruje t0 do 0 niezależnie od tego, co wcześniej zawierał. Instrukcja li (load immediate) ze stałą zero robi to samo.
Przykład
xor t0, t0, t0 # t0 = 0
