Assembler proqramlaşdırma dili

İşarəli ikilik ədədlərin toplanması

İşarəli ikilik ədədlərin toplanması

Qeyd edək ki, işarəli və işarəsiz ikilik ədədləri mikro­prosessor məntiqi olaraq fərqləndirmir. Ancaq, hesablama prosesinin gedişində, işarəli və işarəsiz ikilik ədədlərin emalında yarana biləcək xarakterik xüsusiyyətləri nəzərə alan vasitələr mövcudur. Bu vasitələrdən biri, işarəsiz ədədlərin toplanmasında, nəticənin qəbuledicidə yerləşib –yerləşməməsinin göstəricisi olan CF bayrağıdır. Yuxarda qeyd edildiyi kimi onun qiyməti ADC əmrində nəzərə alınır. Başqa vasitə isə, operandın böyük (işarə) mərtəbəsi­nin vəziyyətini qeyd edən EFLAGS registrinin (11-ci bitində yerləşən) OF daşma bayrağıdır.

Bilirik ki, kompüterdə müsbət ədədlər ikilik kodda, mənfi ədədlər isə əlavə kodda təsvir olunur. İşarəli və işarəsiz ikilik ədədlərin toplanmasındakı fərqi misallar üzərində araşdırmağa çalışaq. Aşağıdakı misallarda, əsasən, toplama əməliyyatında hər iki operandın işarə bitinin vəziyyəti və düzgün nəticənin alınması variantları göstərilib:

Misal 1
    30566= 01110111  01100110
+
    00687=00000010  10101111
=
     31253=01111010  00010101

14-cü mərtəbədən və 15-ci mərtəbəyə köçürmə yoxdur, Nəticə doğrudur (OF = 0).

Misal 2
   30566= 01110111  01100110
+
   30566= 01110111  01100110
=
    61132=11101110   11001100 

14-cü mərtəbədən köçürmə var; 15-ci mərtəbədən köçürmə yoxdur. Nəticə doğru deyil. Daşma baş verib. Nəticə işarəli ədədin maksimal (+32 767) qiymətini aşır.

Misal 3
- 0566=10001000 10011010
+
-4875=11101100  11110101
= 
-5441= 01110101 10001111

15-ci mərtəbədən köçürmə var; 14-cü mərtəbədən köçürmə yoxdur. Nəticə doğru deyil, çünki mənfi ədəd əvəzinə müsbət ədəd alınıb (böyük bitdə 0 yerləşir).

Misal 4  
- 4875=11101100 11110101
+
 - 4875=11101100 11110101
=
- 9750=11011001 11101010

14-cü və 15-ci mərtəbələrdən köçürmə var. Nəticə doğrudur.

Beləliklə, biz bütün halları araşdırdıq və müəyyən etdik ki, daşma situasiyası yarandıqda (OF=1 vəziyyətinə gətirilir), aşağıdakı mərtəbələrdə köçürmə baş verir:

  • 4-cü mərtəbədən (işarəli müsbət ədədlər üçün);
  • 5-ci mərtəbədən (mənfi ədədlər üçün).

Əksinə əgər hər iki mərtəbədə köçürmə baş verərsə və ya hər iki mərtəbədə köçürmə baş verməzsə, daşma (OF =1 vəziyyətinə gətirilir) baş vermir.

Beləliklə, nəticə kimi qeyd edək ki, daşma OF bayrağının köməyilə qeyd olunur. Böyük mərtəbədən köçürmənin olub-olmadığını müəyyən etmək üçün OF bayrağından başqa CF bayrağından istifadə olunur. Mikroprosessor işarəli və işarəsiz ədədləri fərqləndirmədiyi üçün, bu ədədlərlə aparılan bütün əməliyyatların düzgünlüyünün məsuliyyəti proqramçının öhdəsinə düşür. Bu səbəbdən də, işarəli ədədlərin toplanmasının bu vacib xüsusiyyətinə fikir vermək lazım gəlir. Bütün deyilənləri nəzərə alaraq, OF və CF bayraqlarının qiymətini analiz edərək, ədədlərin düzgün toplanması prosesini təşkil etmək və düzgün qərar qəbul etmək olar.

İşarəli və işarəsiz ədədlərin toplanması əmrləri eynidir