Coal lab 12
Coal lab 12
include irvine32.inc
.data
str1 BYTE '127&j~3#^&*#*#45^',0
prompt byte "Character Found At Index : ", 0
.code
main proc
call Scan_String
lea edx,prompt
call writestring
mov eax,edi
call writeint
exit
main endp
Scan_String PROC
lea edi,str1
mov al,'#'
mov ecx,lengthof str1
cld
repne scasb
jnz notfound
mov edx,offset str1
sub edi,edx
dec edi
ret
notfound:
mov edi,-1
ret
Scan_String endp
end mainOUTPUT
QUESTION :2
include irvine32.inc
.data
str1 BYTE '127&j~3#^&*#*#45^',0
prompt BYTE "Character Found At Index : ", 0
char byte '#',0
.code
main proc
push offset str1
push '#'
push lengthof str1
call Scan_String
lea edx,prompt
call writestring
mov eax,edi
call writeint
exit
main endp
Scan_String PROC
push ebp
mov ebp,esp
mov edi,[ebp+16]
mov al,[ebp+12]
mov ecx,[ebp+8]
cld
repne scasb
jnz notfound
mov edx,[ebp+16]
sub edi,edx
dec edi
pop ebp
ret
notfound:
mov edi,-1
pop ebp
ret
Scan_String endp
end main
QUESTION 3
include irvine32.inc
.data
.code
main proc
invoke IsCompare, addr str1, addr str2
exit
main endp
IsCompare proc, string1:dword, string2:dword
mov esi,string1
mov edi,string2
L1:
mov al,[esi]
mov dl,[edi]
cmp al,0
jne L2
cmp dl,0
jne L2
L3:
jnz notequal1
endd:
call crlf
ret
IsCompare endp
end main
QUESTION 4
include irvine32.inc
.data
str1 BYTE "coal Lab 11" ,0
str2 BYTE lengthof str1 dup(?)
.code
main proc
mov edx, offset str1
call writestring
call crlf
call crlf
call writestring ; writing reverse string
call crlf
exit
main endp
mov esi,string1
ret
Str_Reverse endp
end main
QUESTION 5
INCLUDE Irvine32.inc
.data
number byte 3
main PROC
exit
main ENDP
Multiply_array endp
END main