[Engineering,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 變化(변화)를 확인, 문서로 작성)
페이지 정보
작성일 23-01-14 09:01
본문
Download : [공학,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 변화를 확인, 문서로 작성).hwp
레포트/공학기술
설명
순서
[공학,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 변화를 확인, 문서로 작성) , [공학,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 변화를 확인, 문서로 작성)공학기술레포트 , [공학 기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 변화를 확인 문서로 작성)
1. Q1_01
디버거로 레지스터 값의 change(변화)를 확인, 문서로 작성
-소스 코드
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 프로시저를 호출한다. ebp는 base pointer로 스택에 저장하여 기존의 값을 보존하기위해 사용된다 그 다음 esp의 값을 ebp에 복사한다. 다른 프로시저를 호출하면 stack에 return address값이 저장된다 이제 MySub 프로시저로 넘어가서 stack에 ebp를 push한다.
return address
ebp
`- ebp
20
10
`- esp
return address
ebp
`- ebp
`- esp
현재 esp는 스택의 빈공간을 가리키는데, 다음명령에서 [ebp-4]에 20의 값을, [ebp-8]에 10의 값을 복사하므로 스택은 위의 우측과 같이 된다 이제 다음으로 esp가 가리키는 곳을 ebp가 가리키는 곳과 같이 설정한다. 그리고 나서 ebp레지스터를 pop하는데,
return address
ebp
`- ebp,esp
20
10
이렇게 하면 스택에 있…(생략(省略))
[Engineering,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 變化(변화)를 확인, 문서로 작성)
![[공학,기술]%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)
Download : [공학,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 변화를 확인, 문서로 작성).hwp( 73 )
[공학,기술],어셈블리,프로그래밍,-,어셈블리,언어(디버거로,레지스터,값의,변화를,확인,문서로,작성),공학기술,레포트
[Engineering,기술] 어셈블리 프로그래밍 - 어셈블리 언어(디버거로 레지스터 값의 變化(변화)를 확인, 문서로 작성)
다. 그 다음 esp에 8을 빼주는데, 그러면 스택의 구조는 아래와 같다.