Sunday, 15 May 2011

x86 - can't access function in assembly -


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