-
Data: 2014-10-13 19:43:25
Temat: Re: prosty assembler
Od: Piotr <S...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia 13.10.2014 R.e.m.e.K <p...@w...pl> napisał/a:
> Dnia Mon, 13 Oct 2014 05:25:56 -0700 (PDT), firr napisał(a):
>
>>> nazwac "signed unsigned int" czy jakos inaczej)
>>
>> w sumie przy takich zlozeniach to np taki bajt jest nie tylko suma signed i
unsigned ale nawet sumą plus signed i minus unsigned, czyli jeden
>> bajt moze przechowywac np wartosci od -255 do 255
>
> Teraz to juz przechodzisz samego siebie, zaslugujesz juz na wielkie Ś przed swoim
nickiem!
>:-)
Daj spokój, zaczynało być "ciekawie" ;)
Tak żeby podkręcić firra: bajt to po pierwsze nie to samo co oktet (nie
zawsze to jest 8 bitów, choć obecnie najczęściej tak jest, ale na przykład
polska Odra miała inaczej :D) a po drugie nawet jeśli zakładać dla
uproszczenia, że to oktet, to czy to jest liczba, kolor piksela czy na
przykład informacja która lampka ma sięświecić a która nie, zależy od
kontekstu. Procesory po prostu nie wnikają, dla nich bity i bajty nie mają
"typu", są operacje na przykład logiczne, traktujące bity niezależnie (OR,
AND, XOR, NOT itd.), są operacje traktujące bity jako liczbę (ADC, MUL
itp.), są operacje w ogóle nie wnikające w zawartość (PUSH, PULL, IN, OUT)
itd. Dodatkowo ALU wielu procesorów potrafi ten sam bajt podczas operacji
arytmetycznych traktować w różny sposób (już nawet 6502 ze wspomnianego
przez firra C64), na przykład jako liczbę z zakresu -128..127 (w kodzie
uzupełnień do dwóch) lub jako liczbę z zakresu 0..99 (kod BCD). Poza tym
procesory mają najczęściej dwie flagi, przeniesienie i przepełnienie, dla
uproszczenia dla 8 bitów przeniesienie jest ustawiane gdy wynik (na
przykład dodawania) nie mieści się w 8 bitach, a przepełnienie gdy wynik
nie mieści się w 7 bitach - w ten sposób ten sam układ ALU może dodawać
liczby w kodzie U2 zarówno ze znakiem jak i bez znaku (nie musi wiedzieć
który wariant chce programista, bo układ bitów w wyniku będzie taki sam), a
w gestii programisty jest sprawdzanie flag i reakcja w zależności od tego
jak te dane chce traktować. Oczywiście przy mnożeniu/dzieleniu sprawa
wygląda inaczej :D
Co do poprzednich wywodów czy robić porównania od razu ze skokiem czy
nie... ja proponuję jeszcze inne podejście, takie jak na przykład mają
procesory ARM, czyli wykonanie instrukcji (dowolnej!) można uzależnić od
pewnych flag w rejestrze statusu, na przykład:
CMP R1,R2 # Porównanie R1 i R2 i ustawienie flag w rejestrze statusu
SUBGT R1,R2,R1 # Wykonanie odejmowania (wynik do trzeciego argumentu, tu
# wynik leci do R1) tylko wtedy gdy poprzednie CMP ustawiło
# flagi "zachodzi warunek 'większy niż'"
W ten sposób po CMP nie trzeba w ogóle wstawiać instrukcji skoku (ani CMP
nie musi mieć jej "wbudowanej").
Następne wpisy z tego wątku
- 14.10.14 14:48 firr
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-21 ciekawy układ magnetofonu
- 2024-12-21 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2024-12-21 Warszawa => Java Developer <=
- 2024-12-21 Zalesie Borowe => Medical Equipment Service Engineer <=
- 2024-12-21 Żerniki => Specjalista ds. Employer Brandingu <=
- 2024-12-21 jak tacy debile
- 2024-12-20 Precedensy politycznie motywowanego nie wydawania w UE
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-20 czyste powietrze
- 2024-12-20 Katowice => Analyst in the Trade Development department (experience wi
- 2024-12-20 Opole => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-20 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=