Display System time by TASM (MP)

Aim: Program to display system time using DOS/BIOS interrupt.

.MODEL SMALL

 .STACK 100H

 .DATA

      PROMPT  DB  ‘Current System Time is : $’    

      TIME    DB  ’00:00:00$’      

 .CODE

     MAIN PROC

     MOV AX, @DATA              

     MOV DS, AX

     LEA BX, TIME              

     CALL GET_TIME           

     LEA DX, PROMPT     

     MOV AH, 09H              

     INT 21H                     

     LEA DX, TIME             

     MOV AH, 09H                

     INT 21H                     

     MOV AH, 4CH                

     INT 21H

      MAIN ENDP

     GET_TIME PROC

     PUSH AX                    

    PUSH CX                     

    MOV AH, 2CH               

    INT 21H                       

    MOV AL, CH                 

    CALL CONVERT          

    MOV [BX], AX             

    MOV AL, CL                 

    CALL CONVERT                 

    MOV [BX+3], AX                                            

    MOV AL, DH                   

    CALL CONVERT               

    MOV [BX+6], AX                             

    POP CX                     

    POP AX                    

    RET                        

   GET_TIME ENDP             

   CONVERT PROC 

    PUSH DX                     

    MOV AH, 0                 

    MOV DL, 10                

    DIV DL                     

    OR AX, 3030H         

    POP DX                       

    RET                         

   CONVERT ENDP                

 END MAIN

Download Here :Display Time

Display System time by TASM (MP)

Print Pattern using TASM

.model small

.data

a db 0h

.code

MOV AX,@DATA

MOV DS,AX

MOV CX,20

MOV AH,01

INT 21h

LOOP1:            MOV AH,02

            MOV DL,AL

            INT 21h

            DEC CX

            JNZ LOOP1

MOV AH,4ch

INT 21h

END

DOWNLOAD HERE : Print Pattern

Print Pattern using TASM

Number Search (MP)

.Model small

.data

a db 30h, 31h, 41h, 21h, 61h

num db 41h

msg db “Number found $”

msg1 db “Number not found $”

.code

mov ax,@data

mov ds,ax

mov al,num

mov cx,05

lea si,a

pqr:

      cmp al,[si]

      jz abc

      inc si

      dec cx

      jnz pqr

      mov dx,offset msg1

       mov ah, 9

      int 21h

mov ah,4ch

int 21h

abc: mov dx,offset msg

 mov ah, 9

 int 21h

mov ah,4ch

int 21h

end

Download here: Number search

Number Search (MP)

Program to transfer a data block without using string instructions.(MP)

AIM-Write an assembly language program to transfer a data block without using string instructions.

.MODEL small

.DATA

a db 1,2,3,4,5

b db 5

.CODE

LEA si,a

LEA di,b

mov cx,5

loop1:

mov al,[si]

mov [di],al

INC si

INC di

DEC cx

JNZ loop1

End

Download : Transfer a data block

Program to transfer a data block without using string instructions.(MP)

BASIC ARITHMETIC OPERATION ON TWO 16 BIT NUMBERS Microprocessor (MP)

Using TASM

AIM: WRITE AN ASM PROGRAM TO IMPLEMENT BASIC ARITHMETIC OPERATION ON TWO 16 BIT NUMBERS.

Program for Division of two 16 bit numbers:

.model small

.data

a dw 10

b dw 5

.code

MOV AX,@DATA

MOV DS,AX

MOV AX,a

MOV BX,b

div BX

END

Program for Multiplication of two 16 bit numbers:

.model small

.data

a dw 10

b dw 5

.code

MOV AX,@DATA

MOV DS,AX

MOV AX,a

MOV BX,b

mul BX

END

Program for Addition of two 16 bit numbers:

.model small

.data

a dw 10

b dw 5

.code

MOV AX,@DATA

MOV DS,AX

MOV AX,a

MOV BX,b

Add AX,BX

END

Program for Subtraction of two 16 bit numbers:

.model small

.data

a dw 10

b dw 5

.code

MOV AX,@DATA

MOV DS,AX

MOV AX,a

MOV BX,b

sub AX,BX

END

Download the file for output :BASIC ARITHMETIC OPERATION ON TWO 16 BIT NUMBERS with tasm 

