반응형

Programing 146

Assembly INT 10 속성들 정리

00 : 비디오 모드 설정 AL : 표준 색상 텍스트 01 : 커서 크기(드래그 효과) CX start:end 02 : 커서 위치 설정 BH : 페이지 DX : 행:열 03 : 커서 상태 반환 BH : 페이지 05 : 활성 페이지 선택 AL : 페이지 번호 06 : 화면 스크롤 up AL : 선의 개수(전체 00) BH : 배경:전경 CX : 시작 DX: 끝 (24: 79 = 18:4F) 07 : 화면 스크롤 down - 06과 동일 08 : 커서에 위치한 문자 속성 읽기 BH : 페이지 번호 AL에 문자 전달 AH에 속성 전달 09 : 커서에 위치한 문자 AL : ASCII BL : 배경:전경 //뒤집으면 역상 BH : 페이지 번호 CX : 반복되는 문자들의 횟수 0A : 커서에 위치한 문자 디스플레이..

Assembly 05. 비디오, 키보드 처리 인터럽트

INT (Interrupt) 명령어는 대부분 입력, 출력을 다룬다. 화면처리를 위한 INT 10H 기능과 입출력처리를 위한 INT 21H 기능에 대해서 살펴보자. (INT 10H는 INT 21H보다 조금더 low수준) INT 10H와 같이 낮은 수준의 연산은 BIOS에게 제어를 직접 전달한다. BIOS : Basic input output system. 그에 반해, INT 21H는 제어를 DOS에 먼저 전달하여, 더 복잡한 연산을 용이하게 하는 서비스를 제공한다. DOS에서 부가적인 고급 수준의 처리를 수행한 뒤 BIOS에게 제어를 넘김으로써, 좀더 고급수준의 서비스를 제공한다. 1. INT 10 기능 1-1 AH : 02H 커서설정 1-2 AH : 06H 화면스크롤 2. INT 21H 기능 2-1 02..

Assembly 04. 변수 Swap 프로그램

1.레지스터를 이용한 Swap 프로그램 2.Stack을 이용한 Swap 프로그램 CHAR1 = 'a' 라는 변수와 CHAR2 = 'b' 라는 변수를 생성하고, CHAR1,CHAR2를 차례대로 실행하는 OUTPUT 프로시저를 만들었습니다. 1.레지스터를 이용한 Swap 프로그램 PAGE 60,132 TITLE A04ASM2 (EXE) MOVE AND ADD OPERATION ; ------------------------------------------------------------------------- .MODEL SMALL .STACK 64 .DATA ;DEFINE DATA CHAR1 DW 'a' ;변수 1 CHAR2 DW 'b' ;변수 2 ; ------------------------------..

Assembly 02. 어셈블리 기본 구조 및 변수

.SMALL 모델로 프로그래밍 합니다. " ; " 로 주석문을 사용합니다. PAGE 60,132 TITLE A04ASM2 (EXE) MOVE AND ADD OPERATION ; ------------------------------------------------------------------------- .MODEL SMALL .STACK 64 .DATA ;DEFINE DATA ;이곳에 변수를 선언합니다. ;ex) DIGIT DB 값 ;ex) ARR DB 21 DUP(' ') ;배열 선언 등등 ; ----------------------------------------------------------------------- .CODE ;코드 세그먼트의 시작입니다. MAIN PROC FAR MOV AX..

Assembly 01. IBM assembler MASM 설치

/* * http://sosal.tistory.com/ * made by so_Sal */ IBM 계열 PC Assembley programming 입니다. 어셈블러를 공부하기 전에, 어셈블러를 설치하겠습니다. 위 파일과 에디트 플러스가 필요합니다. 1. 프로그램을 적당한 폴더에 설치한다. 2. 에디트플러스를 다운받고 도구 -> 사용자도구 구성을 누른다. 3. Obj파일을 만들 버튼을 다음과 같이 구성한다. 4. EXE 파일을 만들 버튼을 다음과 같이 구성한다. 5. 새로운 문서를 만들고 파일이름.asm 으로 저장한다. 6. 첫 번째 버튼 눌러 Obj 파일을 생성한다. 파일 이름 입력 후 다음과 같은 메시지가 나오면 성공!!! 7. 두 번째 버튼을 눌러 exe 파일을 위와 동일한 방법으로 생성한다.

C programming :: Void형 포인터와 NULL 포인터

/* * http://sosal.tistory.com/ * made by so_Sal */ Void* NULL* Void * 포인터는 모두 주소를 저장하는 변수로 모두 4바이트의 같은 크기를 갖고있다. (물론 32비트 프로그래밍에서 이야기한다.) 주소값이 가지는 값들은 결국 컴퓨터에겐 단순한 숫자일 뿐이지만, 그 숫자가 의미하는것에 따라 의미를 부여하여 int, char, double 등 자료형을 만들었다. 위와 같이 일반적인 포인터는 자신이 가리키는 주소가 가지는 자료형과 같은 자료형을 쓴다. 하지만 포인터 자료형중에 void라는 특별한 놈이 있다. 이놈은 일반적인 포인터와 달리 데이터 자료형이 명시되지 않은 포인터이다. 포인터는 단지 주소에 접근하기 위함 뿐만 아니라 * 연산자를 이용해 값을 변경하고..

C++. template 템플릿. 자유로운 자료형 만들기

/* * http://sosal.tistory.com/ * made by so_Sal */ 시작하자마자 소스를 펼쳤어요. 간단한 소스를 4개 볼것입니다. 이 소스들만 분석하면 템플릿이 어떤건지 정확하게 이해가 될거같네요!! ㅎㅎ 여튼 탬플릿을 사용하는 목적은 자유로운 변수를 만들기 위함입니다. 어떠한 자료형이 들어오던 간에 전부다 알아서 처리해줍니다. /* * template == template 둘은 같은 의미입니다. * class :: C++ 스타일, typename a :: C 스타일 */ #include using namespace std; template //print라는 함수인데 위에 이상한게 있네요. void print(a data){ //함수 인자는 위에 템플릿 옆 class a. a라는 ..

C++ 학생정보 링크드리스트 코드 소스

/* * http://sosal.tistory.com/ * made by so_Sal */ #include //기본 입력,출력 헤더파일 #include // 시간 관련 헤더파일 #include using namespace std; // std클래스 사용 void add(); void del(); void mod(); void find(); void print(); void exit(); void random_data(); void menu(); struct student { int id; char name; int kor; int eng; int math; int total; char grade; struct student *H; struct student *T; };// 구조체 선언 struct stu..

반응형