.MODEL SMALL .DATA VAR1 DW 1234h .CODE .STARTUP ; Compare two unsigned numbers MOV AX, 1 CMP AX, 5 JE IFEQUAL MOV AX, 5 CMP AX, 5 JE IFEQUAL MOV AX, 100 IFEQUAL: ; AX-? MOV BX, 34 CMP AX, BX JB IFBELOW1 ; unsigned! MOV BX, 0 IFBELOW1: MOV BX, 2 IFBELOW2: NEG BX ; BX-? CMP AX, BX JB IFBELOW2 ; unsigned! IFLESS: NEG BX ; BX-? CMP AX, BX JL IFLESS ; signed! ;If content of VAR1 is negative, set it to zero ;otherwise divide it by 2 and store back in VAR1 ; In C: if(VAR1<0) VAR1=0 ; else VAR1/=2; CMP VAR1, 0 JG DIVISION MOV VAR1, 0 JMP DONE DIVISION: SAR VAR1,1 ;Equivalent to division by 2 DONE: .EXIT END