BASIC ARITHMETIC OPERATION ON TWO 16 BIT NUMBERS Microprocessor (MP)

STOP AND WAIT PROTOCOL USING SOCKET PROGRAM

//SENDER//

import java.io.*;

import java.net.*;

import java.util.Scanner;

class stopwaitsender

{

public static void main(String args[]) throws Exception

{

stopwaitsender sws = new stopwaitsender();

sws.run();

}

public void run() throws Exception

{

Scanner sc=new Scanner(System.in);

System.out.println(“Enter no of frames to be sent:”);

int n=sc.nextInt();

Socket myskt=new Socket(“localhost”,9999);

PrintStream myps=new PrintStream(myskt.getOutputStream());

for(int i=0;i<=n;)

{

if(i==n)

{

myps.println(“exit”);

break;

}

System.out.println(“Frame no “+i+” is sent”);

myps.println(i);

BufferedReader bf=new BufferedReader(new InputStreamReader(myskt.getInputStream()));

String ack=bf.readLine();

if(ack!=null)

{

System.out.println(“Acknowledgement was Received from receiver”);

i++;

Thread.sleep(4000);

}

else

{

myps.println(i);

}

}

}

}

//RECEIVER//

import java.io.*;

import java.net.*;

class stopwaitreceiver

{

public static void main(String args[])throws Exception

{

stopwaitreceiver swr = new stopwaitreceiver();

swr.run();

}

public void run() throws Exception

{

String temp=”any message”,str=”exit”;

ServerSocket myss=new ServerSocket(9999);

Socket ss_accept=myss.accept();

BufferedReader ss_bf=new BufferedReader(new InputStreamReader(ss_accept.getInputStream()));

PrintStream myps=new PrintStream(ss_accept.getOutputStream());

while(temp.compareTo(str)!=0)

{

Thread.sleep(1000);

temp=ss_bf.readLine();

if(temp.compareTo(str)==0)

{ break;}

System.out.println(“Frame “+temp+” was received”);

Thread.sleep(500);

myps.println(“Received”);

}

System.out.println(“ALL FRAMES  WERE RECEIVED SUCCESSFULLY”);

}

}

OUTPUT FOR SENDER:

C:\javaprog>javac stopwaitsender.java

C:\javaprog>java stopwaitsender

Enter no of frames to be sent:

4

Frame no 0 is sent

Acknowledgement was Received from receiver

Frame no 1 is sent

Acknowledgement was Received from receiver

Frame no 2 is sent

Acknowledgement was Received from receiver

Frame no 3 is sent

Acknowledgement was Received from receiver

 

OUTPUT FOR RECEIVER:

C:\javaprog>javac stopwaitreceiver.java

C:\javaprog>java stopwaitreceiver

Frame 0 was received

Frame 1 was received

Frame 2 was received

Frame 3 was received

ALL FRAMES  WERE RECEIVED SUCCESSFULLY

NOTE:

Create separate java file for client and server

Run the Server.java file first then Client on different CMD or Terminal

Download the file here: SENDER Reciever

STOP AND WAIT PROTOCOL USING SOCKET PROGRAM

Routing algorithm (CN)

import java.lang.*;

import java.util.*;

class ralgo

{

public static void main(String[] args)

{

int i,j,row,k,m;

ralgo ral=new ralgo();

Scanner sc=new Scanner(System.in);

System.out.println(“Enter total no of nodes:”);

int n=sc.nextInt();

int distance[]=new int[n]; //declare distance array to store distance of nodes from source//

int parent[]=new int[n]; //declare parent array //

int visited[]=new int[n]; //this array is used to check whether particular node is visited or not//

int check[][]=new int[n][n];//this is the array where operation takes place//

int iarray[][]=new int[n][n];

System.out.println(“Enter inputs”);

//take input

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

iarray[i][j]=sc.nextInt();

}

}

//display input

System.out.println(“input array is as follows”);

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

System.out.print(”   “+iarray[i][j]);

}

System.out.println();

}

for(m=0;m<n;m++)

{

visited[m]=0;

parent[m]=0;

}

for(k=0;k<n;k++)

{

check[0][k]=iarray[0][k];

}

visited[0]=1;

for(row=1;row<n;row++)

