Sie sind auf Seite 1von 4

Muhammad Sohail

Sec:H
k16-3987

/****************Q1****************/
INCLUDE Irvine32.inc
.data
Str1 BYTE "127&j~3#^&*#*#45^",0
.code
main PROC
Call Scan_String

exit
main ENDP
Scan_String Proc
mov edi,Offset Str1
mov ecx, lengthOF STr1
mov ebx,ecx
mov al,'#'
cld
repne SCASB
sub ebx,ecx
mov eax,ebx
Call WRITEDEC
call crlf
ret
Scan_String EndP

End main

/********************Q2*******************/
INCLUDE Irvine32.inc
.data
Str1 BYTE "127&j~3#^&*#*#45^",0
a byte ?
.code
main PROC
mov edi,Offset Str1
mov ecx, lengthOF STr1
mov al,'#'
push edi
mov a,al
Call Scan_String
exit
main ENDP
Scan_String Proc

mov ebx,ecx

cld
repne SCASB
sub ebx,ecx
mov eax,ebx
Call WRITEDEC
call crlf
ret
Scan_String EndP
End main

/**********************Q3**********************/

INCLUDE Irvine32.inc
.data
str1 BYTE "COAL",0
str2 BYTE "COAL",0
str3 BYTE "Equal",0
str4 BYTE "Not Equal",0
.code
main PROC

CALL CMPString
exit
main ENDP
CMPString PROC
mov esi,OFFSET str1
mov edi, Offset str2
mov ecx,LENGTHOF str1
Cld
repz cmpsb
jz quit
mov edx, OFFSET str4
call WriteString
call crlf
jmp E
quit:
mov edx, OFFSET str3
call WriteString
call crlf
E: exit
ret

CMPString EndP
END main

/*******************Q4*********************/

INCLUDE Irvine32.inc
.data
str1 BYTE "This is a string", 0
str2 byte lengthof str1 dup(?),0
.code
main proc
call Move_Procedure
exit
main endp
Move_Procedure proc
mov esi, offset str1
mov edi, offset str2
cld
mov ecx,lengthof str1
rep movsb
mov edx,offset str2
call writestring
call crlf
exit
Move_Procedure Endp
End main

/*******************Q6*****************/

INCLUDE Irvine32.inc
.data
str1 dword 1,2,3,4,5,6,7,8,9,10
.code
main proc
mov esi,str1
mov dl,3
call load_procedure
exit
main endp
load_procedure proc
mov esi,offset str1
mov edi,esi
mov ecx, lengthof str1
cld
l1:
mov eax,0
lodsd
mul dl
stosd
loop l1
mov esi,0
mov ecx,lengthof str1
l2:
mov eax,str1[esi]
call WriteDec
add esi,type str1
call crlf
loop l2
exit
load_procedure endp

end main

/*****************************Q8***************/
include irvine32.inc

.data
target BYTE "AAEBDCFBBC",0
freqTable DWORD 256 DUP(0)
str2 byte "here",0
.code
main proc
call _frequency
exit
main endp
_frequency proc
mov ecx, lengthof target
mov eax,0
mov edx,offset str2
call writestring
mov esi,offset target
l1:
lodsb
movzx edi,al
call writeint
add freqTable[edi*4],1
loop l1
call crlf
mov ecx, lengthof freqTable
mov esi,0
mov eax,0
mov esi,offset freqtable
l2:
mov eax,[esi]
call writeint
add esi,type freqTable
loop l2
exit
_frequency endp

end main

Das könnte Ihnen auch gefallen