Un literal se poate specifica ca fiind reprezentarea unui numar scris în baza doi daca este urmat de caracterul 'b'.
Exemplu:
a db 10011001b
a db 153
a db 99h
reprezinta aceasi declaratie de octet.
Reprezentarea întregilor negativi
Un numar întreg x, negativ se prezinta în calculator în cod
complementar. Un numar întreg x, x<0, se reprezinta în cod complementar
astfel: începând de la bitul de rang 0 (cel mai din dreapta), spre
stânga, se pastreaza bitii de la reprezentarea lui |x| pâna la întâlnirea
primului bit de valoare 1, care se pastreaza si el. Începând de
la stânga acestuia, toti ceilaltî biti îsi inverseaza valorile.
Exemple:
Reprezentarea în cod complementar pe un octet al întregului -7
|-7| = 7 = (00000111)2
Aplicând algoritmul de mai sus obtinem (11111001)2=(F9)16, am subliniat singurul bit care si-a pastrat valoarea
Reprezentarea în cod complementar pe un octet al întregului -12
|-12| = 12 = (00001100)2
Aplicând algoritmul de mai sus obtinem (11110100)2=(F4)16, am subliniat bitii care si-a pastrat valoarea
Verificarea valorii din CF
Valoarea din Carry Flag se poate verifica cu ajutorul instructiunii jc (jump
if carry):
Exemplu:
mov al, 19
shr al, 1 ; în CF se pune bitul care iese în dreapta, de fapt restul împartirii lui al la 2
jc impar
; valoarea din al este para
jmp peste
impar:
; valoarea din al este impara
peste:
Pseudo operatii pe biti
În limbaj de asamblare exista si pseudo-operatii corespunzatoare operatiilor
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 numar
expresie1 shr numar
Observatie: Toate expresiile trebuie sa 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