Csomagolt BCD szám
Mint már korábban említettük, csomagolt BCD-szám csak összeadni és kivonni. Ahhoz, hogy más műveletek is végezhetők nekik tovább kell alakítani egy laza formában vagy a bináris. Így maguk csomagolt BCD-számok nem nagyon is érdekli a programozók, ezért az őket röviden.
Eleinte nézzük foglalkozik a probléma lényegét, és megpróbálja felvenni a két csomagolt kétszámjegyű BCD-szám:
Amint láthatjuk, a bináris formában, az eredmény 1101 1100 (vagy 220 tízes számrendszerben), ami helytelen. Ez történik az az oka, hogy a processzor nem ismeri a létezését BCD-számok és teszi őket a szabályok hozzátéve bináris számokat. Sőt, az eredmény egy BCD kell egyeznie 0001 0100 0010 (vagy a 142 decimális). Ez a példa szemlélteti, hogy módosítani kell az eredmények aritmetikai műveleteket csomagolt BCD-szám, mint ahogy az kicsomagolt BCD-számok. Kijavítani az eredmény hozzáadásával csomagolt szám annak érdekében, hogy képviselje decimális formában processzor parancsot DAA (decimális állítja be kiegészítés).
DAA parancs átalakítja tartalmát terül AL két csomagolt decimális számjegy (a algoritmus függelék, ahol a parancs részletesebben). A kapott összegzési egység (ha az kívül eredménye nagyobb, mint 99) van tárolva a zászló CF, ezáltal az átviteli tekinthető MSB.
Mi illusztrálja ezt a példát, hozzáadunk két kétjegyű szám BCD csomagolt méret (hirdetést 8,12).
Listing 8.12. Amellett, csomagolt BCD-számok
<3> .adatok; adatszegmens
<4> b dB 17h; csomagolt száma 17
<5> DB 45h; csomagolt száma 45
<6> összege dB 2 DUP (0)
<7> .kódot; egy kód szegmens
<8> Fő :; a belépési pont a program
<10> mov al, b
<13> JNC $ + 6, az átkelés a parancsot, ha az eredmény <= 99
<14> mov összeg + l, ah, transzfer venni hozzá (Score> 99)
<15> mov sum.al; fiatalabb csomagolt számadatok eredményeznek
Hasonlóan az összeadást, kivonást processzor, ha figyelembe vesszük BCD csomagolt bináris számokat. Végzünk kivonással 67 - 75. Mivel a processzor teljesítményét hozzáadásával kivonási módszer, és mi fogja követni ezt:
Mint látható, az eredmény megegyezik a 28 a tízes számrendszerben, hogy abszurd. A BCD eredmény legyen egyenlő 0000 1000 (vagy 8 a tízes számrendszerben). Amikor beállítja az kivonása csomagolt BCD-számok programozó, mint a kivonás csomagolatlan BCD-számok magának kell figyelemmel kíséri a jel. Ezt használja CF zászló, amely rögzíti egy kölcsön MSB. Szükségtelen kivonni BCD-számok szokásosan SUB vagy SBB kivonás parancsot. Javítás a kivonás eredménye, hogy képviselje, mint decimális szám végezzük DAS (DecimalAdjustforSubstraction) csapat.
A kérelem ismerteti algoritmust, amellyel DAS parancs átalakítja az AL regiszter tartalma két csomagolt tizedesjegy.
A processzor elég erős végrehajtásának eszköze a számítási műveleteket. Ebből a célból, hogy van egy blokk egész műveletek és egy blokk lebegőpontos műveletek. A legtöbb feladat segítségével assembly nyelven, meglehetősen aritmetika.
integer műveletek parancsok adatokkal dolgoznak két típusa: bináris és a bináris kódolt decimális (BCD-számok).
Bináris adatok egyaránt lehet jelölt vagy nincs. A processzor, sőt, nem tesz különbséget a számát előjeles és előjel nélküli. Ő csak segít pálya állapotváltozás néhány bitet operandusok és a beteg állapotától zászlókat. A műveletek az összeadás és kivonás esetén a számokat a megjelölés és az aláíratlan egy eszközt, és birtokában azonos szabályok vonatkoznak.
Ellenőrzése helyességét az eredmények és a helyes értelmezés terheli a programozó. Meg kell állapotának nyomon követésére a zászlók CF és OF EFLAGS lajstromból az adatfeldolgozást.
Üzemelhet előjel nélküli egész számot kell, hogy ellenőrizzék zászló CF Beállítás, hogy 1 jelzi, hogy a szám ki a net kicsit operandusok.
Az aláírt számok beállítását zászlót 1 jelzi, hogy ennek eredményeként a hozzá számokat az egyik jele az eredmény kívül a megengedett határértékek számok a jel a határ ebben a formátumban, és maga az eredmény előjelet (elveszett sorrendben).
Az eredmények szerint az aritmetikai műveletek úgy vannak beállítva, PF zászlók, ZF, SF.
Ezzel ellentétben, az összeadás és kivonás oktatás, szorzás és osztás parancsok segítségével, hogy vegye figyelembe a jeleket az operandusok.
Számtani parancs nagyon „szeszélyes”, hogy a dimenzió az operandusok, így a rendszer parancs processzor tartalmaz egy speciális csapatot követni a választ.
Bár a különböző bináris adat értékek elég nagy, hogy nem elég a kereskedelmi alkalmazások, így a processzor architektúra bevezetett eszközök dolgozni úgynevezett bináris kódolt decimális (BCD) adatai szerint.
BCD adatokat mutatja két formátumban, csomagolt és csomagolatlan. A leguniverzálisabb méret laza.