abc Asembler - elektronski priručnik
XI dio Logičke instrukcije
Instrukcija AND
Instrukcija AND se koristi za podršku logičkih izraza izvođenjem bitske (bitwise) AND operacije. AND operacija vraća 1, ako su upareni bitovi od oba operanda 1, inače vraća 0. Na primjer:
Operand1: 0101
Operand2: 0011
--------------------------------
Nakon AND -> Operand1: 0001
Operacija AND se može koristiti da se isprazni jedan ili više bitova. Na primjer, neka BL registar sadrži 0011 1010. Ako je potrebno isprazniti bitove višeg reda na nulu, AND-ujemo ih sa 0FH.
AND BL, 0FH ; This sets BL to 0000 1010
Pogledajmo drugi primjer. Ako želimo provjeriti da li je dati broj neparan ili paran, jednostavan test bi bio da provjerimo najmanje značajan bit tog broja. Ako je on 1, broj je neparan, inače je broj paran.
Pretpostavljajući da je broj u AL registru, možemo pisati:
AND AL, 01H ; ANDing with 0000 0001
JZ EVEN_NUMBER
Sljedeći program ilustruje ovo:.
Primjer
section .text
global _start ;must be declared for using gcc
_start: ;tell linker entry point
mov ax, 8h ;getting 8 in the ax
and ax, 1 ;and ax with 1
jz evnn
mov eax, 4 ;system call number (sys_write)
mov ebx, 1 ;file descriptor (stdout)
mov ecx,odd_msg ;message to write
mov edx, len2 ;length of message
int 0x80 ;call kernel
jmp outprog
evnn:
mov ah, 09h
mov eax, 4 ;system call number (sys_write)
mov ebx, 1 ;file descriptor (stdout)
mov ecx, even_msg ;message to write
mov edx, len1 ;length of message
int 0x80 ;call kernel
outprog:
mov eax, 1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
even_msg db 'Paran broj!' ;message showing even number
len1 equ $ - even_msg
odd_msg db 'Neparan broj!' ;message showing odd number
len2 equ $ - odd_msg
Kada se gore navedeni kod kompajlira i izvrši, on će proizvesti sljedeći rezultat:
Paran broj!
Zamijenimo vrijednost u ax registru sa neparnim brojem, poput:
mov ax, 9h ; getting 9 in the ax
Program će prikazati:
Neparan broj!
Slično, da bismo ispraznili čitav registar, možemo ga AND-ovati sa 00H.
Logičke instrukcije < Index > Instrukcija OR
|