* 어셈블리어 

- AT&T => 리눅스 개발자들이 사용, 레지스터 앞에 %, 리터럴 값 앞에 $사용. 

 

ex) CMD <source>,<dest><#command>

 

- NASM(Netwide Assembler) => 윈도우 에섬블러나 디버거들이 사용.

 

ex) CMD <dest>, <source> <;comment>

 

 

*어셈블리어 지시자

 

 

1. mov 

=> <source>에서 <dest>로 데이터를 복사. 소스에 값이 없어지지 않음.

NASM문법 NASM예제 AT&T예제
mov <dest>, <source> mov eax,51h;comment movl $51h, %eax #comment

 

ex) 

mov eax, 1234h; 16진수 값 1234를 eax로 저장

mov cs, ax; 그런 다음 ax의 값을 cs로 복사

 

 

2.  add, sub

=> add는 소스를 목적지에 더하고 결과를 목적지에 저장, sub는 목적지에서 소스를 뺀 다음 결과를 목적지에 저장.

 

NASM문법 NASM예제 AT&T예제

add <dest>, <source>

sub <dest>, <source>

add eax, 51h

sub eax, 51h

addl $51h, %eax

subl $51h, %eax

 

 

3. push, pop 

=> 스택에 아이템을 넣거나, 빼기.

 

NASM문법 NASM예제 AT&T예제

push <value>

pop <dest>

push eax

pop eax

pushl %eax

popl %eax

 

4. xor

=> xor 값, 값 을 이용하여 값을 0으로 만들거나 레지스터나 메모리 위치를 지울 수 있음.

 

NASM문법 NASM예제 AT&T예제

xor <dest>, <source>

xor eax, eax

xor %eax, %eax

 

5. jne, je, jz, jnz, jmp

=> eflag인 "zero flag" 값에 따라 다른 위치로 분기.

=> jne, jnz 는 "zero flag"=0 이면 해당 번지로 점프

=> je, jz 는 "zero flag"=1 이면 점프 

=> jmp는 항상 점프 

 

NASM문법 NASM예제 AT&T예제

jnz <dest> / jne <dest>

jz <dest> / je <dest>

 

jmp <dest> 

jne start

jz loop

 

jmp end

jne start

jz loop

 

jmp end

 

6. call, ret

=> call은 프로시저를 호출 , ret는 프로시저 끝에서 호출 후 명령어 흐름으로 되돌아갈 때 사용.

 

NASM문법 NASM예제 AT&T예제

call <dest>

ret

call subroutine1

ret

call subroutine1

ret 

 

7. inc, dec

=> 목적지 값을 늘이거나 줄이거나.

 

NASM문법 NASM예제 AT&T예제

inc <dest>

dec <dest>

inc eax

dec eax

incl %eax

decl %eax

 

8. lea 

=> 소스의 유효한 주소를 목적지로 로드

 

NASM문법 NASM예제 AT&T예제

lea <dest>, <source>

lea eax, [dsi+4]

leal 4(%dsi), %eax

 

 

9. int

=> 프로세서에 시스템 인터럽트 신호를 던짐. 사용할 공통 인터럽트는 커널에 시스템 호출을 보내는 0x80이다.

 

NASM문법 NASM예제 AT&T예제

int <val>

int 0x80

int $0x80 

'이론충' 카테고리의 다른 글

TCP/IP-1  (0) 2018.11.21

1.     OSI 7계층


1) 물리(Physical)계층 // bit로 데이터 전송, 거리멀면 리피터로 신호 증폭

  ex) 동축케이블, 광섬유


2) 데이터링크(Data Link)계층

// ip주소를 읽어 mac주소 구함, 네트워크 부하x -> 흐름제어, 에러 탐지/교정

  ex) 흐름제어, 오류제어(ARQ), Frame Relay


3) 네트워크(Network)계층

// ip주소 읽어 라우터 경로 결정 후 포워딩, IPv4/IPv6, 에러는 ICMP 프로토콜 사용.

 ex) IP, ICMP, 라우팅 프로토콜


4) 전송(Transport)계층 // 송수신자 논리적 연결, TCP/UDP, 에러 탐지/재전송/수정

 ex) TCP/UDP


5) 세션(Session)계층 // 송수신자 동기화 신호 주고받음, 단순/반이중/전이중 방식

 ex) 단순/반이중/전이중 결정


6) 표현(Presentation)계층 // 코드변환, 메시지 압축, 스니핑 막기위해 암호화 수행.

 ex) 압축, 암호, 코드 변환, GIF, ASCII, EBCDIC


7) 응용(Application)계층 // 메시지 생성 (인터넷-HTTP, 파일 업로드/다운로드-FTP,

네트워크 모니터링-SNMP, 전자우편 발송/수신-SMTP)

                                              ex) FTP, SNMP, HTTP, Mail, Telnet

 

 

2.     TCP/IP 4계층

1)    애플리케이션(Application)계층

ex) HTTP, FTP, SMTP, DNS, RIP, SNMP


2)    전송(Transport)계층

   ex) TCP, UDP


3)    인터넷(Internet)계층

ex) IP, ICMP, ARP, RARP


4)    네트워크접근(Network Access)계층

ex) Ethernet, Token Ring, Frame Relay, ATM



// 2- Ethernet은 네트워크 접근 계층

3- IP는 인터넷 계층

              4- TCP는 전송 계층

              5- HTTP는 전송 계층

 

 

3.     TCP/UDP 포트 목록


 

포트

TCP

UDP

설명

20

TCP

 

FTP(데이터)

21

TCP

 

FTP(제어)

22

TCP

 

SSH(Secure Shell)

23

TCP

 

Telnet

25

TCP

 

SMTP

53

TCP(Zone transfer)

UDP(질의응답)

DNS

69

 

UDP

TFTP

80

TCP

UDP

HTTP

110

TCP

 

POP3

143

TCP

 

IMAP4

161

 

UDP

SNMP(Agent)

162

 

UDP

SNMP(Manager)

443

TCP

 

HTTPS

 

 

  











   



4.   TCP 구조


Source Port

Destination Port

Sequence Number

Acknowledment Number

Data

Offset

Reserved

URG

ACK

PSH

RST

SYN

FIN

Receive Window

Checksum

Urgent Pointer

Options and Padding

Data bytes

// Sequence Number: 메시지 순서 파악

   Acknownledment Number: 수신자가 응답받은 데이터의 수

Checksum: 메시지 변조 파악

Window : 수신자의 윈도우 크기(메모리 버퍼), 버퍼 크기만큼 데이터 한꺼번에 전송.

 

- TCP의 주요 기능

// 신뢰성 있는 전송, 순서 제어, 완전이중, 흐름 제어, 혼잡 제어


'이론충' 카테고리의 다른 글

어셈블리어  (0) 2019.04.12

+ Recent posts