You are on page 1of 6

Program 02: Case Conversion upper to lower lower to upper

.MODEL SMALL
.STACK 100H
.DATA

MSG1 DB 'ENTER A LOWER CASE LETTER $'


MSG2 DB 0AH,0DH,'ENTER A UPPER CAE LETTER $'
MSG3 DB 0AH,0DH,'LOWER CASE TO UPPER CASE $'
MSG4 DB 0AH,0DH,'UPPER CASE TO LOWER CASE $'
CHAR DB ?,'$'
TEMP DB ?, '$'

.CODE

MAIN PROC

MOV AX, @DATA


MOV DS, AX

LEA DX, MSG1


MOV AH,9
INT 21H

MOV AH, 1
INT 21H

SUB AL, 20H

MOV CHAR, AL

LEA DX, MSG3


MOV AH,9
INT 21H

MOV AH,2
MOV DL,CHAR
INT 21H

LEA DX, MSG2


MOV AH,9
INT 21H

MOV AH, 1
INT 21H

ADD AL, 20H

MOV TEMP, AL
LEA DX, MSG4
MOV AH,9
INT 21H

MOV AH,2
MOV DL,TEMP
INT 21H

MOV AH, 4CH


INT 21H

MAIN ENDP
END MAIN

Program 03:An Assembly program to read in two decimal inputs and print out the
smaller of the two, in decimal

DATA SEGMENT
NUM1 DB ?
NUM2 DB ?
MSG1 DB 10,13,"ENTER FIRST NUMBER TO COMPARE : $"
MSG2 DB 10,13,"ENTER SECOND NUMBER TO COMPARE : $"
MSG3 DB 10,13,"SMALLER NUMBER IS : $"
ENDS
CODE SEGMENT
ASSUME DS:DATA CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,9
INT 21H
MOV AH,1
INT 21H
MOV NUM1,AL
LEA DX,MSG2
MOV AH,9
INT 21H
MOV AH,1
INT 21H
MOV NUM2,AL
LEA DX,MSG3
MOV AH,9
INT 21H
MOV AL,NUM1
CMP AL,NUM2
JG SECOND
FIRST: MOV AH,2
MOV DL,NUM1
INT 21H
JMP EXIT
SECOND: MOV AH,2
MOV DL,NUM2
INT 21H
EXIT: MOV AH,4CH
INT 21H
ENDS
END START

Program 04: An Assembly program to read in two decimal inputs and print out their
sum, in decimal

DATA SEGMENT
NUM1 DB ?
NUM2 DB ?
RESULT DB ?
MSG1 DB 10,13,"ENTER FIRST NUMBER TO ADD : $"
MSG2 DB 10,13,"ENTER SECOND NUMBER TO ADD : $"
MSG3 DB 10,13,"RESULT OF ADDITION IS : $"
ENDS
CODE SEGMENT
ASSUME DS:DATA CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,9
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV NUM1,AL
LEA DX,MSG2
MOV AH,9
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV NUM2,AL
ADD AL,NUM1
MOV RESULT,AL
MOV AH,0
AAA
ADD AH,30H
ADD AL,30H
MOV BX,AX
LEA DX,MSG3
MOV AH,9
INT 21H
MOV AH,2
MOV DL,BH
INT 21H
MOV AH,2
MOV DL,BL
INT 21H
MOV AH,4CH
INT 21H
ENDS
END START

Program 05: Adding 2 two-digit numbers that results to a 3-digit in assembly


.MODEL SMALL
.STACK 1000
.DATA

MSGA DB 13,10,"Input first number: ","$"


MSGB DB 13,10,"Input second number:","$"
MSGC DB 13,10,"The sum is: ","$"

NUM1 db ?
NUM2 db ?
NUM3 db ?

.CODE

MAIN PROC NEAR

MOV AX, @DATA


MOV DS, AX

; get first number


LEA DX, MSGA
MOV AH, 09h
INT 21h

MOV AH, 01
INT 21H
SUB AL, '0'

MOV BL, AL

MOV AH, 01
INT 21H
SUB AL, '0'

MOV CL, AL

; get second number


LEA DX, MSGB
MOV AH, 09h
INT 21h

MOV AH, 01
INT 21H
SUB AL, '0'

MOV DL, AL

MOV AH, 01
INT 21H
SUB AL, '0'

MOV DH, AL

; add
MOV AL, CL
MOV AH, BL
ADD AL, DH
AAA
ADD AH, DL

MOV NUM1, AL
ADD NUM1, '0'

; if tens digit is less than or equal to 9


CMP AH, 9
JLE NOT_3DIGIT

IS_3DIGIT:
MOV AL, AH ; move value of ah to al
SUB AH, AH ; clear ah
ADD AL, 0 ; al + 0 = al (tens digit)
AAA ; move for addition
ADD AH, 0 ; ah + 0 + 1 = ah + 1 (hundreds digit)
MOV NUM2, AL
MOV NUM3, AH
ADD NUM2, '0'
ADD NUM3, '0'
; output sum
LEA DX, MSGC
MOV AH, 09h
INT 21h
MOV DL, NUM3
MOV AH, 02H
INT 21h
MOV DL, NUM2
MOV AH, 02H
INT 21h
JMP PRINT_LASTDIGIT

NOT_3DIGIT:
MOV NUM2, AH
ADD NUM2, '0'
; output sum
LEA DX, MSGC
MOV AH, 09h
INT 21h
MOV DL, NUM2
MOV AH, 02H
INT 21h

PRINT_LASTDIGIT:
MOV DL, NUM1
MOV AH, 02H
INT 21h

EXIT:
MOV AH, 4Ch
INT 21h

MAIN ENDP
END MAIN

Program 06: An Assembly program to read two decimal numbers, then multiply them
together and finally print out the result (in decimal )
DATA SEGMENT
NUM1 DB ?
NUM2 DB ?
RESULT DB ?
MSG1 DB 10,13,"ENTER FIRST NUMBER TO MULTIPLY : $"
MSG2 DB 10,13,"ENTER SECOND NUMBER TO MULTIPLY : $"
MSG3 DB 10,13,"RESULT OF MULTIPLICATION IS : $"
ENDS
CODE SEGMENT
ASSUME DS:DATA CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,9
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV NUM1,AL
LEA DX,MSG2
MOV AH,9
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV NUM2,AL
MUL NUM1
MOV RESULT,AL
AAM
ADD AH,30H
ADD AL,30H
MOV BX,AX
LEA DX,MSG3
MOV AH,9
INT 21H
MOV AH,2
MOV DL,BH
INT 21H
MOV AH,2
MOV DL,BL
INT 21H
MOV AH,4CH
INT 21H
ENDS
END START

You might also like