분류 전체보기
[Python] 튜플 자료형 & 시퀀스 자료형
오늘은 Tuple 자료형과 시퀀스 자료형에 대해 정리를 해볼라 합니다. 1. 튜플 (Tuple) Tuple 자료형은 일단 List 자료형과 매우 흡사한 형태를 보입니다. 하지만 List 자료형과 차이점이 있다면 Tuple은 인덱스 값을 바꾸지 못합니다. 코드를 먼저 살펴 보겠습니다. # -*- Encoding : utf-8 -*- tuple = (1, 2, 3, 5) tuple[0] = 7 print(tuple) 이 코드를 실행시킨다면 오류가 나면서 실행이 되지 않을 겁니다. 위에서 말했듯이 Tuple 자료형은 인덱스 값에 접근을 해서 값을 바꾸지 못합니다. [ ※ List 자료형은 인덱스 값에 접근을 해서 바꾸기 가능 ] # -*- Encoding : utf-8 -*- list1 = [1,2,3] li..
[Python] 튜플 자료형 & 시퀀스 자료형
오늘은 Tuple 자료형과 시퀀스 자료형에 대해 정리를 해볼라 합니다. 1. 튜플 (Tuple) Tuple 자료형은 일단 List 자료형과 매우 흡사한 형태를 보입니다. 하지만 List 자료형과 차이점이 있다면 Tuple은 인덱스 값을 바꾸지 못합니다. 코드를 먼저 살펴 보겠습니다. # -*- Encoding : utf-8 -*- tuple = (1, 2, 3, 5) tuple[0] = 7 print(tuple) 이 코드를 실행시킨다면 오류가 나면서 실행이 되지 않을 겁니다. 위에서 말했듯이 Tuple 자료형은 인덱스 값에 접근을 해서 값을 바꾸지 못합니다. [ ※ List 자료형은 인덱스 값에 접근을 해서 바꾸기 가능 ] # -*- Encoding : utf-8 -*- list1 = [1,2,3] li..
[Assemble] 반복문 구현하기
오늘은 어셈블리로 반복문을 구현해 볼라 합니다. 원하는 이름의 텍스트 파일을 만들어주고 데이터 섹션에 A를 저장해둘 데이터를 만듭니다. write 시스템 콜을 위한 변수들을 초기화 합니다. r10은 반복문의 조건을 위해 변수입니다. 반복을 위한 함수를 만들어줍니다. cmp는 r10 과 100의 관계를 비교하는 명령어이고 je는 (jump equal)를 뜻합니다. 만약 결과값이 r10과 100을 비교했을때 같다면 done으로 점프를 한다는 의미입니다. [ ※ done 함수는 나중에 나옵니다. ] rax를 다시 초기화해준 이유는 어떤 함수를 실행시키면 그 함수의 결과값이 rax에 대입이 되기 때문에 초기화를 해야 합니다. inc는 증가를 위한 명령어입니다. r10을 하나씩 증가시킵니다. 그다음 jmp명령어를..
[Assemble] 기초 문법 정리
어셈블리의 기초 문법을 정리하겠습니다. 1. MOV A의 값을 B에 대입합니다. [ Ex) mov rax, 0 는 rax에 0을 대입하는것과 같음 ] 2. LEA A의 값을 B의 값으로 연산을 포함하여 복사 [ Ex) LEA EAX, [EAX + 1000]은 EAX에 1000을 넣은 값을 다시 EAX에 삽입] 3. JMP 특정한 위치로 건너 뛰어 코드를 실행 (한번 위치로 가면 다시 돌아오지 X) [ Ex) JMP A 는 A의 위치로 점프를 해 코드를 실행한다는것과 같음 ] 4. CALL 함수를 호출한 다음 다시 원래 위치로 돌아올 때 사용 [ JMP와 다른 점은 RET(리턴 주소) 를 이용해 다시 원래 위치로 돌아온다는 특징이 있음] 5. NOP 아무 작업도 하지 않는 명령어 [ 1Byte의 빈 공간을..
[Assemble] 입력한 값을 출력하는 프로그램 만들기
오늘은 입력한 값을 그대로 출력하는 프로그램을 어셈블리로 구현해볼라고 합니다. 일단 텍스트 섹션을 만들어줍니다.오늘은 특정 변수에 문자를 집어넣어 하는 것이 아니기 때문에데이터 섹션은 만들어 주지 않아도 됩니다. 여기서 xor이라는 것이 나옵니다. rax는 만약 같은 값이 있다면 0을 반환하고다른 값이 있다면 1을 반환합니다. 위 코드에서는 rax로 같기 때문에 rax에 0을 대입한것과 같다[ mov rax, 0 이라고 적어도 무방하다 :) ] 그다음 rbx와 rcx, rdx도 rax을 이용하여 0으로 초기화를 해준다. rbx : 베이스 레지스터 rcx : 카운터 레지스터rdx : 데이터 레지스터 sup은 공간 확보를 위한 명령어 입니다. 즉 rsp( rbp = 스택이 시작하는 베이스 포인트 )위로 64..