[Engineering,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 變化를 확인, 문서로 작성)
페이지 정보
작성일 22-11-21 08:59본문
Download : [공학,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 변화를 확인, 문서로 작성).hwp
다른 프로시저를 호출하면 stack에 return address값이 저장된다된다.
![[공학,기술]%20어셈블리%20프로그래밍%20-%20어셈블리%20언어(디버거로%20레지스터%20값의%20변화를%20확인,%20문서로%20작성)_hwp_01.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%ED%95%99,%EA%B8%B0%EC%88%A0%5D%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%20-%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%EC%96%B8%EC%96%B4(%EB%94%94%EB%B2%84%EA%B1%B0%EB%A1%9C%20%EB%A0%88%EC%A7%80%EC%8A%A4%ED%84%B0%20%EA%B0%92%EC%9D%98%20%EB%B3%80%ED%99%94%EB%A5%BC%20%ED%99%95%EC%9D%B8,%20%EB%AC%B8%EC%84%9C%EB%A1%9C%20%EC%9E%91%EC%84%B1)_hwp_01.gif)
![[공학,기술]%20어셈블리%20프로그래밍%20-%20어셈블리%20언어(디버거로%20레지스터%20값의%20변화를%20확인,%20문서로%20작성)_hwp_02.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%ED%95%99,%EA%B8%B0%EC%88%A0%5D%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%20-%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%EC%96%B8%EC%96%B4(%EB%94%94%EB%B2%84%EA%B1%B0%EB%A1%9C%20%EB%A0%88%EC%A7%80%EC%8A%A4%ED%84%B0%20%EA%B0%92%EC%9D%98%20%EB%B3%80%ED%99%94%EB%A5%BC%20%ED%99%95%EC%9D%B8,%20%EB%AC%B8%EC%84%9C%EB%A1%9C%20%EC%9E%91%EC%84%B1)_hwp_02.gif)
![[공학,기술]%20어셈블리%20프로그래밍%20-%20어셈블리%20언어(디버거로%20레지스터%20값의%20변화를%20확인,%20문서로%20작성)_hwp_03.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%ED%95%99,%EA%B8%B0%EC%88%A0%5D%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%20-%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%EC%96%B8%EC%96%B4(%EB%94%94%EB%B2%84%EA%B1%B0%EB%A1%9C%20%EB%A0%88%EC%A7%80%EC%8A%A4%ED%84%B0%20%EA%B0%92%EC%9D%98%20%EB%B3%80%ED%99%94%EB%A5%BC%20%ED%99%95%EC%9D%B8,%20%EB%AC%B8%EC%84%9C%EB%A1%9C%20%EC%9E%91%EC%84%B1)_hwp_03.gif)
![[공학,기술]%20어셈블리%20프로그래밍%20-%20어셈블리%20언어(디버거로%20레지스터%20값의%20변화를%20확인,%20문서로%20작성)_hwp_04.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%ED%95%99,%EA%B8%B0%EC%88%A0%5D%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%20-%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%EC%96%B8%EC%96%B4(%EB%94%94%EB%B2%84%EA%B1%B0%EB%A1%9C%20%EB%A0%88%EC%A7%80%EC%8A%A4%ED%84%B0%20%EA%B0%92%EC%9D%98%20%EB%B3%80%ED%99%94%EB%A5%BC%20%ED%99%95%EC%9D%B8,%20%EB%AC%B8%EC%84%9C%EB%A1%9C%20%EC%9E%91%EC%84%B1)_hwp_04.gif)
![[공학,기술]%20어셈블리%20프로그래밍%20-%20어셈블리%20언어(디버거로%20레지스터%20값의%20변화를%20확인,%20문서로%20작성)_hwp_05.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%ED%95%99,%EA%B8%B0%EC%88%A0%5D%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%20-%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%EC%96%B8%EC%96%B4(%EB%94%94%EB%B2%84%EA%B1%B0%EB%A1%9C%20%EB%A0%88%EC%A7%80%EC%8A%A4%ED%84%B0%20%EA%B0%92%EC%9D%98%20%EB%B3%80%ED%99%94%EB%A5%BC%20%ED%99%95%EC%9D%B8,%20%EB%AC%B8%EC%84%9C%EB%A1%9C%20%EC%9E%91%EC%84%B1)_hwp_05.gif)
![[공학,기술]%20어셈블리%20프로그래밍%20-%20어셈블리%20언어(디버거로%20레지스터%20값의%20변화를%20확인,%20문서로%20작성)_hwp_06.gif](http://www.allreport.co.kr/View/%5B%EA%B3%B5%ED%95%99,%EA%B8%B0%EC%88%A0%5D%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%20-%20%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%20%EC%96%B8%EC%96%B4(%EB%94%94%EB%B2%84%EA%B1%B0%EB%A1%9C%20%EB%A0%88%EC%A7%80%EC%8A%A4%ED%84%B0%20%EA%B0%92%EC%9D%98%20%EB%B3%80%ED%99%94%EB%A5%BC%20%ED%99%95%EC%9D%B8,%20%EB%AC%B8%EC%84%9C%EB%A1%9C%20%EC%9E%91%EC%84%B1)_hwp_06.gif)
순서
[공학,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 변화를 확인, 문서로 작성) , [공학,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 변화를 확인, 문서로 작성)공학기술레포트 , [공학 기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 변화를 확인 문서로 작성)
1. Q1_01
디버거로 레지스터 값의 alteration(변화) 를 확인, 문서로 작성
-소스 코드
INCLUDE Irvine32.inc
.code
main PROC
call MySub
exit
main ENDP
MySub PROC
push ( ) ; 에 들어갈 값 ebp
mov ebp,( ) ; 에 들어갈 값 esp
sub esp,8
mov DWORD PTR [ebp-4],20
mov DWORD PTR [ebp-8],10
mov ( ),ebp ; 에 들어갈 값 esp
pop ( ) ; 에 들어갈 값 ebp
ret
MySub ENDP
END main
-코드 說明(설명)
우선 main 프로시저부터 프로그램(program]) 이 실행하면 MySub 프로시저를 호출한다.
return address
ebp
`- ebp
20
10
`- esp
return address
ebp
`- ebp
`- esp
현재 esp는 스택의 빈공간을 가리키는데, 다음명령에서 [ebp-4]에 20의 값을, [ebp-8]에 10의 값을 복사하므로 스택은 위의 우측과 같이 된다된다. 그 다음 esp의 값을 ebp에 복사한다. 그 다음 esp에 8을 빼주는데, 그러면 스택의 구조는 아래와 같다. 이제 다음으로 esp가 가리키는 곳을 ebp가 가리키는 곳과 같이 설정한다. 이제 MySub 프로시저로 넘어가서 stack에 ebp를 push한다. ebp는 base pointer로 스택에 저장하여 기존의 값을 보존하기위해 사용된다된다. 그리고 나서 ebp레지스터를 pop하는데,
return address
ebp
`- ebp,esp
20
10
이렇게 하면 스택에 있…(생략(省略))
[Engineering,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 變化를 확인, 문서로 작성)
[Engineering,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 變化를 확인, 문서로 작성)
레포트/공학기술
Download : [공학,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 변화를 확인, 문서로 작성).hwp( 55 )
설명
[공학,기술],어셈블리,프로그래밍,-,어셈블리,언어(디버거로,레지스터,값의,변화를,확인,문서로,작성),공학기술,레포트
다.