2.
TO ADD TWO NOS (8 BIT) CODE SEGMENT
MODEL SMALL ASSUME CS:CODE,DS:DATA
DATA SEGMENT START:
A DB 64
B DB 16 MOV AX,SEG A
DATA ENDS MOV DS,AX
.STACK MOV AL,A
CODE SEGMENT SUB AL,B
ASSUME CS:CODE,DS:DATA MOV DL,AL
START:
MOV AH,02H
MOV AX,SEG A INT 21H
MOV DS,AX MOV AH,4CH
MOV AL,A INT 21H
ADD AL,B
MOV DL,AL CODE ENDS
END START
MOV AH,02H
INT 21H [Link] SUBTRACT TWO NOS (16 BIT)
MOV AH,4CH MODEL SMALL
INT 21H DATA SEGMENT
A DW 255
CODE ENDS B DW 189
END START DATA ENDS
.STACK
[Link] ADD TWO NOS (16 BIT) CODE SEGMENT
MODEL SMALL ASSUME CS:CODE,DS:DATA
DATA SEGMENT START:
A DW 44
B DW 45 MOV AX,SEG A
DATA ENDS MOV DS,AX
.STACK MOV AX,A
CODE SEGMENT SUB AX,B
ASSUME CS:CODE,DS:DATA MOV DX,AX
START:
MOV AH,02H
MOV AX,SEG A INT 21H
MOV DS,AX MOV AH,4CH
MOV AX,A INT 21H
ADD AX,B
MOV DX,AX CODE ENDS
END START
MOV AH,02H
INT 21H [Link] MULTIPLY TWO NOS ( 8 BIT)
MOV AH,4CH MODEL SMALL
INT 21H DATA SEGMENT
A DB 16
CODE ENDS B DB 5
END START DATA ENDS
.STACK
[Link] SUBTRACT TWO NOS (8 BIT) CODE SEGMENT
MODEL SMALL ASSUME CS:CODE,DS:DATA
DATA SEGMENT START:
A DB 70
B DB 17 MOV AX,SEG A
DATA ENDS MOV DS,AX
.STACK MOV AL,A
MUL B INT 21H
MOV DL,AL
CODE ENDS
MOV AH,02H END START
INT 21H
MOV AH,4CH [Link] PRINT ALL EVEN ASCII CHARACTERS
INT 21H MODEL SMALL
DATA SEGMENT
CODE ENDS A DW 256
END START DATA ENDS
.STACK
[Link] MULTIPLY TWO NOS ( 16 BIT) CODE SEGMENT
MODEL SMALL ASSUME CS:CODE,DS:DATA
DATA SEGMENT START:
A DW 10
B DW 11 MOV AX,SEG A
DATA ENDS MOV DS,AX
.STACK L1:
CODE SEGMENT MOV AX,A
ASSUME CS:CODE,DS:DATA MOV DX,AX
MOV AH,02H
START: INT 21H
DEC A
MOV AX,SEG A DEC A
MOV DS,AX JNZ L1
MOV AX,A MOV AH,4CH
MUL B INT 21H
MOV DX,AX
CODE ENDS
MOV AH,02H END START
INT 21H
MOV AH,4CH [Link] PRINT ALL ODD ASCII CHARACTERS
INT 21H MODEL SMALL
DATA SEGMENT
CODE ENDS A DB 1
END START DATA ENDS
.STACK
[Link] DIVIDE TWO NOS CODE SEGMENT
MODEL SMALL ASSUME CS:CODE,DS:DATA
DATA SEGMENT START:
A DW 130
B DB 2 MOV AX,SEG A
DATA ENDS MOV DS,AX
.STACK MOV AL,A
CODE SEGMENT MOV CX,64
ASSUME CS:CODE,DS:DATA L1:
START: MOV AL,A
MOV DL,AL
MOV AX,SEG A MOV AH,02H
MOV DS,AX INT 21H
MOV AX,A INC A
DIV B INC A
MOV DL,AL LOOP L1
MOV AH,4CH
MOV AH,02H INT 21H
INT 21H
MOV AH,4CH CODE ENDS
END START MODEL SMALL
DATA SEGMENT
[Link] PRINT ASCII CHARACTERS FROM (00)H TO A DB "HELLO $"
(FF)H DATA ENDS
MODEL SMALL .STACK
DATA SEGMENT CODE SEGMENT
A DB 128 ASSUME CS:CODE,DS:DATA
DATA ENDS START:
.STACK
CODE SEGMENT MOV AX,SEG A
ASSUME CS:CODE,DS:DATA MOV DS,AX
START: LEA DX,A
MOV AH,09H
MOV AX,SEG A INT 21H
MOV DS,AX MOV AH,4CH
L1: INT 21H
MOV DL,A
MOV AH,02H CODE ENDS
INT 21H END START
DEC A
JNZ L1 [Link] TO PRINT ALL ELEMENTS OF AN
MOV AH,4CH ARRAY
INT 21H MODEL SMALL
DATA SEGMENT
CODE ENDS MY_ARR DB 65,66,67,68,69
END START DB ?
DB 50 DUP(0)
[Link] FIND FACTORIAL DATA ENDS
MODEL SMALL
DATA SEGMENT .STACK
A DB 5
DATA ENDS CODE SEGMENT
.STACK ASSUME CS:CODE,DS:DATA
CODE SEGMENT START:
ASSUME CS:CODE,DS:DATA
START: MOV AX,SEG MY_ARR
MOV DS,AX
MOV AX,SEG A LEA BX,MY_ARR
MOV DS,AX MOV CX,5
MOV AL,A L1:
DEC A MOV DX,[BX]
MOV AH, 02H
L1: INT 21H
MUL A ADD BX,1
DEC A
JNZ L1 LOOP L1
MOV DL,AL MOV AH,4CH
INT 21H
MOV AH,02H CODE ENDS
INT 21H END START
MOV AH,4CH
INT 21H [Link] PRINT LARGEST ELEMENT OF AN ARRAY
MODEL SMALL
CODE ENDS DATA SEGMENT
END START A DB 65,66,67,68,69
B DB 0
[Link] PRINT HELLO ON SCREEN DATA ENDS
.STACK CODE ENDS
CODE SEGMENT END START
ASSUME CS:CODE,DS:DATAC
START: [Link] PRINT SERIES OF FIRST 5 ODD NUMBERS
MODEL SMALL
MOV AX,SEG A DATA SEGMENT
MOV DS,AX A DB 49
MOV AL,A DATA ENDS
MOV B,AL .STACK
MOV CX,5 CODE SEGMENT
ASSUME CS:CODE,DS:DATA
L1: START:
MOV AL,[BX] MOV AX,SEG A
CMP B,AL MOV DS,AX
JLE L2 MOV CX,5
JG L3
L1:
L2: MOV AL,A
MOV B,AL MOV DL,AL
MOV AH,02H
L3: INT 21H
INC BX INC A
INC A
LOOP L1 LOOP L1
MOV DL,B MOV AH,4CH
MOV AH,02H INT 21H
INT 21H
MOV AH,4CH CODE ENDS
INT 21H END START
CODE ENDS
END START [Link] COMPARE TWO NOS AND FIND OUT
GREATEST AMONG THEM
[Link] PRINT SERIES OF FIRST 5 EVEN NUMBERS MODEL SMALL
MODEL SMALL DATA SEGMENT
DATA SEGMENT A DB 77
A DB 48 B DB 87
DATA ENDS C DB "B IS GREATER $"
.STACK D DB "A IS GREATER $"
CODE SEGMENT DATA ENDS
ASSUME CS:CODE,DS:DATA .STACK
START: CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MOV AX,SEG A START:
MOV DS,AX MOV AX,SEG A
MOV CX,5 MOV DS,AX
MOV AL,A
L1: CMP AL,B
MOV AL,A JG L2
MOV DL,AL
MOV AH,02H L1:
INT 21H LEA DX,C
INC A MOV AH,09H
INC A INT 21H
LOOP L1 JMP L3
MOV AH,4CH
INT 21H L2:
LEA DX,D
MOV AH,09H MOV DL,AL
INT 21H MOV AH,02H
INT 21H
L3: MOV AH,4CH
MOV AH,4CH INT 21H
INT 21H CODE ENDS
CODE ENDS END START
END START
[Link] A NUMBER AND ITS REVERSE
MODEL SMALL
[Link] TAKE INPUT FROM USER AND PRINT DATA SEGMENT
CHARACTER ON SCREEN A DB ?
MODEL SMALL B DB ?
DATA SEGMENT DATA ENDS
MSG_1 EQU 'ENTER THE CHARACTER : $' .STACK
MSG_2 EQU 0DH,0AH,'THE GIVEN CHARACTER IS : $' CODE SEGMENT
PROMPT_1 DB MSG_1 ASSUME CS:CODE,DS:DATA
PROMPT_2 DB MSG_2 START:
DATA ENDS MOV AH,01H
.STACK INT 21H
CODE SEGMENT MOV A,AL
ASSUME CS:CODE,DS:DATA MOV AH,01H
START: INT 21H
MOV AX, SEG PROMPT_1 ; INITIALIZE DS MOV B,AL
MOV DS, AX MOV DL,B
LEA DX, PROMPT_1 ; LOAD AND DISPLAY MOV AH,02H
PROMPT_1 INT 21H
MOV AH, 09H MOV AL,A
INT 21H MOV DL,AL
MOV AH, 01H ; READ A CHARACTER MOV AH,02H
INT 21H INT 21H
MOV BL, AL ; SAVE THE GIVEN CHARACTER MOV AH,4CH
INTO BL INT 21H
LEA DX, PROMPT_2 ; LOAD AND DISPLAY CODE ENDS
PROMPT_2 END START
MOV AH, 09H
INT 21H TO PRINT FIBONNACI SERIES
MOV AH, 02H ; DISPLAY THE CHARACTER MODEL SMALL
MOV DL, BL DATA SEGMENT
INT 21H A DB -1
MOV AH, 4CH ; RETURN CONTROL TO DOS B DB 1
INT 21H DATA ENDS
CODE ENDS .STACK
END START CODE SEGMENT
OR ASSUME CS:CODE, DS:DATA
MODEL SMALL START:
DATA SEGMENT MOV AX,SEG A
A DB ? MOV DS,AX
DATA ENDS MOV CX,10
.STACK L1:
CODE SEGMENT MOV AL,A
ASSUME CS:CODE,DS:DATA MOV BL,B
START: ADD AL,BL
MOV AX,SEG A MOV DL,AL
MOV DS,AX MOV AH,02H
MOV AH,01H INT 21H
INT 21H MOV A,BL
MOV B,AL
LOOP L1
MOV AH,4CH
INT 21H
CODE ENDS
END START