A bitműveletek azok a műveletek, amiket bitenként végzünk el. [Gondoltad volna ?] Ezeket a műveleteket normális ember a legkevesebbet használja, de van amikor csak ezekkel lehet megoldani bizonyos problémákat. [ Az elite coderek meg a legtöbbet használják :)) [B.k.]

NOT művelet
    kiinduló érték: 01001010      NOT utáni érték : 10110101
Tehát az 1-ből 0 lesz, a nullából egy. Kiválóan használható 255-ból való kivonásra !
NEG művelet
    kiinduló érték: 01001010      NEG utáni érték : 10110101
Tehát először invertáljuk a biteket [ellenkezőjére állítjuk], majd növeljük a számot. Gyengébbek kedvéért a szám kettes komponensét vesszük.
AND művelet
          1.adat:         1100           2.adat:         1010           eredmény:       1000
Csak ott lesz egy, ahol mindkettő 1. A test utasítás ugyanezt csinálja, de csak a FLAGEKET állítja be. Pl:
  TEST al,00100010b   JZ   mindkettonulla   ...   mindkettonulla:   ...
OR művelet
          1.adat:         1100           2.adat:         1010           eredmény:       1110
Ha valamelyikben 1 van, akkor az eredmény 1 lesz.'OR reg,reg'= 'CMP reg,0', csak 1 bytetal rövidebb.
XOR művelet
          1.adat:         1100           2.adat:         1010           eredmény:       0110
Ha valamelyikben 1 van, akkor az eredmény 1 lesz,de ha két egyes találkozik, akkor 0 lesz.Ha pl. egy regiszter XOR-olunk önmagával, az olyan, mintha kinulláztuk volna !
  XOR AX,AX = MOV AX,0
ROL művelet
   kiinduló érték: 11001010      ROL utáni érték :10010101
carry értéke: 1, mivel a byte bal szélén kicsúszó bit értéke 1!A kiforgó bit beíródik a carry-be, és a byte másik szélén befordul !
ROR művelet
  kiinduló érték: 01001011       ROR utáni érték : 10100101
carry értéke: 1, mivel a byte bal szélén kicsúszó bit értéke 1! A kiforgó bit beíródik a carry-be, és a byte másik szélén befordul !
RCL művelet
Ha carry=0
  kiinduló érték: 01001011       RCL utáni érték : 10010110
carry értéke: 0, mivel a byte bal szélén kicsúszó bit értéke 0!Ha carry=1
  kiinduló érték: 01001011       RCL utáni érték : 10010111
carry értéke: 0, mivel a byte bal szélén kicsúszó bit értéke 0!
RCR művelet
Ha carry=0
  kiinduló érték: 01001011       RCR utáni érték : 00100101
carry értéke: 1, mivel a byte jobb szélén kicsúszó bit értéke 1!Ha carry=1
  kiinduló érték: 01001011       RCR utáni érték : 10100101
carry értéke: 1, mivel a byte jobb szélén kicsúszó bit értéke 1!
SHL művelet
   SHL [8 bites regiszter],1 - nél:   kiinduló érték: 01001010       SHL utáni érték :10010100
carry értéke: 0, mivel a byte bal szélén kicsúszó bit értéke 0!

Ez az utasítás egyel balra tolja a megadott regisztert. Ez utasítás megegyezik 2 hatványával való szorzással, ha például azt írjuk, hogy :

    mov AX,3   shl AX,2
Akkor az "AX"-ben 12 lesz. [3*2^2]
SHR művelet
   SHR [8 bites regiszter],1 - nél:   kiinduló érték: 01001010       SHR utáni érték :00100101
carry értéke: 0, mivel a byte jobb szélén kicsúszó bit értéke 0!

Ez az utasítás egyel jobbra tolja a megadott regisztert. Ez utasítás megegyezik 2 hatványával való osztással, ha például azt írjuk, hogy :

    'MOV AX,4'     'SHR AX,2'
Akkor az "AX"-ben 1 lesz. [4/2^2]Vigyázzunk, mert ez az utasítás NEM figyel az előjelre!
SAL művelet
Ez elméletileg megegyezik az SHL-lel, csak figyel az előjelre is, azonban az utasításkódja ugyanaz, mint az shl-nek.
SAR művelet
Ez az utasítás egyel jobbra tolja a megadott regisztert. Ez utasítás megegyezik 2 hatványával való osztással, és figyel az előjelre is ! Magyarul ha a legfölső bit 1 volt, akkor a művelet során 1-es csúszik be felülről..
Kiegészítés
Az az igazság, hogy az összes bitműveletet lehet cl-lel is végezni, tehát:
     'ROL eax,cl'