Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 수평적 확장
- 가상 프라이빗 클라우드
- 도메인 사용자 또는 그룹을 확인할 수 없습니다.
- 운영관리제어의 축소
- 클라우드 소비자
- VMware
- 제한된 이식성
- Error 1720
- 클라우드 보안 취약성
- 자원 풀링
- 이 컴퓨터는 도메인의 구성원이 아닙니다.
- 클라우드 서비스 소유자
- View Connection
- 온디맨드식
- DHCP 설정
- VMWare View Connection Serve
- 클라우드 자원 관리자
- 커뮤니티 클라우드
- Community Cloud
- dhcp
- 클라우드 제공자
- 정수형 데이터타입
- IT 자원
- 수직적 확장
- 멀티테넌시
- DHCP 설치
- 온 프레미스
- Virtual Private Cloud
- 고정 IP주소를 가진 네트워크 어댑터를 검색할 수 없습니다.
- VMWare vSphere
Archives
- Today
- Total
한 걸음씩..
어셈블리어 디버깅 / 윈도우 코드 에러분석, 수정 본문
반응형
인라인 어셈블리 언어 디버깅
1) 레지스터 -> 데이터를 저장할 수 있는 작은 영역. 파일을 저장하기엔 너무 작고, 대신 프로그램이 실행되는 동안 어떤 정보를 저장하기 위해 사용. CPU는 메모리에 있는 데이터보다 레지스터에 있는 데이터에 훨씬 더 빨리 접근할 수 있음. -> 일반적인 목적을 위한 레지스터는 16비트로 되어있으며 8비트 레지스터로 나누어질 수 있음. -> 32bit 레지스터 EAX : 곱셈, 나눗셈, 함수의 리턴값 저장용도로 쓰임 EBX : ESI나 EDI와 같이 결합하여 인덱스에 사용됨 ECX : 반복명령어 사용시 반복 카운터로 사용됨 EDX : EAX와 같이 쓰이며 부호 확장 명령 등에 쓰임 ESI : 데이터복사나 조작 시 source date의 주소가 저장됨 EDI : 복사 작업 시 목적지의 주소가 저장 주로 ESI레지스터가 가르키는 주소의 데이터에 복사됨 ESP : 하나의 스택프레임의 끝 주소가 저장됨 PUSH, POP명령어에 따라서 ESP의 값이 4Byte씩변함 EBP : 하나의 스택 프레임의 시작 지점 주소 저장됨 현재 사용되는 스택 프레임이 소멸돼면 이전에 사용되던 스택 프레임을 가리키게 됨 -> 인덱스 레지스터 SI(문자열 / 배열의 소스지정) DI(문자열 / 배열의 목적지 지정) IP(다음 명령의 주소저장. 직접적 변경X) -> 스택 레지스터 : BP(스택 오퍼레이션을 위해 SP와 연결되어 사용), SP 2) 기본 asm -> MOV 목적지, 값 MOV AX, 56h ; AX = 16진수 56 MOV AX, BX ; AX = BX -> XCHG 레지스터1, 레지스터 2 MOV DX, 56h ; MOV AX, 3Fh ; XCHG DX, AX ; DX = 3F , AX = 56 -> INC , DEC MOV DX, 50h ; DX = 50h INC DX ; DX = DX++, 즉 51h MOV DX, 50h ; DX = 50h DEC DX ; DX = DX-- ,즉 4Fh(50h – 1h = 4Fh) -> POP, PUSH PUSH AX ; AX에 값을 일시적으로 저장 POP AX ; 원래값을 회복 -> ADD 레지스터 1, 레지스터 2 / ADD 레지스터, 값 MOV AX, 5h ; AX = 5h ADD AX, 4h ; AX + 4h = AX(5h + 4h = AX) -> SUB 레지스터 1, 레지스터 2 / SUB 레지스터, 값 MOV BX, 4Fh ; BX = 4Fh SUB BX, 5h ; BX - 5h (4Fh – 5h = 4A) -> MUL MOV AX, 5h MOV BX, 4Fh MUL BX ; (4Fh x 5h = 18B) -> DIV MOV AX, 5h MOV BX, 4Fh DIV BX ; (4Fh / 5h = Fh) -> AND 레지스터 1, 레지스터 2 / AND 레지스터, 값 MOV AX, 5h ; 5h = 101b MOV BX, 6h ; 6h = 110b AND AX, BX ; 100b = 4h -> OR 레지스터 1, 레지스터2 / OR 레지스터, 값 MOV AX, 5h ; 5h = 101b MOV BX, 6h ; 6h = 110b OR AX, BX ; 111b = 7h -> XOR 레지스터 1, 레지스터 2 / XOR 레지스터, 값 MOV AX, 5h ; 5h = 101b MOV BX, 6h ; 6h = 110b XOR AX, BX ; 011b = 3h -> NOT 레지스터 / NOT 값 MOV AX, F0h ; F0h = 11110000 NOT AX ; 00001111 = Fh
반응형
'프로그래밍' 카테고리의 다른 글
php 환경변수 정리 (0) | 2013.07.15 |
---|---|
[MFC] 4대 Class간 참조 (0) | 2013.07.15 |
PC의 모든 PCI 장치가 사용중인 리소스 정보를 가져오는 방법 (0) | 2013.07.15 |
[PCI] 0x0CF8, 0x0CFC 레지스터 사용 (0) | 2013.07.15 |
[MFC]SendInput 사용시 주의 점 (0) | 2013.07.15 |