ALP Prasanth TVM

Views:
 
Category: Education
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Slide 1:

Introduction to Computers Prasanth.P.Nair (TVM) 9995390258

Slide 2:

Experiments. Introduction to 8086. To check whether a given number is odd or even. To calculate factorial of a number. T generate first N fibonacci number. Program to find largest of N number and its position in array. Sum of digit of number. Reverse a number. Check whether the given string is palindrome or not

Slide 3:

Experiments. To find the sum of series. (1+2+3+……N). To search given number in an array. Sort in ascending order.

Slide 4:

Given No is Odd or Even. CODE SEGMENT ASSUME CS:CODE, DS:DATA MOV AX,DATA MOV DS,AX DISPLAY MACRO ARG MOV DX,OFFSET ARG MOV AX,0900H INT 21H ENDM Macro Code segment start here.

Slide 5:

DISPLAY MES1 CALL READ CALL CHECK MOV AX,4COOH INT 21H

Slide 6:

READ PROC MOV AX,0100H INT 21H SUB AL,30H MOV CL,0AH MUL CL MOV BL,AL MOV AX,0100H INT 21H SUB AL,30H ADD BL,AL MOV N,BL RET READ ENDP Eg: 28 Read 2 first ASCII value of 2 is 32 32-30=02 02*10=20 BL 20 Read second number 8 ASCII value of 8 is 38 38-30 =08 BL 20, AL 08 20+08 28 Read procedure

Slide 7:

CHECK PROC DISPLAY MES2 MOV AH,00H MOV AL,N CALL PRINT MOV AL,N CLC RCR JNC L1 DISPLAY MES4 JMP L2 L1: DISPLAY MES5 L2: RET CHECK ENDP 0 0 1 0 c 0001 1 odd 0010 2 even 0011 3 odd 0100 4 even 0101 5 odd ---- ---- ---- 1010 10 even Check procedure

Slide 8:

PRINT PROC MOV BX,0AH MOV CX,00H L3: MOV DX,00H DIV BX ADD DX,30H PUSH DX INC CX CMP AX,00H JNZ L3 MOV AX,0200H L4: POP DX INT 21H LOOP L4 RET PRINT ENDP CODE ENDS BX 0A CX 00 DX 00 28/10 Remainder DX 08 Quotient AX 02 08+30=38 Remainder DX 02 Quotient AX 00 02+30=32 Loop l4 : CX decremented automatically, if CX=0, Exit from the loop -- 32 38 Print procedure Code segment end here. Stack

Slide 9:

DATA SEGMENT N DB? CR EQU 0DH LF EQU 0AH MES1 DB”ENTER TWO DIGIT NO: $” MES2 DB CR,LF “THE GIVEN NUMBER $” MES4 DB “IS ODD$” MES5 DB “IS EVEN$” DATA ENDS END OUT PUT ENTER A TWO DIGIT NO: 12 THE GIVEN NUMBER 12 IS EVEN Data segment End of the program

Slide 10:

Step1 : Start Step2 : Display “Enter a number” Step3 : Read a two digit number as ‘x’ Step4 : Shift one bit right and store it in ‘P’ Step5 : If p=1 then go to step 8 Step6 : Display Even Step7 : Go to step 9 Step 8 : Display Odd Step9 : Stop Algorithm

Slide 11:

Read Algorithm Step1 : Start Step2 : Input the first digit of a two digit number , ‘a’ Step3 : Multiply ‘a’ by 10, a=a*10 Step4 : Input second digit of x to b Step5 : x=a+b Step6 : Stop

Slide 12:

Display Algorithm Step1 : Start Step2 : Let ‘x’ be the number to display, count =0 Step3 : Divide ‘x’ by10, and store the remainder in a[count] and quotient in ‘x’ Step4 : count=count+1 Step5 : If x!=0 then goto step 3 Step6 : Display a[count] Step7 : count=count-1 Step8 : If count !=0 then goto step 6 Step9 : Stop

Slide 13:

