I'm trying to print a linked list, when I write a hole program in the main job, it works fine But when I do differently for different tasks and "print list" it mainly does not work
Irvine32.inc contains the next EQU 4 .data sundaystr byte 'Today Sunday', 0 mondaystr Trying to call byte 'Monday', 0 tuesdaystr byte "Tuesday", 0 Sunday DWORD sundaystr DWORD Monday DWORD 0 Monday DWORD mondaystr DWORD Tuesday DWORD Sunday R Tuesday Tuesday DWORD tuesdaystr DWORD 0 DWORD Monday Main PROC Push Offset Sunday Call printList Exit Main ENDP Printlist PROC push EDX. ESI Call ESI push EBP MOV EBP Push, esp MOV ESI, [EBP + 12] PRINT: MOV EDX, [ESI] Call Writing EST, ESI, next CMP [ESI], adding DWORD ptr 0JE made mov ESI, [ESI] loop printed: pop EBP pop ESI POP EDX retired printlist ENDP END Main
call
pushed eip
stack However, since the REIT
should be able to go back to the information that you think takes into account when you use the function argument to offset the pile indicator.
push EDX push ESI push EBP mov EBP, esp mov ESI, [EBP + 12]
at the point where you do mov ESI , [EBP + 12]
You will have the old value of [EBP EBP
+0] , esi
at [ Ebp + 4]
, edx
at [ebp + 8]
, and over EIP
[ebp + 12] old value
I think that you will actually find you on [ebp + 16]
push offset Sunday < / Code> wanted to address pushed.
No comments:
Post a Comment