System Programming 제1장 배경지식 시스템 프로그래밍.

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
천안천일고등학교 Copyright © by Ryu Bin All rights reserved 프로그래밍 실무.
L o g o TVM ver. Beta 설계 제안서 L o g o Contents 프로젝트 개요 1 프로젝트 진행일정 2 프로젝트 목표 3 프로젝트 구성 4.
컴퓨터는 어떻게 동작?.
컴퓨터와 인터넷.
3. 명령어 집합 구조 순천향대학교 정보기술공학부 이상정.
2.3.2 기호 정의문 EQU 프로그래머 기호 정의하고 그 값 지정 기호 정의 기호 값 예 기호 EQU 값
System Programming 제3장 로더와 링커 컴퓨터공학부 시스템 프로그래밍.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Power Java 제2장 자바 개발 도구.
제7강 학습 내용 주소지정 방식의 예 값 즉시 지정 방식과 실행 예 레지스터 직접지정 방식 메모리 직접지정 방식과 실행 예
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
임베디드 시스템.
12장. 제어 장치 다루는 내용 CPU속의 제어장치 마이크로 연산 제어장치의 동작.
어셈블리 문법 보강 4월 10일.
제 3장 컴퓨터 시스템의 구조.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
컴퓨터정보공학부 서버 안내 [ IBM x3500 ] it.sangji.ac.kr ict.sangji.ac.kr 혹은
부트로더와 Self Programming
제1장 컴파일러 개요.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
PSW : PROGRAM STATUS WORD
ATmega128 FND 실습 휴먼네트웍스 기술연구소
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
인천대학교 전자계산학과 멀티미디어와 가상현실 연구실 Marvel Lab. 성 미 영
1장 컴퓨터 시스템의 개요 - 컴퓨터의 기본 시스템(프로세서)을 이해한다. - 명령어 실행 주기를 알아본다.
1장 운영체제 2-C반 운영체제 박소라.
Chap 6.Assembler 유건우.
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
디 지 털 공 학 한국폴리텍V대학.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
UNIX Unbounded A Beginning Approach
플립플롭, 카운터, 레지스터 순서회로 플립플롭 카운터 레지스터.
DK-128 FND 실습 아이티즌 기술연구소
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
2. 컴퓨터 시스템의 동작 명령어 구성 연산 종류와 기능에 따라 오퍼랜드 부분을 다양하게 활용 가능.
제4강 처리장치 1.
자바 5.0 프로그래밍.
ARM Development Suite v1.2
“사람과 컴퓨터” 이 점 숙 컴퓨터와 소프트웨어 “사람과 컴퓨터” 이 점 숙
ATmega128의 특징 아이티즌 기술연구소
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
제2강 : 전자계산기구조-컴퓨터 시스템 구성.
DK-128 개발환경 설정 아이티즌 기술연구소
Lecture #3 제2장 CPU의 구조와 기능(2).
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
ARM Development Suite v1.2
3과목 운영체제 강사 이 민 욱.
셀프 프로그래밍으로 쓰기 셀프 프로그래밍이란? 프린트포트의 ISP 모듈을 사용하지 않음 부트로더에 의한 펌웨어 다운로드
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
TVM ver 최종보고서
3.2 분기 명령어.
제10강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
 6장. SQL 쿼리.
Assembly 05 방호남 07 반지훈 09 박상욱.
Pointers summary.
ARM Development Suite v1.2
Presentation transcript:

System Programming 제1장 배경지식 시스템 프로그래밍

1.1 시스템 소프트웨어의 개요 응용 프로그램(Applications) 운영체제(Operating System) 어셈블러 (Assembler) 컴파일러 (Compiler) 로더 (Loader) 링커 (Linker) 에디터 (Editor) . . . 시스템 소프트웨어 (System Software) 운영체제(Operating System) 하드웨어(Hardware) 사용자의 요구에 맞게 컴퓨터를 사용 가능하게 해줌 주요 주제 어셈블러, 로더와 링커, OS, 컴파일러 시스템 프로그래밍

