
총 19개
-
어셈블리언어(시스템프로그래밍) 과제-3 (라이브러리 활용과 조건부 처리 프로그램 작성)2025.05.111. 난수 생성 프로그램에서 Randomize를 이용하여 시작 시드값을 항상 변경하므로, 난수 생성 시 처음 시작할 때와 동일하지 않은 랜덤한 값들이 나오게 된다. 이를 통해 -100 이상 100 미만의 20개의 난수를 생성하여 화면에 10진수로 출력하는 프로그램을 작성하였다. 2. 메모리 덤프 DumpMem 프로시저를 사용하여 워드 배열과 더블워드 변수의 값을 출력하는 프로그램을 작성하였다. ESI에 시작 주소, EBX에 원소의 크기, ECX에 원소 개수를 저장하여 DumpMem을 호출하였고, 이를 통해 메모리 내용을 확인할 수 ...2025.05.11
-
이중 패스 어셈블러의 알고리즘에 대하여 정리해 보세요2025.01.181. 이중 패스 어셈블러 이중 패스 어셈블러는 소스 코드를 두 번 스캔하여 어셈블리 과정을 수행합니다. 첫 번째 패스에서는 레이블 정의를 찾아 기호 테이블에 추가하고, 두 번째 패스에서는 기호 테이블을 참조하여 실제 기계 코드로 변환합니다. 이를 통해 데이터 기호의 순방향 참조 문제를 해결할 수 있습니다. 2. 원 패스 어셈블러와의 비교 원 패스 어셈블러는 소스 코드를 한 번만 스캔하여 즉시 기계 코드를 생성하지만, 데이터 기호의 순방향 참조 문제를 해결하기 어렵습니다. 이에 비해 이중 패스 어셈블러는 두 번의 스캔을 통해 이 문제...2025.01.18
-
유닉스에 대한 구조와 특징에 대해 설명하시오2025.01.281. 유닉스 구조 개요 유닉스는 구조가 단순하면서도 효율적인 운영체제로 설계되었습니다. 유닉스의 구조는 크게 커널, 쉘, 응용 프로그램으로 구분할 수 있습니다. 커널은 운영체제의 핵심 부분으로, 하드웨어 자원을 관리하고 시스템 호출을 처리하며, 다양한 장치와의 상호작용을 중재하는 역할을 합니다. 쉘은 사용자가 시스템과 상호작용할 수 있도록 하는 인터페이스이며, 응용 프로그램은 사용자가 실제로 작업을 수행하는 소프트웨어입니다. 2. 커널과 쉘의 역할 유닉스의 커널은 시스템 자원의 효율적 관리를 담당하며, 메모리 관리, 프로세스 스케줄...2025.01.28
-
네트워크 프로그래밍_파일전송 프로그램 작성하기2025.01.131. 네트워크 프로그래밍 이 프레젠테이션은 네트워크 프로그래밍에 대한 내용을 다루고 있습니다. 클라이언트-서버 모델을 사용하여 파일 전송 프로그램을 작성하는 방법을 설명하고 있습니다. 클라이언트 코드에서는 서버에 연결하고 파일을 전송하는 과정을 보여주며, 서버 코드에서는 클라이언트의 연결을 받아 파일을 저장하는 과정을 보여줍니다. 이를 통해 네트워크 프로그래밍의 기본적인 개념과 구현 방법을 이해할 수 있습니다. 2. 파일 전송 이 프레젠테이션에서는 클라이언트에서 서버로 파일을 전송하는 방법을 다루고 있습니다. 클라이언트 코드에서는 ...2025.01.13
-
시스템프로그래밍_이중 패스 매크로 프로세서 알고리즘에 대하여 정리2025.04.271. 매크로(Macro) 매크로는 일련의 명령어에 대한 생략형으로, 반복되는 일련의 명령어들을 한 줄로 간략하게 표현할 수 있다. 매크로의 다양한 기능에는 조건부 매크로 확장, 매크로 내의 매크로 호출, 매크로 내의 매크로 정의, 반복 기능의 매크로 등이 있다. 2. 매크로 프로세서 매크로 프로세서는 매크로 정의를 인식하고 저장하며, 매크로 호출을 인식하고 매크로를 확장하여 인수를 치환하는 기능을 수행한다. 매크로 프로세서는 전향 참조 문제로 인해 이중 패스 알고리즘을 사용하게 된다. 3. 이중 패스 매크로 프로세서 알고리즘 이중 ...2025.04.27
-
쓰레드 구현 모델과 쓰레드 폴링에 대해 조사하시오.2025.01.171. 쓰레드 쓰레드는 프로그램 내에서 동시에 여러 작업을 처리하기 위한 실행 단위를 의미한다. 프로세스는 완전히 독립된 두 개의 프로그램의 실행을 위한 것이지만, 쓰레드는 하나의 프로그램 내에서 둘 이상의 실행을 위하기 때문에 독립시키는 구조가 필요하지 않다. 그래서 쓰레드를 이용하면 하나의 프로세스 내에서 여러 작업을 동시에 수행할 수 있으므로 프로그램의 성능과 효율성이 향상된다. 2. 쓰레드의 구현 모델 쓰레드는 크게 두 가지 방법으로 구현될 수 있다. 유저 레벨 쓰레드는 프로그램이 직접 쓰레드를 관리하는 방법으로 쓰레드를 구현...2025.01.17
-
어셈블리어의 특징과 명령어 형식2025.01.031. 어셈블리어 어셈블리어는 컴퓨터 프로그래밍 언어의 한 종류로 저급언어에 속하는 언어입니다. 어셈블리어는 어셈블러라는 프로그램을 사용하기 위해서 쓰는 프로그램 언어로, 기계어와 거의 일대일로 이루어집니다. 어셈블리어는 하드웨어에 직접 접근해서 프로그램을 처리하며, 명령의 실행 속도가 가장 빠르지만 세밀하게 프로그래밍해야 한다는 단점이 있습니다. 하지만 하드웨어를 효율적으로 제어할 수 있기 때문에 많은 사람들이 이 언어를 배웁니다. 2. 어셈블리어 명령어 형식 어셈블리어의 명령어 형식은 다음과 같습니다. Label은 명령어나 데이터...2025.01.03
-
시스템프로그래밍 레지스터의 역할과 종류2025.05.091. 레지스터의 종류 레지스터에는 데이터 레지스터, 포인터 레지스터, 인덱스 레지스터, 플래그 레지스터, 세그먼트 레지스터 등이 있다. 데이터 레지스터는 일시적인 결과를 기록하고, 포인터 레지스터는 스택 포인터와 베이스 포인터로 구성되어 스택 조작에 사용된다. 인덱스 레지스터는 데이터의 주소를 저장하고, 플래그 레지스터는 연산 결과의 정보를 저장한다. 세그먼트 레지스터는 세그먼트의 시작 주소를 저장한다. 2. 논리주소와 물리 주소의 관계 8086에서 출력된 주소 데이터는 세그먼트 레지스터 값을 4비트 시프트 한 것에 오프셋 값을 가...2025.05.09
-
어셈블리언어(시스템프로그래밍) 과제-4 (고급 언어 구조와 정수 연산을 수행하는 프로그램)2025.05.111. 메모리 변수 사용 프로그램 메모리 변수를 사용하는 간단한 프로그램을 작성하여 Visual Studio 통합개발환경에서 어셈블러를 사용할 수 있는 프로젝트를 만들고 실행해보았습니다. 디버거 사용법도 연습하였습니다. 코드를 통해 변수 val1과 val2의 메모리 주소와 저장된 값을 확인할 수 있었고, 레지스터 eax에 두 값의 합이 저장된 것을 확인할 수 있었습니다. 2. if-else 구문 구현 if-else 구문을 구현하는 프로그램을 작성하였습니다. ecx와 edx 레지스터에 입력받은 값을 비교하여 조건부 점프를 통해 x 변수...2025.05.11
-
매크로 프로세서의 기능에 대한 조사2025.05.071. 매크로 정의와 확장 매크로 프로세서는 프로그래머가 코드를 작성할 때 작업을 단순화하고 코드의 재사용성을 높이는 도구로 사용됩니다. 매크로 프로세서는 프로그램에서 자주 사용되는 코드 조각이나 패턴을 단순한 키워드로 정의할 수 있게 해줍니다. 이렇게 정의된 키워드는 나중에 코드에서 사용될 때 자동으로 원래의 코드 조각이나 패턴으로 확장되어집니다. 이 과정은 매크로 확장이라고 합니다. 매크로 확장의 장점은 코드 중복의 최소화, 가독성 향상 등입니다. 2. 매개변수화된 매크로 매크로 프로세서는 매개변수화된 매크로를 지원하여, 프로그래...2025.05.07