Professional Documents
Culture Documents
II Cse Co-Lab Manual
II Cse Co-Lab Manual
NOTE : The Assembler only finds syntax errors : It will not tell you whether program
does what it is supposed to do. To determine whether your program works, you have to
run the program and test it.
Next step is to process the object file with linker.
C:\MASM\BIN>LINK filename. obj
Run File [Filename1.exe] : “filename1.exe”
NOTE: On IBM PC – type Computers, You must run the LINK program on
your .OBJ file even if it contains only one assembly module.
The linker produces a link file with the .EXE extension
(an execution file) Next Run C:\MASM\BIN> filename
4) After typing EDIT in command window you get Editor Window, Type the program in
editor.
5) After typing program save the file with “.asm” extension.
6) After saving program exit the editor then you get command window again.
For assembling the program type “masm ProgName.asm”. ex:- masm crt.asm
7) For linking the program type “Link Progname.obj”. ex:- link crt.obj
8) For executing the program type” Debug Progname.exe”. ex:-debug crt.exe
For viewing the registers status click “r” after “_”
For executing trace the whole program by typing “t” after “_”
1. Write assembly language programs to evaluate the expressions:
i) z = a + b – d * e
ii) z = x * y + w – v +u / k
a. Considering 8-bit, 16 bit and 32 bit binary numbers as a, b, d, e.
b. Considering 2 digit, 4 digit and 8 digit BCD numbers.
Take the input in consecutive memory locations and also Display the results by using
“int xx” of 8086. Validate program for the boundary conditions.
AIM:- . Write assembly language programs to evaluate the expressions
APPARATUS: MASM
PROGRAM:
8 BIT
DATA SEGMENT
A DB 2DH
B DB 8FH
D DB 2AH
E DB 03H
N1 DB 00H
N2 DB 00h
Z DB ?
DATA ENDS
a. Arrange in ascending
L3: INC SI
DEC CL
JNZ L1
DEC CH
JNZ L2
INT 03H
CODE ENDS
END START
b. Descending order.
DATA SEGMENT
STRING1 DB 99H,12H,56H,45H,36H
DATA ENDS
CODE SEGMENT JNC: JUMP IF NO CARRY
ASSUME CS:CODE,DS:DATA JNZ: JUNP IF NON ZERO
START: MOV AX,DATA
MOV DS,AX
MOV CH,04H
L3: INC SI
DEC CL
JNZ L1
DEC CH
JNZ L2
INT 03H
CODE ENDS
END START
3. Write an ALP of 8086 to take N numbe rs as input. And do the following ope rations
on the m.
Considering 8-bit, 16 bit binary numbe rs and 2 digit, 4digit and 8 digit BCD numbers.
Display the results by using “int xx” of 8086. Validate program for the boundary
conditions.
USING 8-BIT
a. Find max
JL MEANS First Operand < Second Operand
JUMP IF LESSTHAN
DATA SEGMENT CMP AL,BL ; AL=4 ,BL=5 THEN JUMP TO THE LOOP
STRING1 DB 08H,14H,05H,0FH,09H
RES DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV CX, 04H
MOV BL, 00H
LEA SI, STRING1
L2:
INC SI
DEC CX
JNZ L1
MOV RES,BL
INT 3
CODE ENDS
END START
JL label Short Jump if first operand is Less then second operand (as set by CMP instruction).
Signed.
FIND minimum
DATA SEGMENT
STRING1 DB 08H,14H,05H,0FH,09H
RES DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA JGE: JUMP IF GREATER THAN OR EQUAL
MOV DS, AX CMP AL,BL: AL=4,BL=3 ;
MOV CX, 04H ; 4>=3 SO TRUE THEN JUMP TO LOOP
IF AL=3,BL=4; 3>=4 SO FALSE THEN
MOV BL, 79H EXICUTE SEQUENCE INSTRUCTIONS
LEA SI, STRING1
L1:
MOV AL, [SI]
CMP AL, BL
JGE L2
MOV BL, AL
L2:
INC SI
DEC CX
JNZ L1
MOV RES,BL
INT 03H
CODE ENDS
END START
B. FIND AVERAGE:
8-BIT:
DATA SEGMENT
A DB 45h,42h,1AH ,3BH
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
CODE ENDS
END START
EXP NO: Program for searching for a number or character in a
string for 8086.
AIM: Write an alp program for to search a number or character from a string.
APPARATUS:
PROGRAM:
A) By using MASM:
ASSUME CS: CODE, DS: DATA
DATA SEGMENT
LIST DW 53H, 15H, 19H, 02H DEST EQU 3000H
COUNT EQU 05H
DATA ENDS
CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
INT 3H
CODE ENDS
END START
OUTPUT:
Input output
MEMORY Data MEMORY Data
LOCATION LOCATION
2000 53 3000 01
2001 15
2002 19
2003 02
RESULT: Program for search a number or character from a string performed by using
masm.
EXP NO: PALINDROME
a) AIM: Write an alp program TO Find given series is Palindrome or not
.
APPARATUS: MASM software
PROGRAM:
DATA SEGMENT
STR1 DB 'MADAM','$'
STRLEN1 DW $-STR1
STRREV DB 20 DUP(' ')
STR_PALIN DB 'STRING IS PALINDROME.','$'
STR_NOT_PALIN DB 'STRING IS NOT PALINDROME.','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
BEGIN: MOV AX, DATA
MOV DS, AX
MOV ES, AX
MOV CX, STRLEN1
ADD CX, -2
LEA SI, STR1
LEA DI, STRREV
ADD SI, STRLEN1
ADD SI, -2
L1: MOV AL, [SI]
MOV [DI], AL
DEC SI
INC DI
LOOP L1
MOV AL, [SI]
MOV [DI], AL
INC DI
MOV DL, '$'
MOV [DI], DL
MOV CX, STRLEN1
PALIN_CHECK: LEA SI, STR1
LEA DI, STRREV
REPE CMPSB
JNE NOT_PALIN
PALIN:
MOV AH, 09H
LEA DX, STR_PALIN
INT 21H
JMP EXIT
OUTPUT:
STRING IS PALINDROME
FACTORIAL OF A NUMBER USING RECURSION TECHNIQUE
DATA SEGMENT
MESS1 DB 'ENTER THE NUMBER(0-8):''$'
MESS2 DB 0AH,0DH, ' FACTORIAL OF THE GIVEN NUMBER=''$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
MOV AX,0001H
MOV BH,00H
CALL FACT
MOV BX,AX
CALL DISP
MOV AH,4CH
INT 21H
CODE ENDS
END START
OUTPUT:
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV BL,CH
CALL DISP
LEA DX,MESS4
MOV AH,09H
INT 21H
XOR BX,BX
AGAIN: INC COUNT
CALL DISP
ADD TEMP,BH
JC NEXT
MOV BL,TEMP
MOV TEMP,BH
MOV BH,BL
CMP BL,CH
JA NEXT
JMP AGAIN
NEXT:LEA DX,MESS3
MOV AH,09H
INT 21H
MOV AL,COUNT
ADD AL,00H
DAA
MOV BL,AL
CALL DISP
MOV AH,4CH
INT 21H
OUTPUT: