O: Assembler - všeobecná logika
Je zaujímavé, že záporné čísla začínaju v druhej polovine celkového rozsahu hexa. Najnižšie číslo je ako prvé v tejto druhej polovine a ide to až do -1, čo je samozrejme FFFFFFFF.
Oznámení
Sbalit
Aktuálně žádná oznámení.
Assembler - všeobecná logika
Sbalit
X
-
O: Assembler - všeobecná logika
OK, je tam chyba. Najmenšie záporné číslo, ktoré sa nám vojde do datového registru je:
-2,147,483,648
Vložit komentář:
-
O: Assembler - všeobecná logika
Je jedno co sa pise.
V assemblery chod do príkazového riadku a zadaj:
? $7fffffff
Vypise ti výsledok vo formate -> HEX DEC ASCI BIN. A toto cislo je aj najvacsie kladne cislo. Bit 31 je 0.
Potom zadaj:
? $80000000
a dostanes najmensie zaporne cislo, aj ked to vyzera na zapornu nulu.
A zistis ci je chyba v AR alebo nie.Naposledy upravil ObiWanKen; 02.11.2015, 12:26:08.
Vložit komentář:
-
O: Assembler - všeobecná logika
Jen by mne něco zajímalo. Pokud pracujeme v rámci 1 byte se záporným číslem, máme k dispozici rozsah:
-128 až 127
Jeden datový registr je nám schopen uložit číslo maximálně o rozsahu 4 byte. To je když nepracujeme se záporným číslem:
0 až 4,294,967,295 (to je OK)
Pokud ale pracujeme se záporným číslem a tohle info je uvedeno v článku o Assembleru v Amiga Review tak pracujeme s maximálním rozsahem:
-2,147,483,647 až +2,147,483,647
tedy rozsah byl ukrácen o jedničku. Dle toho, jak se s záporným číslem pracuje v rozsahu 1 byte (tedy -128 až 127) by jsem čekal, že rozsah v rámci 4 byte bude:
-2,147,483,648 až +2,147,483,647
Né že by se v programování muselo pracovat zrovna s číslem -2,147,483,648.
Je tahle info z Amiga Review v pořádku? Nejaký logický důvod, proč tomu tak je, proč je práce se záporným číslem v rozsahu 4 byte ponížena o 1, když tomu tak s prací v rozsahu 1 byte není?
Vložit komentář:
-
O: Assembler - všeobecná logika
Bolo to v tom nastavení farieb, ale to chovanie miatlo... . Díky!
Vložit komentář:
-
O: Assembler - všeobecná logika
Skontroluj nastavenie farieb. Alebo napis program a spusti kompilaciu.
Len pre kontrolu
Vložit komentář:
-
O: Assembler - všeobecná logika
Autorem citovaného textu je Lisiak4 Přejít na původní příspěvekAno všimol som si, že používaš 2 krát TAB, ale pletie ma, že keď začnem písať návestie ktoré je v bielej farbe ako u Teba a dám TAB, prejde sa v editore na čiernu farbu - tak ako u Teba. Ale keď nenapíšem návestie a dám TAB ostane mi farba písma biela, ako keby sa stále jednalo o návestie... .
Vložit komentář:
-
-
O: Assembler - všeobecná logika
Ano všimol som si, že používaš 2 krát TAB, ale pletie ma, že keď začnem písať návestie ktoré je v bielej farbe ako u Teba a dám TAB, prejde sa v editore na čiernu farbu - tak ako u Teba. Ale keď nenapíšem návestie a dám TAB ostane mi farba písma biela, ako keby sa stále jednalo o návestie... .
Vložit komentář:
-
O: Assembler - všeobecná logika
Farby si nastavujes v Preferences/Syntax colors, mozno mas nastavene ine ako je na mojom obrazku. Preto ine farby.
V zaklade:
V prvom stlpci (celkom vlavo) pises navestia.
Dalej ked stlacis TAB pises instrukcie, mozes pouzit aj 2xTAB alebo aj 3xTAB.
Ja osobne pouzivam 2xTAB.
Aj rozlisenie nastavujes v Preferences, ako aj typ CPU a dalsie veci.
Ak chces potom zapisat nastavenie, kliknes na SAVE/USE alebo z príkazového riadku zadas WP (Write Preferences).
Vložit komentář:
-
O: Assembler - všeobecná logika
Jak donutím ten editor v Asm-Pro, aby mi psal zdrojový text, tedy text černým písmem, když nechci uvést návěstí? Mezery tabulátorem dělám. Ale bez návěstí mi vždy začne psát bílý text co je asi špatně. A po startu Asm-Pro musím pořád odkliknout rozlišení. To se nedá nějak obejít, aby jsem nemusel udělat ten 1 klik? Je to prkotina, ale ptám se.
Vložit komentář:
-
O: Assembler - všeobecná logika
Dočítam si to čo je v Amiga Review a budem sa snáď hrať ďalej (a možno aj skor a nebudem čítať do konca). Ale neboj Obi, pokiaľ sa budem hrať ďalej k tomu tvojemu príkladu sa vrátim! Vďaka! Beriem to všetko, ako to príde a sa mi chce. Teraz už som kaput. Som chorý a mám migrénu už o moc viac nedám.
Vložit komentář:
-
-
O: Assembler - všeobecná logika
Tvojmu vysvetleniu rozumiem. Ja som neskoncil s C len idem do toho, comu najmenej rozumiem. C, C++ a Assembler mám v hladáčiku a plánujem sa s týmito jazykmi hrať. Takže podľa chuti se budem venovať jednému z týchto 3 programovacích jazykov. Keď teda nebudem mať chuť na Assembler, začnem so základmi C++, alebo budem pokračovať s C kde som skončil. To že som sem dlhšie ohľadom C nenapísal neznamená, že som sa mu vobec nevenoval. V rámci klasického C sa nemám čo pýtať, alebo si vážne myslíš, že sa musím vždy na všetko pýtať?.
Keď skončím s C tak skončím so všetkým a nie len s C. To by som ale urobil radosť pár ľudom. Ale nemáš šainu, ako veľmi to chcem zvládnuť tak aký koniec doprdele!
Veľmi si vážim tvojich rád. Máš horúcu krv, ale to je len dobre. To je veľmi dobre! Najlepší predpoklad k tomu aby si si išiel svoju cestu. Nejlepší predpoklad k tomu, aby si nám tu zostal čo najdlhšie.
Vložit komentář:
-
O: Assembler - všeobecná logika
Tak uz si sa dal na asm ? Si robis srandu, nie ?
Scitanie aj odcitanie sa na 68k robi rovnako aj so znamienkom aj bez znamienka.
Cize ked das 126+3, tak vysledok je stale 129 ($81).
Zalezi na tebe s akymi hodnotami robis (ci so znamienkom=signed alebo bez znamienka=unsigned).
V Cecku si si dal bud BYTE alebo UBYTE.
V Asm, ak mas na mysli so znamienkom kontrolujes si V priznak. Ak mas na mysli bez znamienka kontrolujes si C priznak v SR.
K tej 1) :
Ked mas rozsah od -128 do +127, tak 126+3 = -127 preto lebo si presiahol hornu hranicu rozsahu (overflow) a zvysok priratavas od spodnej hranice rozsahu. Keby si mal 126+4, tak ti vyjde -126, 126+5=-125, atd...
Keby si bol v rozsahu, napr 123+3=126, tak ti nenastavi priznak pretecenia (overflow = V)
k tej 2):
Priznak prenosu sa nemeni z C na V ! Len sa nastavuje priznak V (pretecenie) a N (negativne). Je to koli tomu ako som pisal na zaciatku, 68k procesor scita 126+3 a vysledok je 129 a nastavi priznaky. Zalezi na programatorovi ako s tym nalozi, ci to bude brat ako 129 alebo ako -127.
Ked si das napr. 254+3, tak ti vyjde 1 a nastavi sa priznak C a priznak X, lebo si prekrocil rozsah 255.
Neviem ako si dostal -255, ked robis v rozsahu od 0 do 255.
Plati, co si sa docital aj v AR: Rozdiel je len ten, akym sposobom hodnoty INTERPRETUJEME !
Zase ti mozem odporucit, ak uz mas nainstalovany AsmOne alebo AsmPro, sprav si jednoduchy program, skompiluj a spust ho a pozri si hodnoty v registroch a priznaky...
Neviem naco ti to tu vlastne pisem, aj tak sa na to vyprdnes ako na C....
Au revoir !
PS: Mal si dat nadpis: "Assembler - Lisiakova logika"Naposledy upravil DJM; 31.10.2015, 19:30:19.
Vložit komentář:
Vložit komentář: