• Onaltılı sayı sisteminin basamakları. Alfabe onaltılık sayı sistemi

    Onaltılık gösterim ("Onaltılık") ikili değerleri temsil etmenin uygun bir yoludur. Nasıl ondalık sayının on tabanı ve ikili sayının tabanı ikiyse, onaltılık sayının tabanı da on altıdır.

    16 tabanlı sayı sistemi 0'dan 9'a kadar olan sayıları ve A'dan F'ye kadar olan harfleri kullanır. Şekil 0000'den 1111'e kadar olan ikili sayılar için eşdeğer ondalık, ikili ve onaltılık değerleri göstermektedir. dört bit yerine tek bir onaltılık basamak.

    Baytları Anlamak

    8 bitin (bayt) standart bir ikili gruplama olduğu düşünülürse, 00000000 ile 11111111 arasındaki ikili sayılar, 00'dan FF'ye kadar onaltılık gösterimde gösterilebilir. 8 bitlik gösterimi tamamlamak için baştaki sıfırlar her zaman görüntülenir. Örneğin, 0000 1010 ikili değeri onaltılık olarak 0A olur.

    Onaltılık Değerleri Temsil Etmek

    Not:Şekilde gösterildiği gibi, 0'dan 9'a kadar olan karakterler için onaltılık değerleri ondalık değerlerden ayırmak önemlidir.

    Onaltılık değerler genellikle metinde 0x (örn. 0x73) veya bir alt simge 16 ile gösterilen bir değerle temsil edilir. Daha nadiren, 73H gibi H harfi ile takip edilebilirler. Ancak, alt simge metni komut satırında veya programlama ortamlarında tanınmadığından, onaltılık sayıların önünde teknik olarak "0x" (sıfır X) bulunur. Bu nedenle, yukarıdaki örnekler sırasıyla 0x0A ve 0x73 olarak gösterilecektir.

    Onaltılı gösterim, Ethernet MAC adreslerini ve Sürüm 6 IP adreslerini temsil etmek için kullanılır.

    Onaltılık Dönüşümler

    Ondalık ve onaltılık değerler arasındaki sayı dönüşümleri kolaydır, ancak hızlı bir bölme veya 16 ile çarpma her zaman uygun değildir. Bu tür dönüştürmelere ihtiyaç duyulursa, ondalık veya onaltılık değeri ikiliye dönüştürmek ve ardından ikili değeri ondalık veya onaltılı sayıya dönüştürmek genellikle daha kolaydır, hangisini elde etmek isterseniz.

    Uygulama ile, ondalık ve onaltılık değerlere karşılık gelen ikili bit modellerini tanımak mümkündür. Şekil, bazı 8 bitlik değerler için bu kalıpları göstermektedir.

    Onaltılık sayı sistemi 16 basamaktan oluşan bir alfabeye sahiptir:

    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, c, d, e, f.

    Hexadecimal sistemde sayı yazılırken 10, 11, 12, 13, 14, 15 sayılarını gösteren sayıları yazmak için sırasıyla A, B, C, D, E, F harfleri kullanılır.

    Sayıları onaltılıktan ondalığa dönüştürme

    Zaten bilinen formülü kullanarak herhangi bir onaltılık sayıyı ondalık sayıya dönüştürebilirsiniz.

    Örnekler.

      AE07 16 =10∙16 3 +14∙16 2 +0∙16 1 +7∙16 0 =44551 10 .

      100 16 =1∙16 2 +0∙16 1 +0∙16 0 =256 10 .

      58 16 =5∙16 1 +8∙16 0 =.88 10 .

      2A 16 \u003d 2 16 1 + 10 16 0 \u003d 42 10.

    Bir sayının ondalık sistemden onaltılık sisteme dönüştürülmesi, ikili sistemde olduğu gibi gerçekleştirilir.

    Sayıları onaltılıdan ikiliye ve tam tersi şekilde dönüştürme

    Herhangi bir onaltılık sayıyı ikiliye aşağıdaki gibi dönüştürebilirsiniz. Bir sayının her onaltılık basamağı, dört basamaklı bir ikili sayı olarak yazılır - dörtlü. Bundan sonra soldaki sıfırlar atılabilir.

    2) 2A= 0010 1010 2 = 101010 2 .

    3) 58 16 = 0101 1000 2 = 1011000 2 .

    Tersine, herhangi bir ikili sayıyı aynı şekilde onaltılıya dönüştürebilirsiniz. Sağdan sola doğru sayılan her dört ikili basamak, bir onaltılık basamak olarak yazılır. Bu rakamlar da sağdan sola düzenlenmiştir.

    Örnekler.

    2. 101010 2 = 10 1010 2 = 2A.

    3. 1011000 2 = 101 1000 2 = 58 16 .

    Sekizli sayı sistemi

    Sekizli sayı sistemi 8 basamaktan oluşan bir alfabeye sahiptir:

    0, 1, 2, 3, 4, 5, 6, 7.

    Bir sayıyı ondalıktan sekizliğe dönüştürmek ve tersi, ikiliye / ikiliden dönüştürmeye benzetilerek gerçekleştirilir.

    Sayıları sekizliden ikiliye ve tam tersi şekilde dönüştürme

    Bir sayının sekizli gösteriminin her basamağı, üç basamaklı bir ikili sayı olarak yazılır - üçlü.

    Örnekler.

    2563 8 = 010 101 110 011 2 =10101110011 2 .

    1001101 2 = 001 001 101 2 = 115 8 .

    1 numaralı laboratuvar dersi için metodik materyaller

    Laboratuvar dersinin konusu: Sayı sistemleri. Bilgi ölçümü.

    Saat sayısı: 2.

    Çözümlü Örnekler

      ÇeviriP -ary sisteminden 10-ary'ye. Bir sayı sistemindeki bir sayıyı ondalık sayıya dönüştürmenin gerekli olduğunu varsayalım. Bunu yapmak için, onu formda temsil etmemiz gerekiyor.

    11100110 2 = 1∙2 7 + 1∙2 6 + 1∙2 5 + 0∙2 4 + 0∙2 3 + 1∙2 2 + 1∙2 1 + 0∙2 0 = 128 + 64 + 32 + 4 + 2 = 230 10 .

    2401 5 = 2∙5 3 + 4∙5 2 + 0∙5 1 + 1∙5 0 = 250 + 100 + 0 + 1 = 351.

      Ondalık sistemden dönüştürP -ic.

    2.1 98 10 → X2 .

    Sayıyı 2'ye bölüyoruz. Sonra eksik bölümü 2'ye bölüyoruz. Eksik bölüm 2'den küçük olana kadar devam ediyoruz yani. 1'e eşittir.

      98: 2 = 49. Kalan - 0 .

      49: 2 = 24. Kalan - 1 .

      24: 2 = 12. Kalan - 0 .

      12: 2 = 6. Kalan - 0 .

      6: 2 = 3. Kalan - 0 .

      3: 2 = 1 . kalan - 1 .

    Son eksik bölüm 1 olduğu için işlem bitmiştir. Son eksik bölümden başlayarak tüm kalanları aşağıdan yukarıya yazıyoruz ve 1100010 sayısını alıyoruz. Yani 98 10 \u003d 1100010 2.

    2.2 2391 10 → X 16 .

    Sayıyı 16'ya bölün. Sonra kısmi bölümü 16'ya bölün. Kısmi bölüm 16'dan küçük olana kadar devam edin.

      2391: 16 = 149. Kalan - 7 .

      149: 16 = 9 . kalan - 5 .

    Son eksik bölüm (9) 16'dan küçük olduğu için işlem tamamlanmıştır. Son eksik bölümden başlayarak tüm kalanları aşağıdan yukarıya yazıyoruz ve 957 sayısını alıyoruz. Yani 2391 10 \u003d 957 16.

    2.3 12165 10 → X2 .

    Bölmeyi ikili bir sisteme çevirirseniz, memnun hantal bir süreç elde edersiniz. Önce sayıyı sekizlik sisteme dönüştürebilir, ardından sağdan sola sekizlik basamakları üçlülerle değiştirebilirsiniz.

    12165 10 = 27605 8 = 010 111 110 000 101 = 10111110000101.

      Sayı sisteminin tabanının belirlenmesiP .

    Bir çocuk kendisi hakkında şöyle yazdı: "Her elimde 5 ve ayaklarımda 12 olmak üzere 24 parmağım var." Bu nasıl olabilir?

    Çözüm. Sayı sisteminin tabanını belirleyin P. Sadece 10 10 parmak olduğunu bildiğimize göre 12 P =1∙P+2 = 10 10 . Buradan denklemi elde ederiz P + 2 = 10  P= 8. Yani çocuk sekizlik sistemdeki sayıları kastetmişti. Nitekim toplamda 24 8 = 2∙8+4 = 20 10 parmak ve bacaklarda 12 8 = 1∙8+2 = 10 10 vardır.

    Sonuç çoktan alındı!

    Sayı sistemleri

    Konumsal ve konumsal olmayan sayı sistemleri vardır. Günlük hayatta kullandığımız Arapça sayı sistemi konumsaldır, Roman ise değildir. Konumsal sayı sistemlerinde, bir sayının konumu, sayının büyüklüğünü benzersiz bir şekilde belirler. Ondalık sayı sistemindeki 6372 sayısı örneğini kullanarak bunu düşünün. Bu sayıyı sağdan sola sıfırdan başlayarak numaralandıralım:

    O zaman 6372 sayısı aşağıdaki gibi gösterilebilir:

    6372=6000+300+70+2 =6 10 3 +3 10 2 +7 10 1 +2 10 0 .

    10 sayısı, sayı sistemini tanımlar (bu durumda 10'dur). Verilen sayının konum değerleri derece olarak alınır.

    Gerçek ondalık sayı 1287.923'ü ele alalım. Ondalık noktadan itibaren sayının sıfır konumundan başlayarak sola ve sağa doğru numaralandırıyoruz:

    O zaman 1287.923 sayısı şu şekilde temsil edilebilir:

    1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1 10 3 +2 10 2 +8 10 1 +7 10 0 +9 10 -1 +2 10 -2 +3 10 -3 .

    Genel olarak, formül aşağıdaki gibi temsil edilebilir:

    C n S n + C n-1 S n-1 +...+C 1 S 1 + C 0 s 0 + D -1 s -1 + D -2 s -2 + ... + D -k s -k

    burada C n konumdaki bir tam sayıdır N, D -k - konumdaki kesirli sayı (-k), S- sayı sistemi.

    Sayı sistemleri hakkında birkaç söz Ondalık sayı sisteminde bir sayı bir dizi rakamdan (0,1,2,3,4,5,6,7,8,9), sekizli sayı sisteminde ise oluşur. ikili sistemde - basamak kümesinden (0.1), onaltılık sayı sisteminde - basamak kümesinden (0,1, 2,3,4,5,6,7) bir basamak kümesi 1,2,3,4,5,6, 7,8,9,A,B,C,D,E,F), burada A,B,C,D,E,F, 10,11 sayılarına karşılık gelir, 12,13,14,15 Tablo 1'de sayılar farklı sayı sistemlerinde temsil edilmektedir.

    tablo 1
    Gösterim
    10 2 8 16
    0 0 0 0
    1 1 1 1
    2 10 2 2
    3 11 3 3
    4 100 4 4
    5 101 5 5
    6 110 6 6
    7 111 7 7
    8 1000 10 8
    9 1001 11 9
    10 1010 12 A
    11 1011 13 B
    12 1100 14 C
    13 1101 15 D
    14 1110 16 E
    15 1111 17 F

    Sayıları bir sayı sisteminden diğerine dönüştürme

    Sayıları bir sayı sisteminden diğerine çevirmenin en kolay yolu, önce sayıyı ondalık sayı sistemine dönüştürmek ve ardından ondalık sayı sisteminden gerekli sayı sistemine çevirmektir.

    Sayıları herhangi bir sayı sisteminden ondalık sayı sistemine dönüştürme

    Formül (1)'i kullanarak, herhangi bir sayı sisteminden sayıları ondalık sayı sistemine dönüştürebilirsiniz.

    Örnek 1. 1011101.001 sayısını ikili sayı sisteminden (SS) ondalık SS'ye dönüştürün. Çözüm:

    1 2 6 +0 2 5 + 1 2 4 + 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 + 0 2 -1 + 0 2 -2 + 1 2 -3 =64+16+8+4+1+1/8=93,125

    Örnek2. 1011101.001 sayısını sekizlik sayı sisteminden (SS) ondalık SS'ye dönüştürün. Çözüm:

    Örnek 3 . AB572.CDF sayısını onaltılıdan ondalık SS'ye dönüştürün. Çözüm:

    Burada A-10 ile değiştirildi, B- 11'de, C- 12'de, F- 15'te.

    Sayıları ondalık sayı sisteminden başka bir sayı sistemine dönüştürme

    Sayıları bir ondalık sayı sisteminden başka bir sayı sistemine dönüştürmek için sayının tamsayı kısmını ve sayının kesirli kısmını ayrı ayrı çevirmeniz gerekir.

    Sayının tamsayı kısmı, ondalık SS'den başka bir sayı sistemine çevrilir - sayının tamsayı kısmı sayı sisteminin tabanına art arda bölünerek (ikili SS için - 2'ye, 8 basamaklı SS için - 8'e, 16 haneli için - 16'ya kadar vb. ) SS'nin tabanından daha az bir tam kalan elde etmek için.

    Örnek 4 . 159 sayısını ondalık SS'den ikili SS'ye çevirelim:

    159 2
    158 79 2
    1 78 39 2
    1 38 19 2
    1 18 9 2
    1 8 4 2
    1 4 2 2
    0 2 1
    0

    Olarak Şekil l'de görülebilir. 1, 159 sayısı 2'ye bölündüğünde bölüm 79'u verir ve kalan 1'dir. Ayrıca 79 sayısı 2'ye bölündüğünde bölüm 39'u verir ve kalan 1'dir vb. Sonuç olarak, bölümün geri kalanından (sağdan sola) bir sayı oluşturarak, ikili SS'de bir sayı elde ederiz: 10011111 . Bu nedenle şunları yazabiliriz:

    159 10 =10011111 2 .

    Örnek 5 . 615 sayısını ondalık SS'den sekizli SS'ye çevirelim.

    615 8
    608 76 8
    7 72 9 8
    4 8 1
    1

    Bir sayıyı ondalık SS'den sekizlik SS'ye dönüştürürken, 8'den küçük bir tam sayı kalanını elde edene kadar sayıyı sırayla 8'e bölmeniz gerekir. Sonuç olarak, bölümün geri kalanından (sağdan sola) bir sayı oluştururuz. sekizli SS'de bir sayı al: 1147 (bkz. Şekil 2). Bu nedenle şunları yazabiliriz:

    615 10 =1147 8 .

    Örnek 6 . 19673 sayısını ondalık sayı sisteminden onaltılık SS'ye çevirelim.

    19673 16
    19664 1229 16
    9 1216 76 16
    13 64 4
    12

    Şekil 3'ten de görüleceği gibi 19673 sayısını 16'ya bölerek kalanları 4, 12, 13, 9 elde etmiş oluyoruz. Onaltılı sayı sisteminde 12 sayısı C'ye, 13 - D sayısına karşılık geliyor. onaltılık sayımız 4CD9'dur.

    Doğru ondalık kesirleri (sıfır tamsayı kısmı olan bir gerçek sayı) s tabanlı bir sayı sistemine dönüştürmek için, bu sayı, kesirli kısım saf sıfır olana kadar art arda s ile çarpılmalıdır veya gerekli basamak sayısını elde ederiz. Çarpma sonucunda tamsayı kısmı sıfırdan farklı bir sayı çıkarsa, bu tamsayı kısım dikkate alınmaz (sırayla sonuca dahil edilir).

    Yukarıdakileri örneklerle inceleyelim.

    Örnek 7 . 0.214 sayısını ondalık sayı sisteminden ikili SS'ye çevirelim.

    0.214
    X 2
    0 0.428
    X 2
    0 0.856
    X 2
    1 0.712
    X 2
    1 0.424
    X 2
    0 0.848
    X 2
    1 0.696
    X 2
    1 0.392

    Şekil 4'te görüldüğü gibi 0.214 sayısı art arda 2 ile çarpılır. Çarpma sonucu tamsayı kısmı sıfırdan farklı bir sayı ise tamsayı kısmı ayrı yazılır (sayının soluna), ve sayı sıfır tamsayı kısmı ile yazılır. Çarpıldığında tamsayı kısmı sıfır olan bir sayı elde edilirse soluna sıfır yazılır. Çarpma işlemi, kesirli kısımda saf sıfır elde edilene veya gerekli basamak sayısı elde edilene kadar devam eder. Kalın sayıları (Şekil 4) yukarıdan aşağıya yazarak, ikili sistemde gerekli sayıyı elde ederiz: 0. 0011011 .

    Bu nedenle şunları yazabiliriz:

    0.214 10 =0.0011011 2 .

    Örnek 8 . 0.125 sayısını ondalık sayı sisteminden ikili SS'ye çevirelim.

    0.125
    X 2
    0 0.25
    X 2
    0 0.5
    X 2
    1 0.0

    0.125 sayısını ondalık SS'den ikiliye dönüştürmek için bu sayı art arda 2 ile çarpılır.Üçüncü aşamada 0 elde edilmiştir.Böylece aşağıdaki sonuç elde edilmiştir:

    0.125 10 =0.001 2 .

    Örnek 9 . 0.214 sayısını ondalık sayı sisteminden onaltılık SS'ye çevirelim.

    0.214
    X 16
    3 0.424
    X 16
    6 0.784
    X 16
    12 0.544
    X 16
    8 0.704
    X 16
    11 0.264
    X 16
    4 0.224

    Örnek 4 ve 5'i takiben 3, 6, 12, 8, 11, 4 sayılarını elde ederiz. Ancak onaltılık SS'de C ve B sayıları 12 ve 11 sayılarına karşılık gelir. Bu nedenle elimizde:

    0,214 10 =0,36C8B4 16 .

    Örnek 10 . 0.512 sayısını ondalık sayı sisteminden sekizli SS'ye çevirelim.

    0.512
    X 8
    4 0.096
    X 8
    0 0.768
    X 8
    6 0.144
    X 8
    1 0.152
    X 8
    1 0.216
    X 8
    1 0.728

    Var:

    0.512 10 =0.406111 8 .

    Örnek 11 . 159.125 sayısını ondalık sayı sisteminden ikili SS'ye çevirelim. Bunu yapmak için, sayının tamsayı kısmını (Örnek 4) ve sayının kesirli kısmını (Örnek 8) ayrı ayrı çeviririz. Bu sonuçları birleştirerek şunu elde ederiz:

    159.125 10 =10011111.001 2 .

    Örnek 12 . 19673.214 sayısını ondalık sayı sisteminden onaltılık SS'ye çevirelim. Bunu yapmak için, sayının tamsayı kısmını (Örnek 6) ve sayının kesirli kısmını (Örnek 9) ayrı ayrı çeviririz. Elde ettiğimiz bu sonuçları daha da birleştirerek.

    Onaltılık sayı sistemi. ilk programımız.

    Assembler'da program yazmak için hexadecimal sayı sistemini anlamanız gerekir. İçinde karmaşık bir şey yok. Ondalık sistemi hayatımızda kullanırız. Eminim hepiniz biliyorsunuzdur, bu yüzden onaltılık sistemi ondalık ile bir benzetme yaparak açıklamaya çalışacağım.

    Yani ondalık sistemde herhangi bir sayının sağına sıfır eklersek bu sayı 10 kat artacaktır. Örneğin: 1 x 10 = 10; 10x10 = 100; 100x10 = 1000 vb. Bu sistemde 0'dan 9'a kadar olan sayıları kullanıyoruz, yani. on farklı basamak (aslında, bu yüzden ondalık olarak adlandırılır).

    Onaltılık sistemde sırasıyla on altı "rakam" kullanıyoruz. Özellikle "sayılar" kelimesini tırnak içinde yazdım, çünkü sayılardan daha fazlasını kullanır. Ve gerçekten nasıl? Açıklıyorum: 0'dan 9'a kadar ondalık sayıyla aynı şekilde sayıyoruz, ancak o zaman şöyle olacak: A, B, C, D, E, F. Ne kadar zor olursa olsun F sayısı sayarsanız, ondalık sistemde 15'e eşit olacaktır (bkz. Tablo 1).

    Ondalık sayı

    onaltılık sayı

    Tablo 1. Ondalık ve onaltılık sistemler.

    Yani hexadecimal sistemde herhangi bir sayının sağına sıfır eklersek bu sayı artacaktır.16 bir kere.

    Örnek 1: 1 x 16 = 10; 10x16 = 100; 100x16 = 1000 vb.

    Örnek 1'de onaltılıyı ondalıktan ayırt edebildiniz mi? Ve bu sıradan: 10, 12, 45, 64, 12, 8, 19? Onaltılık veya ondalık olabilir. Karışıklığı önlemek ve bilgisayarın bir sayıyı diğerinden net bir şekilde ayırt edebilmesi için, Assembler'da onaltılık sayıdan sonra h veya H karakterini koymak gelenekseldir ( H, İngilizce'nin kısaltmasıdır. onaltılık (onaltılık). Kısaca, bazen basitçe denir altıgen ) . Ve ondalıktan sonra hiçbir şey koymayın. Çünkü 0'dan 9'a kadar olan sayılar her iki sistemde de aynı anlama geliyorsa 5 ve 5h olarak yazılan sayılar aynıdır.

    O. Örnek 1'i (yukarıya bakın) şu şekilde yazmak daha doğru olacaktır: 1 x 16 = 10h; 10s x 16 = 100s; 100s x 16 = 1000s. Veya şöyle: 1h x 10s = 10s; 10s x 10s = 100s; 100s x 10s = 1000s.

    Onaltılık sisteme neden ihtiyaç duyulduğunu sonraki sayılarda ele alacağız. Şimdilik aşağıda ele alacağımız örnek programımız için hexadecimal sayıların varlığını bilmemiz gerekiyor.

    Öyleyse özetleyelim. Onaltılık sayı sistemi 10 basamaktan (0'dan 9'a kadar) ve 6 Latin alfabesinden (A, B, C, D, E, F) oluşur. Hexadecimal sistemde herhangi bir sayının sağına sıfır eklersek bu sayı16 bir kere. Bu konuyu anlamak çok önemlidir., çünkü program yazarken sürekli kullanacağız.

    Şimdi biraz da montajcıda örnekleri nasıl oluşturacağım hakkında. Bunları HTML formatında sunmak pek uygun değil, bu yüzden önce numaralı satırlarla program kodunun kendisi olacak ve hemen ardından açıklamalar ve notlar olacak.

    Bunun gibi:

    çizgiler Program kodu
    (1) hareket ah,9

    Açıklamalar:

    (1) satırında bir şeyler yapıyoruz ve (15) satırında bir şeyler yapıyoruz.

    Büyük Talep: Programları sayfadan panoya KOPYALAMAYIN ve ardından bunları Not Defteri'ne (veya başka herhangi bir yere) YAPIŞTIRMAYIN! Bunları bir metin düzenleyicide manuel olarak yazın. Bir yazıcı varsa, programı seçin, seçilen parçayı yazdırın ve ardından kağıttan düzenleyiciye aktarın. Tüm örnekler sizin tarafınızdan yazılmalıdır! Bu, operatörlerin ezberlenmesini hızlandıracaktır.

    Ve ilerisi. Assembler'da küçük ve BÜYÜK harfler ayırt edilmez. Şunun gibi girişler:

    Montajcı eşit olarak algılanır. Elbette çeviriciyi küçük ve BÜYÜK karakterleri ayırt etmeye zorlayabilirsiniz, ancak bunu şimdilik yapmayacağız. Programın okunabilirliği için, ifadeleri küçük harflerle yazmak ve alt programların ve etiketlerin adlarını büyük harflerle başlatmak en iyisidir. Ama birisi için bu şekilde uygun olacaktır.

    O halde ilk programımıza geçelim:

    (1) CSEG segmenti

    (2) kuruluş 100 saat

    (4) Başlangıç:

    (6) hareket ah,9

    (7) mov dx, ofset Mesajı

    (8) int 21h

    (10) int 20h

    (11)

    (12) Mesaj db "Merhaba dünya!$"

    (13) CSEG biter

    (14) bitişBaşlangıç

    Bu örneğin tüm operatörlerini açıklamak için birkaç bölüme ihtiyacımız olacak. Bu nedenle, bu aşamada bazı komutların açıklamasını atlayacağız. Sadece böyle olması gerektiğini düşün. Çok yakın gelecekte bu operatörleri ayrıntılı olarak ele alacağız. Yani, (1), (2) ve (13) numaralı satırları yok sayarsınız.

    (3), (5), (9) ve (11) numaralı satırlar boş bırakılmıştır. Bu netlik için yapılır. Assembler bunları atlayacaktır.

    Şimdi diğer operatörlere geçelim. (4) satırından itibaren program kodu başlar. Bu, derleyiciye kodu başlatmasını söyleyen bir etikettir. Satır (14), end Begin (İngilizceye Başla Başlangıç; son son). Bu programın sonu. Genel olarak, kelime yerine Başlamak başka bir şey kullanılabilirdi. Örneğin, Başlangıç:. Bu durumda programı tamamlamamız gerekir. Bitir Başlat (14).

    (6) (8) satırlarında Merhaba dünya! mesajı görüntülenir. Burada kısaca işlemci kayıtlarından bahsetmek gerekiyor (bu konuyu bir sonraki sayıda daha detaylı ele alacağız).

    Bir işlemci kaydı, bir numarayı depolamak için ayrılmış bir hafızadır.

    Örneğin:

    İki sayıyı toplamak istiyorsak, matematikte şöyle yazarız:

    A, B ve C bazı verilerin saklanabileceği bir tür kayıtlardır (eğer bir bilgisayar hakkında konuşursak). A=5 şu şekilde okunabilir: A'ya 5 sayısını atayın .

    Bir kayda değer atamak için Assembler'da bir mov operatörü vardır (İngilizce taşıma yükünden). Satır (6) şöyle okunmalıdır: Kayıt defterine yükleniyor AH9 sayısı (başka bir deyişle, atarız AH9 numara). Aşağıda bunun neden gerekli olduğunu ele alacağız.

    Satır (7)'de sicile yüklüyoruz DX çıktısı alınacak mesajın adresi (bu örnekte bu, dize olacaktır)Merhaba dünya!$).

    Kesintiler, gelecekteki sürümlerde ayrıntılı olarak ele alınacaktır. Burada birkaç kelime söyleyeceğim.

    Yarıda kesmek MS-DOS bir tür alt programdır (bir parçası MS-DOS), kalıcı olarak bellekte bulunur ve herhangi bir zamanda herhangi bir programdan çağrılabilir.

    Yukarıdakileri bir örnekle düşünün (notları küçük harflerle vurgulayın):

    İki sayı toplama programı

    Ana SayfaProgramlar

    A=5 A değişkeninde 5 değerini giriyoruz

    B=8 değişken B değerine 8

    Altprogram Çağrısı Ekleme

    şimdi C 13

    A=10 aynı, sadece farklı sayılar

    B=25

    Altprogram Çağrısı Ekleme

    şimdi C 35

    Program Sonu

    Alt program ekleme

    C=A+B

    Alt programdan dönüş çağırdığımız yere dönüyoruz

    Alt programın sonu

    Bu örnekte, alt programı iki kez aradık. Ek değişkenlerde kendisine iletilen iki sayı ekleyen A ve B . Sonuç, C değişkenine yerleştirilir. Bir alt program çağrıldığında, bilgisayar nereden çağrıldığını hatırlar ve alt program bittiğinde, bilgisayar çağrıldığı yere geri döner. O. Alt programları herhangi bir yerden sınırsız sayıda çağırabilirsiniz.

    Bir çevirici programın (8) satırını yürütürken, satırı ekrana yazdıran bir alt program (bu durumda kesme olarak adlandırılır) çağırırız. Bunu yapmak için aslında gerekli değerleri kayıtlara koyuyoruz. Tüm gerekli işler (çizgi çıktısı, imleç hareketi) alt program tarafından gerçekleştirilir. Bu satır şu şekilde okunabilir: yirmi birinci kesmeye (İngilizce'den int. yarıda kesmek yarıda kesmek). Lütfen 21 rakamından sonra bir harf olduğunu unutmayın. H . Bu, zaten bildiğimiz gibi onaltılık bir sayıdır (ondalık olarak 33). Tabii ki hiçbir şey hattı değiştirmemizi engellemiyor int 21h'den int 33'e. Program düzgün çalışacaktır. Sadece Assembler'da kesme sayısını onaltılık olarak belirtmek alışılmış bir durumdur.

    (10) satırında, tahmin ettiğiniz gibi, kesme 20'yi aradık. H . Bu kesmeyi çağırmak için kayıtlarda herhangi bir değer belirtmeniz gerekmez. Yalnızca bir görevi yerine getirir: programdan çıkmak (DOS'tan çıkmak). 20h kesintisinin bir sonucu olarak, program başlatıldığı yere (yüklendi, çağrıldı) geri dönecektir. Örneğin, içinde Norton Commander veya DOS Navigator.

    Satır (12), çıkarılacak mesajı içerir. İlk kelime (İleti mesaj) mesajın adı. Herhangi bir şey olabilir (örneğin, karışıklık veya ip vb.). HAKKINDA sicile yüklediğimiz satıra (7) dikkat edin DX mesaj adresimiz

    Arayacağımız başka bir hat oluşturabiliriz. karışıklık2. Ardından, (9) satırından başlayarak aşağıdaki komutları girin:

    (10) hareket dx, ofset Karışıklık2

    (13) Mesaj db "Merhaba dünya!$"

    (14) Mess2 db "Benim! $"

    ve programımızı yeniden bir araya getirin. Umarım ne olacağını tahmin edersin

    Satırlardaki son karaktere dikkat edin Mesaj ve Karışıklık2 - $. Çizginin sonunu gösterir. kaldırırsak 21 H kesme, bellekte bir yerde bir karakterle karşılaşılıncaya kadar çıktı vermeye devam edecektir. $. Ekranda göreceğimizçöp .

    Bir hata ayıklayıcınız varsa, programımızın nasıl çalışacağını görebilirsiniz.

    Bu sorunun amacı anlamak değildi. her operatörle ayrıntılı olarak. bu imkansız çünkü henüz yeterli bilgiye sahip değilsin. 3-4 sürümden sonra Assembler'daki programın prensibini ve yapısını anlayacağınıza inanıyorum. Belki montaj dilinin son derece karmaşık olduğunu düşündünüz, ama inanın bana, bir bakışta.

    Onaltılık sayı sistemi(ayrıca onaltılık kod), 16 tamsayı tabanına sahip bir konumsal sayı sistemidir. Bazen literatürde onaltılık terimi de kullanılır ("onaltılık" olarak telaffuz edilir, İngilizce onaltılık için kısadır). Bu sayı sisteminin sayıları, yaygın olarak kullanılan 0-9 Arap rakamları ve A-F Latin alfabesinin ilk karakterleridir. Harfler aşağıdaki ondalık değerlere karşılık gelir:

    • * A-10;
    • *B-11;
    • *C-12;
    • *D-13;
    • * E - 14;
    • * K - 15.

    Böylece on Arap rakamı, altı Latin harfiyle birlikte sistemin on altı basamağını oluşturur.

    Bu arada, web sitemizde Çevrimiçi Kod Hesaplayıcıyı kullanarak herhangi bir metni ondalık, onaltılık, ikili koda dönüştürebilirsiniz.

    Başvuru. Onaltılık kod düşük seviyeli programlamada ve çeşitli bilgisayar referans belgelerinde yaygın olarak kullanılır. Sistemin popülaritesi, modern bilgisayarların mimari çözümleriyle doğrulanmaktadır: minimum bilgi birimi olarak bir bayta (sekiz bitten oluşan) sahiptirler - ve bir baytın değerini iki onaltılık basamak kullanarak yazmak uygundur. Bir bayt değeri #00 ile #FF arasında değişebilir (ondalık gösterimde 0 ila 255) - başka bir deyişle, onaltılık kod, kayıtta kullanılmayan "fazladan" basamak yokken baytın herhangi bir durumunu yazabilirsiniz.

    kodlanmış Unicode karakter sayısını temsil etmek için dört onaltılık basamak kullanılır. RGB (Kırmızı, Yeşil, Mavi) renk gösterimi de genellikle onaltılık bir kod kullanır (örneğin, #FF0000 parlak kırmızı bir gösterimdir).

    Onaltılık kod yazmanın bir yolu.

    Matematiksel yazma yöntemi. Matematiksel gösterimde, sistemin tabanı, sayının sağında bir alt simge olarak ondalık biçimde yazılır. 3032 sayısının ondalık gösterimi 3032 10 olarak yazılabilir, hexadecimalde bu sayı BD8 16 olarak yazılacaktır.

    Programlama dillerinin söz diziminde. Farklı programlama dillerinin sözdizimi, kullanarak bir sayı yazma biçimini ayarlar. onaltılık kod:

    * Assembly dilinin bazı çeşitlerinin sözdiziminde, sayının sağına yerleştirilen Latince "h" harfi kullanılır, örneğin: 20Dh. Sayı bir Latin harfiyle başlıyorsa, önünde sıfır bulunur, örneğin: 0A0Bh. Bu, değerleri kullanarak sabitlerden ayırt etmek için yapılır. onaltılık kod;

    * Diğer çevirici çeşitleri, Pascal (ve Delphi gibi çeşitleri) ve bazı Temel lehçeler "$" ön ekini kullanır: $A15;

    * HTML biçimlendirme dilinde ve basamaklı CSS dosyalarında, onaltılık gösterimle RGB biçiminde bir renk belirtmek için "#" öneki kullanılır: #00DC00.

    Onaltılık bir kod başka bir sisteme nasıl çevrilir?

    Onaltılıktan ondalığa dönüştürün. Onaltılık sistemden ondalık sisteme dönüştürme işlemi gerçekleştirmek için, orijinal sayıyı, onaltılık sayının basamaklarındaki basamakların tabanın derecesine göre çarpımlarının toplamı olarak göstermek gerekir.

    İkili SS

    onaltılık ss

    Örneğin, A14 onaltılık sayısını çevirmeniz gerekir: üç hanelidir. Kuralı kullanarak, tabanı 16 olan kuvvetlerin toplamı olarak yazarız:

    A14 16 = 10,16 2 + 1,16 1 + 4,16 0 = 10,256 + 1,16 + 4,1 = 2560 + 16 + 4 = 2580 10

    Sayıları ikiliden onaltılıya ve tersi dönüştürme.

    Çeviri için bir not defteri tablosu kullanılır. Bir sayıyı ikiliden ondalığa dönüştürmek için, onu sağdan sola doğru ayrı dörtlülere bölmek ve ardından tabloyu kullanarak her dörtlüyü karşılık gelen onaltılık basamakla değiştirmek gerekir. Bu durumda, basamak sayısı dördün katı değilse, o zaman sayının sağına karşılık gelen sıfır sayısını eklemek gerekir, böylece toplam ikili basamak sayısı dördün katı olur.

    Çeviri için defter tablosu.

    Onaltılıdan ikiliye dönüştürmek için ters işlemi gerçekleştirmelisiniz: her basamağı tablodaki bir dörtlü ile değiştirin.

    İkili SS

    sekizli SS

    Örnek onaltılıdan ikiliye dönüştürme: A5E 16 = 1010 0101 1110 = 101001011110 2

    Örnek ikiliden onaltılıya dönüştürme: 111100111 2 = 0001 1110 0111 = 1E7 16

    Bu örnekte, orijinal ikili sayıdaki basamak sayısı dört (9) değildi, bu nedenle toplam basamak sayısını 12'ye getirmek için sondaki sıfırlar eklendi.

    Otomatik çeviri. Onaltılık sistemden üç popüler sistemden birine (ikili, sekizli ve ondalık) hızlı dönüştürme ve ters çeviri, Windows ile birlikte verilen standart bir hesap makinesi kullanılarak gerçekleştirilebilir. Hesap makinesini açın, menüden Görünüm -> Programlayıcı'yı seçin. Bu modda, halihazırda kullanılan sayı sistemini ayarlayabilirsiniz (soldaki menüye bakın: Hex, Dec, Oct, Bin). Bu durumda mevcut sayı sistemini değiştirmek otomatik olarak çevirir.