diff --git a/assemble.c b/assemble.c
index 63f684a5..57ef0cdb 100644
--- a/assemble.c
+++ b/assemble.c
@@ -1872,7 +1872,7 @@ static int rexflags(int val, opflags_t flags, int mask)
 {
     int rex = 0;
 
-    if (val >= 0 && val & 8)
+    if (val >= 0 && (val & 8))
         rex |= REX_B|REX_X|REX_R;
     if (flags & BITS64)
         rex |= REX_W;
@@ -1891,11 +1891,11 @@ static int evexflags(int val, decoflags_t deco,
 
     switch (byte) {
     case 0:
-        if (val >= 0 && val & 16)
+        if (val >= 0 && (val & 16))
             evex |= (EVEX_P0RP | EVEX_P0X);
         break;
     case 2:
-        if (val >= 0 && val & 16)
+        if (val >= 0 && (val & 16))
             evex |= EVEX_P2VP;
         if (deco & Z)
             evex |= EVEX_P2Z;