Anda di halaman 1dari 8

K112322

Uzair zafar
Sec D
QUESTION NO: 1
Using 2 different loops for upper triangle and lower triangle
Explanation of each step is mentioned in comments
INCLUDE Irvine32.inc
.data
.code
main PROC
mov ecx,5d ; TAKING any number n
mov edx,ecx ;iterator for innet loop
sub edx,1d ;
mov eax,0d
mov ebx,1d ; value to print
L1:
push ecx
; pushing ecx to reserve counter
inc eax
; counter for inner loop
mov ecx,eax ;
L2:
Call DumpRegs ; printing value check ebx for pattern
inc ebx
Loop L2 ;inner loop call
mov ebx,1
pop ecx ; poping back value for outer counter
Loop L1
mov ebx,1d ; setting value for reverse iteration
mov ecx,edx ; settign up counter
L3:
push ecx ; storing ecx value
L4:
Call DumpRegs ; printing value check ebx for pattern
inc ebx
Loop L4
mov ebx,1 ; inner loop call
pop ecx
Loop L3 ; inner loop call
exit
main ENDP
END main

EAX=00000001 EBX=00000001 ECX=00000001 EDX=00000004


ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000002 EBX=00000001 ECX=00000002 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000002 EBX=00000002 ECX=00000001 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000003 EBX=00000001 ECX=00000003 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000003 EBX=00000002 ECX=00000002 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000003 EBX=00000003 ECX=00000001 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000004 EBX=00000001 ECX=00000004 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0

EAX=00000004 EBX=00000002 ECX=00000003 EDX=00000004


ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000004 EBX=00000003 ECX=00000002 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000004 EBX=00000004 ECX=00000001 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000005 EBX=00000001 ECX=00000005 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000005 EBX=00000002 ECX=00000004 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000005 EBX=00000003 ECX=00000003 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000005 EBX=00000004 ECX=00000002 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000005 EBX=00000005 ECX=00000001 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=0040101D EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000005 EBX=00000001 ECX=00000004 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=00401035 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000005 EBX=00000002 ECX=00000003 EDX=00000004

ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0


EIP=00401035 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000005 EBX=00000003 ECX=00000002 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=00401035 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000005 EBX=00000004 ECX=00000001 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=00401035 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000005 EBX=00000001 ECX=00000003 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=00401035 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000005 EBX=00000002 ECX=00000002 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=00401035 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000005 EBX=00000003 ECX=00000001 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=00401035 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000005 EBX=00000001 ECX=00000002 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=00401035 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000005 EBX=00000002 ECX=00000001 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=00401035 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000005 EBX=00000001 ECX=00000001 EDX=00000004
ESI=01CDA339 EDI=6903664A EBP=0012FFF0 ESP=0012FFC0
EIP=00401035 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
Press any key to continue . . .

Questtion:2
Takes Ebp and Esp subtract esp from ebp and iterate over them a loop the problem is it
gives some garbade values
INCLUDE Irvine32.inc
.data
.code
PrintStack proc
mov edi,esp ;moving value of eps in edi
mov edx,DWORD PTR SS:[EBP] ;moving value of of ebp in edx
sub edx,esp ;subtracting esp
mov ebx,00000000h
mov ax,dx
mov bl,4
div bl ; gets total no of push

items

mov ecx,eax ; starts loop


L1:
mov eax, DWORD PTR SS:[edi+4 ];getting stack
add edi,4h
call dumpregs ; prinitng stack values
loop L1
ret
PrintStack endp
main PROC

PUSH 123h
PUSH 365h
PUSH 325h

values

PUSH 321h
PUSH 321h
PUSH 321h
CALL PrintStack ;
POP EAX ; EAX =321h
POP EAX ; EAX =325h
POP EAX ; EAX =365h
POP EAX ; EAX =123h
exit
main ENDP
END main

EAX=00000321 EBX=00000004 ECX=00000016 EDX=FFED0058


ESI=01CDA36B EDI=0012FFAC EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000321 EBX=00000004 ECX=00000015 EDX=FFED0058
ESI=01CDA36B EDI=0012FFB0 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000212 CF=0 SF=0 ZF=0 OF=0 AF=1 PF=0
EAX=00000321 EBX=00000004 ECX=00000014 EDX=FFED0058
ESI=01CDA36B EDI=0012FFB4 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000325 EBX=00000004 ECX=00000013 EDX=FFED0058
ESI=01CDA36B EDI=0012FFB8 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=00000365 EBX=00000004 ECX=00000012 EDX=FFED0058
ESI=01CDA36B EDI=0012FFBC EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000123 EBX=00000004 ECX=00000011 EDX=FFED0058
ESI=01CDA36B EDI=0012FFC0 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000216 CF=0 SF=0 ZF=0 OF=0 AF=1 PF=1
EAX=7C816D4F EBX=00000004 ECX=00000010 EDX=FFED0058
ESI=01CDA36B EDI=0012FFC4 EBP=0012FFF0 ESP=0012FFA8

EIP=00401021 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0


EAX=B33C15E0 EBX=00000004 ECX=0000000F EDX=FFED0058
ESI=01CDA36B EDI=0012FFC8 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=01CDA36B EBX=00000004 ECX=0000000E EDX=FFED0058
ESI=01CDA36B EDI=0012FFCC EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=7FFD7000 EBX=00000004 ECX=0000000D EDX=FFED0058
ESI=01CDA36B EDI=0012FFD0 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000212 CF=0 SF=0 ZF=0 OF=0 AF=1 PF=0
EAX=80543DFD EBX=00000004 ECX=0000000C EDX=FFED0058
ESI=01CDA36B EDI=0012FFD4 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=0012FFC8 EBX=00000004 ECX=0000000B EDX=FFED0058
ESI=01CDA36B EDI=0012FFD8 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=83CF73B8 EBX=00000004 ECX=0000000A EDX=FFED0058
ESI=01CDA36B EDI=0012FFDC EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=FFFFFFFF EBX=00000004 ECX=00000009 EDX=FFED0058
ESI=01CDA36B EDI=0012FFE0 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000212 CF=0 SF=0 ZF=0 OF=0 AF=1 PF=0
EAX=7C8399F3 EBX=00000004 ECX=00000008 EDX=FFED0058
ESI=01CDA36B EDI=0012FFE4 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=7C816D58 EBX=00000004 ECX=00000007 EDX=FFED0058
ESI=01CDA36B EDI=0012FFE8 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1

EAX=00000000 EBX=00000004 ECX=00000006 EDX=FFED0058


ESI=01CDA36B EDI=0012FFEC EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000000 EBX=00000004 ECX=00000005 EDX=FFED0058
ESI=01CDA36B EDI=0012FFF0 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000216 CF=0 SF=0 ZF=0 OF=0 AF=1 PF=1
EAX=00000000 EBX=00000004 ECX=00000004 EDX=FFED0058
ESI=01CDA36B EDI=0012FFF4 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00401024 EBX=00000004 ECX=00000003 EDX=FFED0058
ESI=01CDA36B EDI=0012FFF8 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000202 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=0
EAX=00000000 EBX=00000004 ECX=00000002 EDX=FFED0058
ESI=01CDA36B EDI=0012FFFC EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
EAX=78746341 EBX=00000004 ECX=00000001 EDX=FFED0058
ESI=01CDA36B EDI=00130000 EBP=0012FFF0 ESP=0012FFA8
EIP=00401021 EFL=00000216 CF=0 SF=0 ZF=0 OF=0 AF=1 PF=1
Press any key to continue . . .

Anda mungkin juga menyukai