STRING MANIPULATION To write an assembly language program using 8086 to find the number of Characters in a string, to move a byte from the source to destination and to store the string primitive. - Computer Programming

Latest

C C++ Java Python Perl Programs Examples with Output -useful for Schools & College Students

Wednesday, October 27, 2010

STRING MANIPULATION To write an assembly language program using 8086 to find the number of Characters in a string, to move a byte from the source to destination and to store the string primitive.

To write an assembly language program using 8086 to find the number of Characters in a string, to move a byte from the source to destination and to store the string primitive.

ALGORITHM (LENGTH OF THE STRING):
1. Start the program.
2. Enter the opcodes from 1000.
3. Enter the string starting from the location 1200.
4. After entering the last character in the string enter the hexa value FF.
5. Execute the program and check for result in 1100.

PROGRAM
ADDRESS LABEL OPCODE MNEMONICS OPERAND COMMENTS
1000 BE, 00,12 MOV SI, 1200 Initializing the string and the string starts in SI
1003 BA, FF, FF MOV DX, FFFF Maximum location used for the entry of the string
1006 B4, FF MOV AH, FF Moving the final data of array and also indicates the end of the string
1008 LOOP 42 INC DX Incrementing the string length by 1
1009 8A, 04 MOV AL, [SI] Get the string character to AL
100B 46 INC SI Increment the address location to get the next string
100C 38,C4 CMP AH, AL Check for the end of the string
100E 75,F8 JNZ LOOP Checking for the zero value.
1010 89,16,00,11 MOV [1100], DX Successful increment in the count else stores the string length.
1014 F4 HLT Stop the program

ALGORITHM (STORE THE STRING PRIMITIVE):
1. Start the program.
2. Enter the program and execute it.
3. Check if locations 1100 to 11FF contain 34.
4. Stop the program.

PROGRAM:
ADDRESS LABEL OPCODE MNEMONICS OPERAND COMMENTS
1000 B9, 00,01 MOV CX, 0100 Moving the total no of location in which the primitive must be stored
1003 BF, 00,11 MOV DI, OFFSET S_ARRAY Moving the starting location value to DI
1006 B8, 34,00 MOV AX, 0034 Moving the primitive value to AX
1009 FC CLD Clearing the data.
100A L AA STOSB Storing the string byte
100B E2, FA LOOP L Checking for the loop
100D F4 HLT Stop the program

ALGORITHM (MOVE):
1. Start the program.
2. Enter the program from the location 1000.
3. Fill FF locations as stated above with a particular data, 41.
4. Execute the program.
5. Check if the contents are duplicated to another 255 locations using the compare command.
6. Stop the program.

PROGRAM:
ADDRESS LABEL OPCODE MNEMONICS OPERAND COMMENTS
1000 BE, 0E, 10 MOV SI, OFFSET S_ARAY Moving the source location from which the data should be moved
1003 BF, 0E, 11 MOV DI, OFFSET D_ARRAY Moving the ending location to which the data should be moved.
1006 B9, FF, 00 MOV CX, 00FF Total count location within which the data can be moved
1009 FC CLD Clearing the data.
100A MOVE A4 MOVSB Moving the string byte.
100B E2, FD LOOP MOVE Continuous check of data
100D F4 HLT Stop the program

No comments:

Post a Comment