(Mnemonic Instruction) 1.2 시스템 소프트웨어와 기계 구조 시스템 소프트웨어 컴퓨터 자체의 운영 및 사용을 지원 컴퓨터의 기계 구조와 연관(기계종속적) 기계 구조와의 연관(예) 어셈블러 명령어 형식 주소지정 방식 연상 명령어 (Mnemonic Instruction) 기계 코드 (Machine Code) 컴파일러 레지스터 개수, 용도 사용가능 명령어 소스 코드 (Source Code) 기계 코드 (Machine Code) 시스템 프로그래밍

응용 S/W와 시스템 S/W System Software Application Software 시스템 제어 응용 프로그램의 수행 시스템 자원의 관리 응용 데이터의 관리 프로그래머 또는 응용 프로그램에 서비스 제공 단말 사용자에 서비스 제공 어셈블러로 작성 고급언어로 작성 컴퓨터 전원이 있는 동안 실행 프로그램이 종료 때까지만 실행 시스템 프로그래밍

컴퓨터 구조 메모리 : 정보의 저장 프로세서 : 정보의 조작 입출력 장치 : 정보의 입출력 주소(address)에 의한 위치의 지정 프로세서 : 정보의 조작 메모리내의 명령어의 순서에 의한 동작을 수행 입출력 장치 : 정보의 입출력 입출력 모듈에 의한 데이터의 입출력 담당 Word의 내용 데이터 명령어(Instruction) : OPCODE + OPERAND 프로그램 순서화된 명령어의 집합 시스템 프로그래밍

누산기(Accumulator) : 산술 연산 1.3.1 단순 명령어(SIC) 00000 메모리(32,768bytes) 1 byte = 8bit 1word = 3개의 연속적인 byte word의 주소는 최하위 byte의 주소 레지스터(각 레지스터의 길이 : 24bits) Word 00001 00002 ….. 32767 연상 번호 용도 A 누산기(Accumulator) : 산술 연산 X 1 인덱스 레지스터 : 주소 지정 L 2 링크 레지스터: 점프 명령어의 귀환주소 저장 PC 8 프로그램 계수기 : 다음 명령의 주소 저장 SW 9 상태 워드 : 조건 코드 포함, 다양한 정보 시스템 프로그래밍

1.3.1 단순 명령어(SIC) 8 1 15 opcode x address 데이터 형식 명령어 형식 정수 : 24bits의 2진수(2의 보수) 문자 : ASCII 코드 명령어 형식 모든 명령어 : 24bits 형식 x는 주소 지정 방식을 정하기 위한 플래그 비트 주소 지정 방식(Addressing Mode) 직접 주소 지정 방식 x = 0 ; TA(목표 주소) = address 인덱스 주소 지정 방식 ((X) : 레지스터 X의 내용 ) x = 1 ; TA(목표 주소) = address + (X) 8 1 15 opcode x address 시스템 프로그래밍

1.3.1 단순 명령어(SIC) 명령어 집합(Instruction Set) 입력과 출력 읽고 쓰는 명령어 : LDA, LDX, STA, STX 정수 연산 명령어: ADD, SUB, MUL, DIV COMP: 레지스터 A의 값과 메모리의 한 word 값의 비교 조건부 점프 명령어 : JLT, JEQ, JGT 서브루틴 연결(Subroutine linkage) JSUB: 레지스터 L에 귀환 주소 저장, 서브루틴으로 점프 RSUB: 레지스터 L에 있는 주소로 귀환 입력과 출력 레지스터 A의 가장 오른쪽 바이트에서 전송하거나 받음 TD(Test Device) : 전송하거나 받을 준비가 되어 있는지 조사 Condition code : < (준비), =(작업중) RD m: A[rightmost byte] <-- (m)에서 지정한 장치의 데이터 WD m: (m)이 지정한 장치 <-- (A) [rightmost byte] 시스템 프로그래밍

