An AL Program to
; (a) display “?”,
; (b) read three initials,
; (c) display them in the middle of an 11*11 box of asterisks,
; (d) beep the computer .
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
.MODEL SMALL .STACK 100H .DATA PROMPT DB 0DH,0AH,'Enter three initials : $' ASTERISKS DB '***********',0DH,0AH,'$' NEXT_LINE DB 0DH,0AH,"$" .CODE MAIN PROC MOV AX, @DATA ; initialize DS MOV DS, AX MOV AH, 2 ; display "?" MOV DL, "?" INT 21H LEA DX, PROMPT ; load and display the string PROMPT MOV AH, 9 INT 21H MOV AH, 1 ; read first initial INT 21H MOV BL, AL ; save first initial in BL INT 21H ; read second initial MOV BH, AL ; save second initial in BH INT 21H ; read third initial MOV CL, AL ; save third initial in CL LEA DX, NEXT_LINE ; load and display the string NEXT_LINE MOV AH, 9 INT 21H INT 21H LEA DX, ASTERISKS ; load the string ASTERISKS MOV AH, 9 INT 21H ; display the string ASTERISKS 5 times INT 21H INT 21H INT 21H INT 21H MOV ASTERISKS+4, BL ; place the three initials in the position MOV ASTERISKS+5, BH ; of middle asterisks i.e. 4,5,6. MOV ASTERISKS+6, CL INT 21H ; display the modified string ASTERISKS MOV ASTERISKS+4, "*" ; place the "*" back in their original MOV ASTERISKS+5, "*" ; position MOV ASTERISKS+6, "*" INT 21H ; print the string ASTERISKS 5 times INT 21H INT 21H INT 21H INT 21H MOV AH, 2 ; Beep the computer MOV DL, 7H INT 21H MOV AH, 4CH ; return control to DOS INT 21H MAIN ENDP END MAIN |