Write a program for comparing two strings, Computer Engineering

Assignment Help:

Q. Write a program for comparing two strings?

Let's write a program for comparing two strings. Determine the following piece of code that has been written in C to compare two strings. Let's presume that 'str1' and 'str2' are two strings which are initialised by some values and 'ind' is index for these character strings:

for (ind = 0; ( (ind <9) and (str1[ind] = = str2[ind]) ), ind + +)

Intermediate code in assembly language produced by a non-optimising compiler for the above piece may appear like:

MOV IND, 00; ind: = 0

L3:                               CMP IND, 08; Ind < 9

                                    JG L1   ; not so; skip

                                    LEA AX, STR1; offset of str1 in AX register

                                    MOV BX, IND; it uses a register for indexing into 

                                                                        ; The array

LEA CX, STR2; str2 in CX

                                    MOV DL, BYTE PTR CX [BX]

                                    CMP DL, BYTE PTR AX [BX]; str1 [Ind] = str2 [Ind]

                                    JNE L1    ; no, skip

                                    MOV IND, BX 

                                    ADD IND, 01

L2:                               JMP L3    ; loop back

L1:

 

What we find in above code: a large code which could have been improved further if 8086 string instructions would have been used.

; Program: Matching two strings of similar length stored in memory locations.

; REGISTERS: Uses CS, DS, ES, AX, DX, CX, SI, DI

DATA SEGMENT

            PASSWORD              DB                  'FAILSAFE'              ; source string

            DESTSTR                   DB                  'FEELSAFE'              ; destination string

            MESSAGE                 DB                  'String are equal $'

DATA ENDS

CODE SEGMENT

                        ASSUME CS: CODE, DS: DATA, ES: DATA

                                    MOV AX, DATA

                                    MOV DS, AX   ; Initialise data segment register

                                    MOV ES, AX   ; Initialise extra segment register

; As destination string is considered to be in extra segment. Please note that ES is also 

; initialised to the same segment as of DS.

LEA SI, PASSWORD; Load source pointer

                                    LEA DI, DESTSTR; Load destination pointer

                                    MOV CX, 08   ; Load counter with string length

                                    CLD   ; Clear direction flag so that comparison is

                                                ; done in forward direction.

EPE CMPSB; Compare the two string byte by byte

                                    JNE NOTEQUAL; If not equal, jump to NOTEQUAL

                                    MOV AH, 09; else display message 

                                    MOV DX, OFFSET MESSAGE;

                                    INT 21h; display the message

NOTEQUAL:             MOV AX, 4C00h; interrupt function to halt

                                    INT 21h

CODE ENDS

END


Related Discussions:- Write a program for comparing two strings

Explain usenet and newsgroups, Q. Explain Usenet and Newsgroups? In Int...

Q. Explain Usenet and Newsgroups? In Internet there exists another way to meet people and share information. One such way is through Usenet newsgroups. These are special groups

Volatility of memory - computer architecture, Volatility of memory: ...

Volatility of memory: Non-volatile memory will received the stored information even if it is not continually supplied with electric power. It is appropriate for long-term

Using network drive mappings, If various load generators need to access the...

If various load generators need to access the similar physical files, rather than having to remember to copy the files every time they change, each load generator can reference a c

Explain the importance of computer architecture, Explain the importance of ...

Explain the importance of Computer architecture Computer architecture courses cover application, organization, architecture, logic and transistor layers. However, four other la

Placement algorithm - process allocation, Placement algorithm - computer ar...

Placement algorithm - computer architecture: Different strategies can be taken as to how space is allocated to processes: First fit : Allocate the first hole that is la

Give the example of spreadsheet, Give the example of Spreadsheet By sel...

Give the example of Spreadsheet By selecting cell C1 and dragging the formula down to C5 the below formulae will be replicated in C2 to C5: (A2*B2), (A3*B3), (A4*B4) and (A5*B5

Explain about computer architecture, Explain about Computer architecture ...

Explain about Computer architecture Computer architecture is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional

Explain parsing techniques, Explain any three parsing techniques. Follo...

Explain any three parsing techniques. Following are three parsing techniques: Top-down parsing: This parsing can be viewed as an attempt to get left-most derivations of an

Show the fundamental process of instruction execution, Q. Show the fundamen...

Q. Show the fundamental process of instruction execution? The fundamental process of instruction execution is:  1. Instruction is fetched from memory to CPU registers (calle

Platform assignment system, Platform assignment system for the trains in a ...

Platform assignment system for the trains in a railway station cpp program

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd