Specificarea numerelor în binar

 

Un literal se poate specifica ca fiind reprezentarea unui număr scris în baza doi dacă este urmat de caracterul “b”.

 

Exemplu:

            a db 10011001b

            a db 153

            a db 99h

 

reprezintă aceaşi declaraţie de octet.

Reprezentarea întregilor negativi

 

Un număr întreg x, negativ se prezintă în calculator în cod complementar. Un număr întreg x, x<0, se reprezintă în cod complementar astfel: începând de la bitul de rang 0 (cel mai din dreapta), spre stânga, se păstrează biţii de la reprezentarea lui |x| până la întâlnirea primului bit de valoare 1, care se păstrează şi el. Începând de la stânga acestuia, toţi ceilalţî biţi îşi inversează valorile.

 

Exemple:

 

Reprezentarea în cod complementar pe un octet al întregului –7

|-7| = 7 = (00000111)2

Aplicând algoritmul de mai sus obţinem (11111001)2=(F9)16, am subliniat singurul bit care şi-a păstrat valoarea

 

Reprezentarea în cod complementar pe un octet al întregului –12

|-12| = 12 = (00001100)2

Aplicând algoritmul de mai sus obţinem (11110100)2=(F4)16, am subliniat biţii care şi-a păstrat valoarea

Verificarea valorii din CF

 

Valoarea din Carry Flag se poate verifica cu ajutorul instrucţiunii jc (jump if carry):

 

Exemplu:

 

mov al, 19

shr al, 1 ; în CF se pune bitul care iese în dreapta, de fapt restul împărţirii lui al la 2

jc impar

; valoarea din al este pară

jmp peste

impar:

; valoarea din al este impară

peste:

Pseudo operaţii pe biţi

 

În limbaj de asamblare există şi pseudo-operaţii corespunzătoare operaţiilor logice: and, or, xor, not, shl, shr.

 

Sintaxa and, or, xor:

            expresie1 and expresie2

            expresie1 or expresie2

            expresie1 xor expresie2

 

Sintaxa not:

            not expresie

 

Sintaxa shl, shr:

            expresie1 shl număr

            expresie1 shr număr

 

Observaţie: Toate expresiile trebuie să fie evaluabile la compilare.

 

Nu este corecta o folosire de forma:

 

mov al, a or b

 

Dar este corecta o folosire de forma:

 

mov al, 1 or 7