{

i=ral.smallest(check,row-1,visited,n);

if(i==-1)

{

break;

}

System.out.println(“Smallest no is found at column “+i+” for row no “+(row-1));

visited[i]=1;

distance[i]=check[row-1][i];

System.out.println(“distance[“+i+”] is “+distance[i]);

parent[i]=row-1;

for(j=0;j<n;)

{

if(visited[j]==1)

{

j++;

}

else

{

if(distance[i]+iarray[i][j]<check[row-1][j])

{

check[row][j]=distance[i]+iarray[i][j];

}

else

{

check[row][j]=check[row-1][j];

}

j++;

}

}

}

System.out.println(“distance of each node from source is as follows:”);

for(k=0;k<n;k++)

{

System.out.println(“distance[“+k+”]=”+distance[k]+” whose parent node is “+parent[k]);

}

}

public int smallest(int check[][],int row_no,int visited[],int node)

{

int i=0,j,col_no=-1;

while(i<node && visited[i]==1)

{

i++;

}

if(i<node)

{

col_no=i;

}

j=i+1;

while(j<node)

{

while(j<node && visited[j]==1)

{

j++;

}

if(j<node)

{

if(check[row_no][col_no]>check[row_no][j])

{

col_no=j;

}

}

j++;

}

return col_no;

}

}

OUTPUT:

Enter total no of nodes:

4

Enter inputs

0

2

3

4

2

0

99

1

3

99

0

2

4

1

2

0

input array is as follows

   0   2   3   4

   2   0   99   1

   3   99   0   2

   4   1   2   0

Smallest no is found at column 1 for row no 0

distance[1] is 2

Smallest no is found at column 2 for row no 1

distance[2] is 3

Smallest no is found at column 3 for row no 2

distance[3] is 3

distance of each node from source is as follows:

distance[0]=0 whose parent node is 0

distance[1]=2 whose parent node is 0

distance[2]=3 whose parent node is 1

distance[3]=3 whose parent node is 2

Download the file here: Routing Algo

Routing algorithm (CN)

HAMMING CODE (CN)

import java.lang.*;

import java.util.*;

class hamming{

public static void main(String args[])

{

int k,value,counter=0,p,skip,val,j,consider,index,d;

boolean databitentered=true;

Scanner sc=new Scanner(System.in);

System.out.println(“Enter the size of data bits:”);

int m=sc.nextInt();

int databit[]=new int[m];

System.out.println(“Enter data bits which must be either 0 or 1:”);

for(int i=0;i<m;i++)

{

databit[i]=sc.nextInt();

//check if bits are entered and not the decimal nos //

if(databit[i]!=0 && databit[i]!=1)

{

databitentered=false;

break;

}

}

if(databitentered==true)

{

//procedure to get codeword

for(k=0;k<m;k++)

{

if((Math.pow(2,k))-1>=(m+k))   //here we have to check how many parity bits we require//

{

break;

}

}

int codeword[]=new int[m+k]; //here array is made which will consist of both parity bits and data bits//

for(int a=0;a<k;a++)

{

index=(int)Math.pow(2,a);

index–;

codeword[index]=-1;

}

value=m-1; //value will point to last location of databit array //

for(int n=0;n<m+k;n++)

{

if(codeword[n]==-1)

{

//do nothing//

}

else

{

codeword[n]=databit[value];

value–;

}

}

System.out.println(“codeword before parity bit inserted:”);

for(j=m+k-1;j>=0;j–)

{

System.out.print(” “+codeword[j]);

}

//calculating parity bit values//

for(int var=0;var<k;var++)

{

p=(int)(Math.pow(2,var));

consider=p;

skip=p;

val=p;

p–;

while(p<m+k)

{

d=0;                         //d is used to consider values upto 2^var//

while(d<consider && p<k+m)

{

if(codeword[p]==1)

{

counter++;

}

d++;

p++;

}

p=p+skip;

d=0;

}

if(counter%2==0)

{

codeword[val-1]=0;

counter=0;

}

else

{

codeword[val-1]=1;

counter=0;

}

}

//calculating parity value//

System.out.println();

System.out.println(“Codeword after insertion of parity bit:”);

for(j=m+k-1;j>=0;j–)

{

System.out.print(” “+codeword[j]);

}

}

else

{

System.out.println(“please enter data bits correctly it should be either 0 or 1.”);

}

}

}