Fibonacci Numbers.

Slide 14:

Step1 : Start Step2 : Read a two digit number “N” Step3 : F1=0,F2=1,I=1 Step4 : I=I+1 Step5 : F=F1+F2 Step6 : F1=F2 Step7 : F2=F Step 8 : Display F Step9 : If I<N then go to step 4 Step 10 : Stop Fibonacci Numbers Algorithm

Slide 15:

Read Algorithm Step1 : Start Step2 : Input the first digit of a two digit number , ‘a’ Step3 : Multiply ‘a’ by 10, a=a*10 Step4 : Input second digit of x to b Step5 : x=a+b Step6 : Stop

Slide 16:

Display Algorithm Step1 : Start Step2 : Let ‘x’ be the number to display, count =0 Step3 : Divide ‘x’ by10, and store the remainder in a[count] and quotient in ‘x’ Step4 : count=count+1 Step5 : If x!=0 then goto step 3 Step6 : Display a[count] Step7 : count=count-1 Step8 : If count !=0 then goto step 6 Step9 : Stop

Slide 17:

Fibonacci Numbers. CODE SEGMENT ASSUME CS:CODE, DS:DATA MOV AX,DATA MOV DS,AX DISPLAY MACRO ARG MOV DX,OFFSET ARG MOV AX,0900H INT 21H ENDM Macro Code segment start here.

Slide 18:

DISPLAY MESS CALL READ DISPLAY MESS1 MOV AL,N CALL PRINT DISPLAY MESS2 DISPLAY NEWLI MOV CL,N CMP CL,00H JZ EXIT MOV AL,F1 CALL PRINT DISPLAY SPACE MOV CL, N DEC CL MOV N,CL JZ EXIT BACK : MOV AL,F1 ADD AL,F2 MOV F,AL MOV AL,F2 MOV F1,AL MOV AL,F MOV F2,AL MOV AL,F CALL PRINT DISLPLAY SPACE MOV CL,N DEC CL MOV N,CL JNZ BACK EXIT: MOV AX,4C00H INT 21H F1=0,F2=1 F=F1+F2 F1=F2 F2=F DISPLAY F

Slide 19:

READ PROC MOV AX,0100H INT 21H SUB AL,30H MOV CL,0AH MUL CL MOV BL,AL MOV AX,0100H INT 21H SUB AL,30H ADD BL,AL MOV N,BL RET READ ENDP Eg: 28 Read 2 first ASCII value of 2 is 32 32-30=02 02*10=20 BL 20 Read second number 8 ASCII value of 8 is 38 38-30 =08 BL 20, AL 08 20+08 28 Read procedure

Slide 20:

PRINT PROC MOV AH,00H MOV BX,0AH MOV CX,00H L3: MOV DX,00H DIV BX ADD DX,30H PUSH DX INC CX CMP AX,00H JNZ L3 MOV AX,0200H L4: POP DX INT 21H LOOP L4 RET PRINT ENDP CODE ENDS BX 0A CX 00 DX 00 28/10 Remainder DX 08 Quotient AX 02 08+30=38 Remainder DX 02 Quotient AX 00 02+30=32 Loop l4 : CX decremented automatically, if CX=0, Exit from the loop -- 32 38 Print procedure Code segment end here. Stack

Slide 21:

DATA SEGMENT N DB? F1 DB 00H F2 DB 01H F DB? CR EQU 0DH LF EQU 0AH NEWLI DB CR,LF, “$” SPACE DB “ $” MESS DB “ENTER THE LIMIT: $” MESS1 DB CR,LF, “THE FIRST $” MESS2 DB “FIBONACCI NUMBER $” DATA ENDS END Data segment End of the program

Slide 22:

OUT PUT ENTER A THE LIMIT: 10 THE FIRST 10 FIBONACCI NUMBER 0 1 1 2 3 5 8 13 21 34

Slide 23:

Find Largest Number in an array and find its position.

Slide 24:

