include \masm32\include\masm32rt.inc
.code
start:
m2m ebx, -5
print chr$(13, 10, "Masm32 switch, good example:", 13, 10)
.Repeat
print str$(ebx), 9
switch ebx
case -5
print "case -5", 13, 10
case 5
print "case +5", 13, 10
case -3 .. -2
print "case -3 .. -2", 13, 10
case 0
print "case NULL", 13, 10
case 2 .. 3
print "case +2 .. +3", 13, 10
default
print "...", 13, 10
endsw
inc ebx
.Until sdword ptr ebx>5
m2m ebx, -5
print chr$(13, 10, "failing example:", 13, 10)
.Repeat
print str$(ebx), 9
switch ebx
case -5
print "case -5", 13, 10
case 5
print "case +5", 13, 10
case -3 .. 3
print "case -3 .. 3", 13, 10
default
print "...", 13, 10
endsw
inc ebx
.Until sdword ptr ebx>5
inkey "--- hit any key ---"
exit
end start
Output:
Masm32 switch, good example:
-5 case -5
-4 ...
-3 case -3 .. -2
-2 case -3 .. -2
-1 ...
0 case NULL
1 ...
2 case +2 .. +3
3 case +2 .. +3
4 ...
5 case +5
failing example:
-5 case -5
-4 ...
-3 ...
-2 ...
-1 ...
0 ...
1 ...
2 ...
3 ...
4 ...
5 case +5