Home >> Resources >> Assembly Language Tutorials >> Source Codes
 

 

.MODEL SMALL
.STACK 64

DATA    SEGMENT
MSG     DB 'ENTER(xleft,ytop,xright,ybottom) OF RECTANGLE > $'
TEN     DB 0AH
XL      DW 00H
YT      DW 00H
XR      DW 00H
YB      DW 00H
POINTS  LABEL   BYTE
MAXPLEN   DB 20
PLEN      DB ?      
POINTSFLD DB 20 DUP(' ')  
DATA    ENDS

CODE    SEGMENT
        ASSUME CS:CODE,DS:DATA
START:  MOV AX,DATA
        MOV DS,AX
        CALL CLS
        CALL CURSOR
        CALL INPUT

        CALL CONVERT

        MOV AH,0FH
        INT 10H
        PUSH AX

        CALL SETMODE
        CALL DRAW
        CALL GETCH

        POP AX
        MOV AH,00H
        INT 10H

        MOV AX,4C00H
        INT 21H

        ;CLEARS SCREEN
CLS:    MOV AX,0600H
        MOV BH,07H
        MOV CX,0000H
        MOV DX,184FH
        INT 10H
        RET

        ;SET CURSOR
CURSOR: MOV DX,0000H
        MOV AH,02H
        MOV BH,00H
        INT 10H
        RET

        ;READ CO-ORDINATES STRING
INPUT:  MOV AH,09H
        LEA DX,MSG
        INT 21H

        MOV AH,0AH
        LEA DX,POINTS
        INT 21H
        RET

        ;SAVES INTEGER VALUES OF CO-ORDINATES INTO XL,YT,XR,YB FIELDS
CONVERT:LEA SI,POINTSFLD
        MOV CL,PLEN
NEXTNUM:MOV AX,0000H
NEXTDIG:MOV DL,[SI]
        CMP DL,' '
        JE BLANK
        MUL TEN
        MOV DH,00H
        SUB DL,30H
        ADD AX,DX
        INC SI
        DEC CL
        JNZ NEXTDIG
        JZ SAVE
BLANK:  INC SI
        PUSH AX
        DEC CL
        JNZ NEXTNUM
SAVE:   LEA BX,YB
        MOV [BX],AX     ;yb
        SUB BX,02H
        POP AX
        MOV [BX],AX     ;xr
        SUB BX,02H
        POP AX
        MOV [BX],AX     ;yt
        SUB BX,02H
        POP AX
        MOV [BX],AX     ;xl
        RET


SETMODE:MOV AH,00H
        MOV AL,04H
        INT 10H
        MOV AH,0BH
        MOV BH,07
        MOV BL,02
        INT 10H
        RET

        ;DRAWS RECTANGLE
DRAW:   MOV CX,XL
        MOV DX,YT
        CALL DROW
        MOV CX,XL
        MOV DX,YB
        CALL DROW
        MOV CX,XL
        MOV DX,YT
        CALL DCOL
        MOV CX,XR
        MOV DX,YT
        CALL DCOL
        RET

        ;DRAWS HORIZONTAL EDGE OF RECTANGLE
DROW:   MOV AH,0CH
        MOV AL,01H
L1:     INT 10H
        INC CX
        CMP CX,XR
        JNE L1
        RET

        ;DRAWS VERTICAL EDGE OF RECTANGLE
DCOL:   MOV AH,0CH
        MOV AL,01H
L2:     INT 10H
        INC DX
        CMP DX,YB
        JNE L2
        RET

        ;GET CHARACTER FROM KEYBOARD
GETCH:  MOV AH,10H
        INT 16H
        RET

CODE    ENDS
        END START

 

e-Campus ..!!

A dream come true 'Online Campus Recruitment' To reach the crème de la crème from any campus Across India..

Call Centre/BPO Jobs
Placement Papers
Look for the latest Sample papers of any software/Govt. Company here
 

Google