OUTPUT:

Enter the size of data bits:

7

Enter data bits which must be either 0

1

0

0

1

1

0

1

codeword before parity bit inserted:

1  0  0 -1  1  1  0  -1   1  -1  -1

Codeword after insertion of parity bit:

1  0  0  1  1  1  0  0  1  0  1

Download the file here: Hamming

HAMMING CODE (CN)

CYCLIC REDUNDANCY CHECK(CRC) (CN)

import java.lang.*;

import java.util.*;

class crc{

public static void main(String args[])

{

int i,j,dw_size,div_size,no1,no2,var;

Scanner sc=new Scanner(System.in);

System.out.println(“Enter dataword size”);

dw_size=sc.nextInt();

int dataword[]=new int[dw_size];

System.out.println(“Enter dataword which must be bits(i.e 0 or 1 ):”);

for(i=0;i<dw_size;i++)

{

dataword[i]=sc.nextInt();

}

System.out.println(“Enter divisor size”);

div_size=sc.nextInt();

int divisor[]=new int[div_size];

for(i=0;i<div_size;i++)

{

divisor[i]=sc.nextInt();

}

int total_size=div_size + dw_size;

int codeword[]=new int[total_size-1];

for(i=0;i<total_size-1;i++)

{

if(i<dw_size)

{

codeword[i]=dataword[i];

}

else

{

codeword[i]=0;

}

}

System.out.println(“Codeword before CRC operation:”);

for(i=0;i<total_size-1;i++)

{

System.out.print(codeword[i]+” “);

}

//operation of division//

for(i=0;i<dw_size;i++)

{

var =i;

for(j=0;j<div_size;j++)

{

no1=codeword[i];

no2=divisor[j];

codeword[i]=no1 ^ no2;

i++;

}

while(codeword[var]==0)

{

i=var;

var++;

}

}

//end of operation//

System.out.println();

for(i=0;i<dw_size;i++)

{

codeword[i]=dataword[i];

}

System.out.println(“The codeword is “);

for(int k=0;k<total_size-1;k++)

{

System.out.print(codeword[k]+” “);

}

}

}

OUTPUT:

Enter dataword size

10

Enter dataword which must be bits(i.e 0 or 1 ):

1

1

0

1

0

1

1

0

1

1

Enter divisor size

5

1

0

0

1

1

Codeword before CRC operation:

1 1 0 1 0 1 1 0 1 1 0 0 0 0

The codeword is

1 1 0 1 0 1 1 0 1 1 1 1 1 0

Download the file here: CRC

CYCLIC REDUNDANCY CHECK(CRC) (CN)

CLIENT SERVER PROGRAM

//CLIENT SIDE// import java.io.*; import java.net.*; import java.util.Scanner; class client{ public static void main(String args[]) throws Exception { client myCli=new client(); myCli.run(); } public void run() throws Exception { Scanner sc=new Scanner(System.in); Socket myskt=new Socket(“localhost”,9999); PrintStream myps=new PrintStream(myskt.getOutputStream()); System.out.println(“Enter any message:”); myps.println(sc.nextLine()); } } //SERVER SIDE// import java.io.*; import java.net.*; class server{ public static void main(String args[]) throws Exception { server myServ=new server(); myServ.run(); } public void run() throws Exception { ServerSocket myss=new ServerSocket(9999); Socket ss_accept=myss.accept(); BufferedReader ss_bf=new BufferedReader(new InputStreamReader(ss_accept.getInputStream())); String temp=ss_bf.readLine(); if(temp!=null) { System.out.println(“Message was received successfully from client”); System.out.println(“Message received is ‘”+temp+”‘”); } else { System.out.println(“Error occurred”); } } } OUTPUT FOR CLIENT: C:\javaprog>javac client.java C:\javaprog>java client Enter any message: hello server OUPUT FOR SERVER: C:\javaprog>javac server.java C:\javaprog>java server Message was received successfully from client Message received is ‘hello server’ NOTE: Create separate java file for client and server Run the Server.java file first then Client on different CMD orTerminal Download the file here:Client Server

CLIENT SERVER PROGRAM