1.3.2 단순 명령어(SIC/XE) 36 1 11 S 지 수 소 수 메모리 레지스터 데이터 형식 1MB -> 명령어의 형식과 주소지정 방식 변화 레지스터 데이터 형식 SIC와 같은 형태 48bits의 부동 소수점 데이터 연상 번호 용도 B 3 베이스 레지스터 : 주소 지정 S 4 범용 레지스터 T 5 F 6 부동 소수점 누산기(48bits) 36 1 11 S 지 수 소 수 시스템 프로그래밍

1.3.2 단순 명령어(SIC/XE) opcode opcode r1 r2 opcode n i x b p e disp 명령어 형식 메모리 용량의 확대 → 15bits 필드에 맞지 않음 두 가지의 가능한 형태 상대 주소 지정 방식과 20bits로 확장하는 형식 형식 1 형식 2 형식 3( e = 0 ) 형식 4 ( e = 1 ) 8 opcode 8 4 4 opcode r1 r2 6 1 1 1 1 1 1 12 opcode n i x b p e disp 6 1 1 1 1 1 1 20 opcode n i x b p e address 시스템 프로그래밍

1.3.2 단순 명령어(SIC/XE) 주소지정 방식(3 형식) 플래그 비트의 사용 베이스(B) 상대 주소 지정( b=1, p=0 ) TA = (B) + disp(0-4095) disp의 값은 unsigned integer로 해석 프로그램 계수기(PC) 상대 주소 지정 ( b=0, p=1 ) TA = (PC) + disp(-2048-2047) disp의 값은 signed integer(2의 보수)로 해석 플래그 비트의 사용 직접(direct) 주소 지정 방식(b=0, p=0) 형식 4 명령어는 b=0, p=0 이어야 함 인덱스 주소 지정 방식(x=1) (X)를 TA를 구하는 데 더한다. 즉시(immediate) 주소 지정 방식(i=1, n=0) 주소(address)에 있는 값을 피연산자로 사용 간접(indirect) 주소 지정 방식(i=0, n=1) TA에 의해 지정된 위치의 위드에 있는 값을 피연산자로 사용 시스템 프로그래밍

. 3030 003600 3600 103000 6390 00C303 C303 003030 ① ② ③ ④ ⑤ ⑥ 600 300 030 3600 C303 n=0, i=1 p=1 + n=1, i=0 p=1 + x=1 b=1 + + 000090 X 006000 B 003000 PC 시스템 프로그래밍

SIC/XE 명령어와 주소 지정 방식의 예(그림 1.1) 기계 명령어 목표 주소 레지스터 A에 로드되는 값 16진수 2진수 Opcode n i x b p e disp/address 032600 000000 1 1 0 0 1 0 0110 0000 0000 3600 103000 03C300 000000 1 1 1 1 0 0 0011 0000 0000 6390 00C303 022030 000000 1 0 0 0 1 0 0000 0011 0000 3030 010030 000000 0 1 0 0 0 0 0000 0011 0000 30 000030 003600 000000 0 0 0 0 1 1 0110 0000 0000 0310C303 000000 1 1 0 0 0 1 0000 1100 0011 0000 0011 C303 003030 LDA 명령어 시스템 프로그래밍

1.3.2 단순 명령어(SIC/XE) 명령어 집합 입력과 출력 레지스터 명령어 추가 : LDB, STB 등 부동 소수점 산술 연산 : ADDF, SUBF, MULF, DIVF 레지스터로부터 피연산자 가져오는 명령어 : RMO 레지스터-레지스터 연산 : ADDR, SUBR, MULR, DIVR 감독자 호출 : SVC 입력과 출력 CPU가 다른 명령을 수행하는 동안 입력과 출력을 수행할 수 있는 입출력 채널 입출력 채널의 동작 명령어 : SIO, TIO, HIO 시스템 프로그래밍