Algorithm Step1 : Start Step2 : Read “ How many number ; N” Step3 : Count = 1 Step4 : Input first number Step5 : large = first number, place = Count Step6 : Read the next number Step 7 : Count=Count+1 Step8 : If number > large then large = number place = Count Step9 : If Count <=N then go to step 6 Step10 : Display given numbers Step11 : Display large and its position Step12 : Stop

Slide 25:

CODE SEGMENT ASSUME CS:CODE,DS:DATA MOV AX,DATA MOV DS,AX DISPLAY MACRO ARG MOV DX,OFFSET ARG MOV AX,0900H INT 21H ENDM DISPLAY MES1 CALL READ MOV AL,TEMP MOV N,AL MOV COUNT,AL LEA BX,ARRAY L1:DISPLAY MES2 MOV AX,NOS CALL PRINT DISPLAY MES3 CALL READ MOV AL,TEMP MOV [BX],AL INC NOS INC BX DEC COUNT JNZ L1 CALL LARGEST MOV AL,N MOV COUNT,AL LEA BX,ARRAY DISPLAY MES4 L2:MOV AH,00H MOV AL,[BX] CALL PRINT DISPLAY SPACE INC BX DEC COUNT JNZ L2 DISPLAY MES5 MOV AH,00H MOV AL,L CALL PRINT DISPLAY MES6 MOV AX,PLACE CALL PRINT MOV AX,4C00H INT 21H OUT PUT ENTER HOW MANY NUMBER: 05 ENTER THE 1 NUMBER : 52 ENTER THE 1 NUMBER : 62 ENTER THE 1 NUMBER : 32 ENTER THE 1 NUMBER : 99 ENTER THE 1 NUMBER : 20 THE GIVEN NUMBER ARE 52 62 32 99 20 THE LARGEST NUMBER IS : 99 ITS POSITION IN THE ARRAY : 4

Slide 26:

READ PROC PUSH BX MOV BL,0AH MOV AX,0100H INT 21H SUB AL,30H MUL BL MOV CL,AL MOV AX,0100H INT 21H SUB AL,30H ADD CL,AL MOV TEMP,CL POP BX RET READ ENDP PRINT PROC PUSH BX MOV BX,0AH MOV CX,00H L3:MOV DX,00H DIV BX ADD DX,30H PUSH DX INC CX CMP AX,00H JNZ L3 MOV AX,0200H L4:POP DX INT 21H LOOP L4 POP BX RET PRINT ENDP Read and store in TEMP BX store inside the Stack BX restore from the Stack Read procedure Print procedure

Slide 27:

LARGEST PROC PUSH BX LEA BX,ARRAY MOV AL,N MOV COUNT,AL MOV CX,01H CMP COUNT,00H JZ RETURN MOV AL,[BX] MOV L,AL MOV PLACE,CX NEXT:MOV AL,[BX] CMP L,AL JZ CON MOV L,AL INC CX MOV PLACE,CX CON: INC BX DEC COUNT JNZ NEXT RETURN:POP BX RET LARGEST ENDP CODE ENDS 5 7 10 2 1 ….. Array BX L=5, Count=1 If (L < [BX] ) L= [BX] and count++ If(L>= [BX]) BX++ and count++ Code segment end here.

Slide 28:

DATA SEGMENT ARRAY DB 40 DUP(0) NOS DW 01H PLACE DW 00H L DB 00H N DB ? TEMP DB ? COUNT DB ? CR EQU 0DH LF EQU 0AH MES1 DB CR,LF,"ENTER HOW MANY NUMBERS $" MES2 DB CR,LF,"ENTER $" MES3 DB "NUMBER$" MES4 DB CR,LF,"THE GIVEN NUMBER ARE $" SPACE DB " $" MES5 DB CR,LF,"THE LARGE1ST NUMBER IS $" MES6 DB CR,LF,"ITS POSITION IN ARRAY IS $" DATA ENDS END Data segment End of the program

Slide 29:

