
총 19개
-
8086 어셈블리어의 명령어에 대한 조사2025.04.281. 컴퓨터의 구성 컴퓨터는 하드웨어와 소프트웨어로 구성되어 있으며, 하드웨어는 중앙처리장치, 기억장치, 입출력장치로, 소프트웨어는 시스템소프트웨어와 응용소프트웨어로 구성되어 있다. 컴퓨터는 데이터를 받아 제어장치와 연산장치를 통해 변환시킨 후 출력장치를 통해 출력하고, 출력 내용을 주기억장치에 저장하는 기능을 한다. 2. 컴퓨터 언어 시스템소프트웨어는 어셈블러, 매크로 프로세서, 링커, 로더, 트랜스레이터, 운영체제 등의 진화 과정을 거쳐왔으며, 어셈블리어는 기계어에 가장 가까운 저급 언어로서 기계어와 1대1 대응이 가능한 프로그...2025.04.28
-
어셈블러의 설계 알고리즘과 자료구조2025.05.131. 어셈블러의 설계 알고리즘 어셈블러는 두 개의 패스로 구성됩니다. 패스 1은 명령어 표를 참조하여 명령어들의 상대 주소를 결정하고, 기호표를 작성하여 기호의 재배치 여부를 결정하는 역할을 합니다. 패스 2는 명령어를 2진 코드로 대체하고 명령어의 기호를 기호표에 있는 값으로 대체하는 역할을 합니다. 2. 어셈블러의 자료구조 패스 1과 패스 2는 각각 다른 역할을 수행하므로 연관된 데이터베이스도 달라 각각의 자료구조를 갖습니다. 패스 1은 원시 프로그램, 명령어 및 지시어 표를 입력으로 받고 기호 표를 출력합니다. 패스 2는 패스...2025.05.13
-
시스템 프로그램 어택랩(attack lab) 과제 보고서2025.05.081. Phase_1 Phase_1에서는 getbuf 함수에 오버플로우가 일어날 값을 입력하고 touch1의 주소값을 입력하여 touch1이 실행되게 한다. asm.txt 파일을 확인하여 getbuf와 touch1의 어셈블리 코드를 찾아 필요한 값을 입력한다. 2. Phase_2 Phase_2에서는 touch2 함수를 실행하기 위해 rdi 레지스터에 cookie 값을 넣어주고 touch2 함수로 이동하는 코드를 삽입한다. 이를 위해 gdb를 실행하여 getbuf 직전의 rdi 값을 확인하고, buffer.s 파일을 작성하여 필요한 값...2025.05.08
-
시스템프로그래밍(명령어 실행 4단계 및 논리주소와 물리주소)2025.01.031. 명령어(instruction) 명령어(instruction)란 컴퓨터가 직접 실행할 수 있는 프로그램의 최소 단위를 의미합니다. 명령어는 프로세서가 외부적으로 작동하는 '판독'과 '기록' 사이클, 기억장치에서 읽은 프로그램 명령어를 '실행시키는 4단계'로 구분해서 이해할 수 있습니다. 2. 명령어 실행 4단계 명령어 실행은 '명령어 인출 → 명령어 해독 → 데이터 인출 → 명령어 실행'의 4단계로 진행되며, 각 단계별 내용이 자세히 설명되어 있습니다. 3. 물리 주소와 논리 주소 메모리의 구조는 크게 물리 주소와 논리 주소 두...2025.01.03
-
[A+레포트] 어셈블리어의 특징과 명령어 형식을 설명하시오.2025.01.131. 어셈블리어의 개념 및 특징 어셈블리어는 컴퓨터 아키텍처에 밀접하게 연관된 저수준 프로그래밍 언어입니다. 이는 기계어 코드에 대응하는 기호적인 명령어를 사용하여 프로그래밍을 수행합니다. 어셈블리어의 가장 큰 특징은 기계어와의 1:1 대응 관계에 있습니다. 이로 인해 프로그래머는 컴퓨터의 작동 원리와 메모리 구조를 정확히 이해하고, 이를 바탕으로 최적화된 코드를 작성할 수 있습니다. 그러나 어셈블리어의 사용은 코드의 가독성이 낮고, 작성 및 유지 보수가 어렵다는 단점이 있습니다. 2. 어셈블리어의 명령어 형식과 구조 어셈블리어의 ...2025.01.13
-
이중 패스 어셈블러의 알고리즘에 대하여 정리해보세요2025.01.221. 이중 패스 어셈블러 알고리즘 이중 패스 어셈블러 알고리즘은 프로그램을 처음부터 끝까지 소스 프로그램을 전체 스캐닝한 뒤 한 번 더 읽으며 전체 번역이 이루어지도록 하는 번역기입니다. 첫 번째 패스 단계에서는 기호표를 형성하고 두 번째 패스에서는 번역하며 목적 프로그램을 형성하는 방식으로 현재는 대부분 어셈블러가 이러한 방식을 채택하고 있습니다. 2. 패스 1 알고리즘 패스 1 알고리즘은 명령어의 크기, 형태 등을 나타내는 명령어 표를 참조하고 명령어의 상대 주소를 결정합니다. 또한, 기호표를 작성하고 기호 재배치 여부를 결정하...2025.01.22
-
[A+ 레포트] 시스템프로그래밍 - 레지스터의 역할과 종류를 설명하시오.2025.01.141. 레지스터의 역할 컴퓨터 시스템 내에서 레지스터는 중앙 처리 장치(CPU)의 핵심적인 부분이다. 이는 데이터를 일시적으로 저장하는 작은 저장 공간으로, 컴퓨터의 성능과 직접적인 관련이 있다. 레지스터는 CPU가 처리할 데이터를 임시로 보관하거나, 명령 실행에 필요한 정보를 저장하는 등 다양한 역할을 수행한다. 이러한 레지스터의 특성과 역할을 이해하는 것은 시스템 프로그래밍을 공부하는 학생들에게 있어 매우 중요하다. 왜냐하면, 레지스터의 효율적인 사용은 프로그램의 실행 속도와 시스템의 전반적인 성능에 영향을 미치기 때문이다. 2....2025.01.14
-
쓰레드 구현 모델과 쓰레드 폴링에 대해 조사하시오2025.05.151. 쓰레드 구현 모델 쓰레드 구현 모델은 운영체제에서 사용되는 것으로 사용자 수준, 커널 수준, 두 수준을 혼합한 방식이 있다. 사용자 수준 쓰레드는 커널 쓰레드를 지원하지 않는 운영체제에서 사용되며 다대일 쓰레드 매핑이다. 커널 수준 쓰레드는 사용자 수준 쓰레드가 가지는 한계를 해결하기 위해서 사용되기 시작했으며 일대일 쓰레드 매핑을 지원한다. 혼합형 쓰레드는 여러 개의 사용자 수준 쓰레드에 여러 개의 커널 쓰레드가 매핑되는 다대다 쓰레드 모델이다. 2. 쓰레드 폴링 쓰레드 폴링은 혼합형 쓰레드에서 사용되며 과부하를 줄여 프로그...2025.05.15
-
레지스터의 역할과 종류2025.01.031. 레지스터의 역할과 특징 레지스터는 메모리의 일종으로 컴퓨터의 중앙처리장치 내부에 있는 여러 개의 비트로 이루어진 고속 데이터 기억장치로써, 소량의 데이터를 저장함으로써 용량은 다른 장치에 비해 낮다. 중앙처리장치는 연산을 위해 메모리에 있는 데이터를 레지스터에 옮기고, 연산을 하는 중 결과 값을 레지스터에 임시 저장한다. 레지스터는 CPU와 직접 연결되어있어 연산 속도가 가장 빠르며, CPU는 자체적으로 데이터를 저장할 수 없기에 연산을 위해서는 반드시 레지스터를 이용해야 한다. 2. 레지스터의 종류 레지스터의 종류는 그 쓰임...2025.01.03