| [Back Home] |
I wrote a book about assembly programming for x86 intended for beginners (in czech) link is hereFixes for Czech version:
| Strana/kde |
|
| 99/kapitola 7.2, druhý odstavec Postupovat budeme stejně jako při převodu... |
Matoucí formulace ve větě. Lépe by bylo uvést,
že každé číslo můžu rozepsat do jednotlivých cifer podobným algoritmem
jako je převod čísel z desítkové soustavy do jiné. Například číslo 1234
v desítkové soustavě mohu rozdělit na cifry tak, že jej vydělím deseti
a dostanu 123 a zbytek 4 číslo 123 zase vydělím deseti a
dostanu 12 a 3. Je vidět, že postupným dělením dostávám cifry
čísla v soustavě o zvoleném základu, jsem-li schopen číslo v dané
soustavě, ve které zrovna počítám, dělit. |
| 146/tabulka nahoře |
Správné módy pro otevření souboru: AL = 0 jen pro čtení AL = 1 jen pro zápis AL = 2 pro čtení i zápis Chyby se vyskytují i v příkladech, nicméně ty záhadně fungují (i když otevřu standartní výstup jen pro čtení přesto to funguje) |
| 150/dole |
Stejné známky, stejné chyby správně je snad toto: BX = 0 jen pro čtení BX = 1 jen pro zápis BX = 2 pro čtení i zápis |
| 150/nahoře |
Špatný popis bitové masky registru DX: Registr DH jmusí být 0x00. Spodní 4 bity registru DL určují akce pokud soubor existuje, vrchní 4 bity zase akce pokud soubor neexistuje, tedy: Spodní 4 bity (registr DL) 0000 - skonči s chybou,jestliže soubor existuje 0001 - otevři jestliže soubor existuje 0010 - zkrať soubor na nulovou délku (nahraď) a otevři, pokud existuje Horní 4 bity (registr DL) 0000 - skonči s chybou jestliže soubor neexistuje 0001 - vytvoř soubor, pokud neexistuje |
| 151/kód |
Chybí instrukce pro mód otevření souboru, stačí
přidat: mov bx,0x0002 ;otevřít pro čtení a zápis Třeba těsně za řádku mov ax, 6C00h ;funkce DOSu inteligentni otevreni souboru Viz následující patch: --- copy.asm Wed Aug 13 13:10:46 2003 +++ copyOK.asm Wed Nov 10 20:34:52 2004 @@ -1,3 +1,4 @@ +;pouze pridana chybejici instrukce "mov bx, 0002h" na 9. radku a tento komentar %define DELKA_B 80 ;zadefinujeme symbolickou konstantu %define STDOUT 0x0001 ;specialni identifikacni cislo souboru pro ;standartni vystup. @@ -5,6 +6,7 @@ org 0x100 mov ax, 6C00h ;funkce DOSu inteligentni otevreni souboru +mov bx, 0002h mov cx, 0x20 ;atribut nove vznikleho souboru mov dx, 0x12 ;pozadovana akce mov si, jmeno_druheho_souboru ;offset na retezec specifikujici jmeno |
| někde jinde |
pravděpodobně tam ještě pár chybiček bude... ale
i tak až dosud jich není mnoho :) |
Zdar Ruik. Dostala sa mi do ruk Tvoja kniha, vydana v roku 2005, takze chyby, ktore uvadzas na web stranke su odstranene. Objavil som vsak este zopar drobnosti. Preklepy, chybne formulacie a odsadzenia uvediem na koniec. str. 154 Praca s dlhymi nazvami suborov je pristupna pod 0x71, nie 0x70, cize pre uvadzany priklad by malo ist o 0x716C. str. 189 Priklad Hello World! definuje velkost, resp. pocet znakov tohto retazca, no nepouziva ju. Namiesto toho je tam konstanta 012. str. 156, 157, 158 Zrejme chyba DTP v slove pamat, resp. pismeno t je prepisane pismenom z. str. 209 Zasobnikovemu oknu, ktere se sklada s parametru -- cesku gramatiku neovladam, no povedal by som, ze by sem patrila predlozka z. str. 181 ...kde prejdemte dalsi odkazy i uzitecne informace -- prejde ->m<- te str. 193 kdyz se otevreni nezdarilo, jinak v registru -- trosku matuci komentar str. 195 ; kdyz chyba, pak se skoncime -- "se" je navyse str. 196 ; z prvniho souboru -- odsadenie str. 197 Nevyhodu je nemoznost vytvorit odkaz... -- Nevyhodou eraser
Zdar, mam asik druhe vydanie tvojej knihy bo vela veci je tam uz opravenych, ale predsa som nasiel bug v poznamke: str.63, posledny riadok v priklade: mov dword [i],0 ;naplnime register ECX nulou Poznamka je skopirovana z prechadzajuceho prikladu. :-) Ved sa zapisuje na adresu navestia 'i'. Inak je kniha super, hlavne pre zaciatocnikov. bye Marian Nagy (nairam)EOF
