subject

Description: Write a procedure named Str_find that searches for the
first matching occurrence of a source string inside a target string
and returns the matching position. The input parameters should be a
pointer to the source string and a pointer to the target string. If
a match is found, the procedure sets the Zero flag and EAX points to
the matching position in the target string. Otherwise, the Zero
flag is clear.
TODO: Complte Str_find PROC
!
INCLUDE Irvine32.inc
Str_find PROTO, pTarget:PTR BYTE, pSource:PTR BYTE
.data
promptTargetStr BYTE "Enter target string: ",0
promptSourceStr BYTE "Enter source string: ",0
str1 BYTE "Source string found at position ",0
str2 BYTE " in Target string (counting from zero).",0Ah,0Ah,0Dh,0
str3 BYTE "Unable to find Source string in Target string.",0Ah,0Ah,0Dh,0
MAX = 80 ;max chars to read
target BYTE MAX+1 DUP (?)
source BYTE MAX+1 DUP (?)
stop DWORD ?
lenTarget DWORD ?
lenSource DWORD ?
position DWORD ?
.code
main PROC
; prompt input target string
mov edx, OFFSET promptTargetStr
call WriteString
mov edx, OFFSET target
mov ecx, MAX ;buffer size - 1
call ReadString
call Crlf
; prompt input source string
mov edx, OFFSET promptSourceStr
call WriteString
mov edx, OFFSET source
mov ecx, MAX ;buffer size - 1
call ReadString
call Crlf
INVOKE Str_find, ADDR target, ADDR source
mov position, eax
jz wasfound ; ZF=1 indicates string found
mov edx, OFFSET str3 ; string not found
call WriteString
jmp quit
wasfound: ; display message
mov edx, OFFSET str1
call WriteString
mov eax, position ; write position value
call WriteDec
mov edx, OFFSET str2
call WriteString
quit:
exit
main ENDP
;
Str_find PROC, pTarget:PTR BYTE, ;PTR to Target string
pSource:PTR BYTE ;PTR to Source string
;
; Searches for the first matching occurrence of a source
; string inside a target string.
; Receives: pointer to the source string and a pointer
; to the target string.
; Returns: If a match is found, ZF=1 and EAX points to
; the offset of the match in the target string.
; IF ZF=0, no match was found.
;
INVOKE Str_length, pTarget ; get length of target
mov lenTarget, eax
INVOKE Str_length, pSource ; get length of source
mov lenSource, eax
mov edi, OFFSET target ; point to target
mov esi, OFFSET source ; point to source
; Compute place in target to stop search
mov eax, edi ; stop = (offset target)
add eax, lenTarget ; + (length of target)
sub eax, lenSource ; - (length of source)
inc eax ; + 1
mov stop, eax ; save the stopping position
; TODO: Compare source string to current target
ret
Str_find ENDP
END main

ansver
Answers: 3

Another question on Computers and Technology

question
Computers and Technology, 22.06.2019 15:30
Why would a programmer use the logical operator and in an if statement? a: when an action is to be taken that requires both conditions to be falseb: when an action is to be taken that requires both conditions to be truec: when an action is to be taken that requires the first condition to be falsed: when an action is to be taken that requires the second condition to be truei took the test and the answer is b.
Answers: 3
question
Computers and Technology, 23.06.2019 14:00
Technician a says that with self-adjusting clutch systems, the release bearing constantly rotates. technician b says that the ball bearing portion of the release bearing should be lubricated with high-temperature grease during routine maintenance. which technician is correct?
Answers: 2
question
Computers and Technology, 23.06.2019 18:30
How often does colleges update the cost of attendance on their website? . a)every two years b) every four years c) every year d) every semester
Answers: 1
question
Computers and Technology, 24.06.2019 10:00
Which feature of a blog to restore and retrieve older post
Answers: 3
You know the right answer?
Description: Write a procedure named Str_find that searches for the
first matching occurrence...
Questions
question
Mathematics, 06.05.2020 01:17
question
Mathematics, 06.05.2020 01:17
question
History, 06.05.2020 01:17
question
Social Studies, 06.05.2020 01:17
question
Social Studies, 06.05.2020 01:17
question
Mathematics, 06.05.2020 01:17
question
Mathematics, 06.05.2020 01:17
question
Biology, 06.05.2020 01:17
Questions on the website: 13722360