OUT PUT ENTER HOW MANY NUMBER: 05 ENTER THE 1 NUMBER : 52 ENTER THE 2 NUMBER : 62 ENTER THE 3 NUMBER : 32 ENTER THE 4 NUMBER : 99 ENTER THE 5 NUMBER : 20 THE GIVEN NUMBER ARE 52 62 32 99 20 THE LARGEST NUMBER IS : 99 ITS POSITION IN THE ARRAY : 4

Slide 30:

Sum of digit of a number

Slide 31:

Step1 : Start Step2 : Sum=0 Step3 : Read a digit “x” Step4 : Sum= Sum + x Step5 : go to step 3 until x= Enter key Step6 : Stop Sum of Digit Algorithm

Slide 32:

Sum of digit of a Numbers. CODE SEGMENT ASSUME CS:CODE, DS:DATA MOV AX,DATA MOV DS,AX DISPLAY MACRO ARG MOV DX,OFFSET ARG MOV AX,0900H INT 21H ENDM Macro Code segment start here.

Slide 33:

DISPLAY MES1 CALL READ DISPLAY MES2 DISPLAY N DISPLAY MES3 MOV AX,SUM CALL PRINT MOV AX,4C00H INT 21H READ PROC LEA BX,N COUNT: MOV AX,0100H INT 21H CMP AL,0DH JZ RETURN MOV [BX],AL INC BX SUB AL,30H MOV AH,00H ADD SUM,AX JMP COUNT RETURN: RET READ ENDP Read procedure N IS AN ARRAY FOR FINDING SUM

Slide 34:

PRINT PROC MOV BX,0AH MOV CX,00H L3:MOV DX,00H DIV BX ADD DX,30H PUSH DX INC CX CMP AX,00H JNZ L3 MOV AX,0200H L4:POP DX INT 21H LOOP L4 RET PRINT ENDP CODE ENDS Print procedure Code segment end here.

Slide 35:

DATA SEGMENT N DB 80 DUP(“$”) SUM DW 00H CR EQU 0DH LF EQU 0AH MES1 DB CR,LF, “ENTER A NUMBER: $” MES2 DB CR,LF, “THE SUM OF DIGIT $” MES3 DB “IS $” DATA ENDS END Data segment End of the program

Slide 36:

OUT PUT ENTER A NUMBER: 123456789 THE SUM OF DIGIT OF 123456789 NUMBER IS 45

Slide 37:

Reverse a Number

Slide 38:

Step1 : Start Step2 : Count = 0 Step3 : Read a digit “x” Step4 : If x = Enter key go to step 8 Step5 : a[count]=x Step6 : Count=Count+1 Step7 : go to Step 3 Step 8 : Display a[count] Step9 : Count = Count - 1 Step 10 : If Count != 0 then go to Step 8 Step 11 : Stop Reverse a Numbers Algorithm

Slide 39:

Reverse a Numbers. CODE SEGMENT ASSUME CS:CODE, DS:DATA MOV AX,DATA MOV DS,AX DISPLAY MACRO ARG MOV DX,OFFSET ARG MOV AX,0900H INT 21H ENDM Macro Code segment start here.

Slide 40:

DISPLAY MES1 CALL READ CALL REVE DISPLAY MES2 DISPLAY N DISPLAY MES3 DISPLAY S MOV AX,4C00H INT 21H READ PROC LEA BX,N CONT: MOV AX,0100H INT 21H CMP AL,0DH JZ RETURN INC COUNT MOV [BX],AL INC BX JMP CONT RETURN: RET READ ENDP Read procedure N and S is array

Slide 41:

REVE PROC LEA BX,N MOV CX,COUNT L5:MOV AH,00H MOV AL,[BX] PUSH AX INC BX DEC CX JNZ L5 LEA BX,S MOV CX,COUNT L6:POP AX MOV [BX],AL INC BX DEC CX JNZ L6 RET REVE ENDP CODE ENDS DATA SEGMENT N DB 80 DUP("$") S DB 80 DUP("$") COUNT DW 00H CR EQU 0DH LF EQU 0AH MES1 DB CR,LF,"ENTER A NUMBER $" MES2 DB CR,LF,"THE REVERSE IS $" MES3 DB "IS $" DATA ENDS END 2 3 4 432 PUSH POP 234

Slide 42:

OUT PUT ENTER A NUMBER: 123456789 THE REVERSE OF 123456789 IS 987654321

Slide 43:

PALINDROME OR NOT

Slide 44:

PALINDROME OR NOT. CODE SEGMENT ASSUME CS:CODE, DS:DATA MOV AX,DATA MOV DS,AX DISPLAY MACRO ARG MOV DX,OFFSET ARG MOV AX,0900H INT 21H ENDM Macro Code segment start here.

Slide 45:

DISPLAY MES1 CALL READ DISPLAY NEWL DISPLAY ARRAY CALL PALIND MOV AX,4C00H INT 21H READ PROC MOV BX,00H CONT:MOV AX,0100H INT 21H CMP AL,0DH JZ RETURN INC COUNT MOV ARRAY[BX],AL INC BX JMP CONT RETURN:RET READ ENDP Read procedure

Slide 46:

PALIND PROC MOV BX,00H MOV SI,COUNT DEC SI CON:MOV AL,ARRAY[BX] CMP AL,ARRAY[SI] JNZ NOPAL INC BX DEC SI JNZ CON DISPLAY MES2 JMP RETURN1 NOPAL:DISPLAY MES3 RETURN1:RET PALIND ENDP CODE ENDS A B C D E $

Slide 47:

DATA SEGMENT ARRAY DB 40 DUP("$") COUNT DW 00H CR EQU 0DH LF EQU 0AH NEWL DB CR,LF,"$" MES1 DB CR,LF,"ENTER THE STRING $" MES2 DB " IS A PALINDROME $" MES3 DB " IS NOT A PALINDROME $" DATA ENDS END

Slide 48:

OUT PUT ENTER A STRING: MALAYALAM MALAYALAM IS A PALINDROME

Slide 49:

Sum of series(1+2+…..+N)

Slide 50:

Step1 : Start Step2 : Read a two digit number “N” Step3 : Count=0 Step4 : Sum=0 Step5 : Read a Number Step6 : Count=Count+1 Step7 : Sum= Sum+ Number Step 8 : if Count<N then go to Step 5 Step9 : If I<N then go to step 4 Step 10 : Stop Sum of series Algorithm

Slide 51:

Sum of series ( 1+2+…..+N) . CODE SEGMENT ASSUME CS:CODE, DS:DATA MOV AX,DATA MOV DS,AX DISPLAY MACRO ARG MOV DX,OFFSET ARG MOV AX,0900H INT 21H ENDM Macro Code segment start here.

Slide 52:

DISPLAY MES1 CALL READ MOV CH,00H MOV CL,N MOV AH,00H MOV AL,00H L:ADD AX,CX LOOP L MOV CX,AX DISPLAY MES2 MOV AX,CX CALL PRINT MOV AX,4C00H INT 21H READ PROC MOV AX,0100H INT 21H SUB AL,30H MOV CL,0AH MUL CL MOV BL,AL MOV AX,0100H INT 21H SUB AL,30H ADD BL,AL MOV N,BL RET READ ENDP

Slide 53:

PRINT PROC MOV AH,00H MOV BX,0AH MOV CX,00H L3: MOV DX,00H DIV BX ADD DX,30H PUSH DX INC CX CMP AX,00H JNZ L3 MOV AX,0200H L4: POP DX INT 21H LOOP L4 RET PRINT ENDP CODE ENDS DATA SEGMENT N DB ? CR EQU 0DH LF EQU 0AH MES1 DB "ENTER THE LIMITS $" MES2 DB CR,LF,"THE SUM IS $" DATA ENDS END

Slide 54:

OUT PUT ENTER THE LIMIT OF NUMBER: 05 THE SUM IS 15

Slide 55:

To search given number in an array.