An Assembly Language Program that reads a digit computes and prints ‘P’ if it is positive, ‘N’ if it is negative and ‘Z’ if it is zero ( Simulation of switch-case statement ) .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
.MODEL SMALL .STACK 100H .DATA PROMPT DB 'Enter the digit : $' MSG DB 'The entered digit is : $' .CODE MAIN PROC MOV AX, @DATA ; initialize DS MOV DS, AX LEA DX, PROMPT ; load and print PROMPT MOV AH, 9 INT 21H MOV AH, 1 ; read a character INT 21H MOV BL, AL ; save the input character into BL MOV AH, 2 ; carriage return MOV DL, 0DH INT 21H MOV DL, 0AH ; line feed INT 21H LEA DX, MSG ; load and print MSG MOV AH, 9 INT 21H CMP BL, 30H ; compare input digit and 0 JL @NEGATIVE ; jump to label @NEGATIVE if digit<0 JZ @ZERO ; jump to label @ZERO if digit=0 JG @POSITIVE ; jump to label @POSITIVE if digit>0 @NEGATIVE: ; jump label MOV DL, 'N' JMP @DISPLAY ; jump to label @DISPLAY @ZERO: ; jump label MOV DL, 'Z' JMP @DISPLAY ; jump to label @DISPLAY @POSITIVE: ; jump label MOV DL, 'P' JMP @DISPLAY ; jump to label @DISPLAY @DISPLAY: ; jump label MOV AH, 2 ; print the character INT 21H MOV AH, 4CH ; return control to DOS INT 21H MAIN ENDP END MAIN |