기본 컴퓨터 프로그래밍 Lecture #6.

Slides:



Advertisements
Similar presentations
1 Prof. Young Jin Nam, Daegu University 컴퓨터 구조 (Computer Architecture) 명령어 세트 : 특성과 기능 남영진
Advertisements

컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
ISA 심화 및 start.S code 분석 SIOR 15th 최재훈.
Vision System Lab, Sang-Hun Han
C++ Tutorial 1 서강대학교 데이터베이스 연구실.
프로그램 제어 분기(branch)와 점프(jump) 명령어 PC의 값의 변경 순차적인 프로그램의 진행순서가
9장 가로채기(Interrupt) Slide 1 (of 15).
기본 컴퓨터의 구조와 설계 Lecture #5.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
Operating Systems Overview
컴퓨터구조 – 중간시험 (답안지) 부분점수 (사소한 실수면 -1)
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
7장 : 캐시와 메모리.
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
3장 MPU 내부구조 Slide 1 (of 28).
임베디드 하드웨어 Lecture #6.
Discrete Math II Howon Kim
컴퓨터 구조학 정보보호학과.
컴퓨터 구조론 2001년 10월 22일 발표자 황영선.
제4장. 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
7장 마이크로프로세서의 명령어수행과 주소지정 방식 Slide 1 (of 29).
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
컴퓨터 구조.
1 컴퓨터 시스템 소개.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
PLC를 이용한 제어로직에 관한 연구 김 재 은.
제 1 장 C 언어의 개요 Google 공동 창업자, 래리 페이지와 세르게이 브린.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
Chapter 08 제어장치와 마이크로 오퍼레이션.
4장 컴퓨터의 중앙 처리 장치 하 효 순.
Computer Architecture
프로그래밍 서울대학교 통계학과 2009년 2학기 컴퓨터의 개념 및 실습 (
어셈블리어 및 실습 금 1,2 (314) / 금 3,4 (307) RTDCS 이 종 태
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
3주 컴퓨터구조.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
제 2장 컴퓨터동작의 기본 개념.
아날로그 VS 디지탈 -. Analog Vs Digital -. 디지털 논리에 대하여 -. 메모리에 대하여
2 데이터 표현과 컴퓨터 연산 IT CookBook, 컴퓨터 구조와 원리 2.0.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
Chapter 4 The Von Neumann Model.
데이터의 표현과 컴퓨터 연산 Prof. Jae Young Choi (최재영 교수)
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
Chapter 2 Lexical Elements, Operators, and the C System
Computer System Architecture
A Web-Based Little Man Computer Simulator
운영체제 (Operating Systems) (Memory Management Strategies)
Introduction to Programming Language
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
Chapter 12 Memory Organization
제 1 장. 자료구조와 알고리즘.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Discrete Math II Howon Kim
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture #5 제4장. 제어 유니트.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
I/O Management and Disk Scheduling
Introduction to Computer System 컴퓨터의 이해 3: 데이터 표현
임베디드 하드웨어 Lecture #6.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture 7 7-Segment LED controller using u-controller
4-1. 명령어 형식.
Presentation transcript:

기본 컴퓨터 프로그래밍 Lecture #6

강의 목차 Introduction Machine Language Assembly Language Assembler Program Loops Programming Arithmetic and Logic Operations Subroutines Input-Output Programming 컴퓨터시스템구조

강의 개요 (1) 컴퓨터 시스템에서 하드웨어와 소프트웨어는 상호 영향을 미치기 때문에 컴퓨터 구조를 이해하기 위해서는 하드웨어와 소프트웨어 모두에 대한 지식이 필요 소프트웨어(Software) 컴퓨터에서 실행하기 위해 작성된 프로그램 프로그램 작성  일련의 기계명령어를 직접,간접적으로 기술하는 것 사용자 위주 프로그래밍 언어의 필요성 Translate user-oriented symbolic program(alphanumeric character set) into binary programs recognized by the hardware 컴퓨터시스템구조

강의 개요 (2) 기본 컴퓨터의 명령어 집합 25 개의 기계어 명령어 지원 Memory Reference Instruction Register Reference Instruction Input-output Instruction 컴퓨터시스템구조

기계어 (1) 프로그램 분류 고급 프로그래밍 언어 기호 코드(Symbolic Code) 어셈블러(Assembler) 문제해결에 필요한 과정을 고려하여 개발된 언어 인간의 언어와 유사 컴파일러(Compiler) 예: 두 수의 더하기(FOTRAN 프로그램) 기호 코드(Symbolic Code) 어셈블리 언어(Assembly Language) 이진 코드의 명령어를 기호로 표현 어셈블러(Assembler) 컴퓨터시스템구조

기계어 (2) 프로그램 분류 8진수 또는 16진수 코드 이진 코드 / 기계어(Machine Code) 이진수 코드를 읽기 쉽게 8진수 또는 16진수로 표현 이진 코드 / 기계어(Machine Code) 실제 메모리 상에 로드되어 CPU에 의해 실행되는 명령어 시퀀스 컴퓨터시스템구조

어셈블리 언어 (1) 어셈블리 언어 프로그램 작성 규칙 기본 컴퓨터의 어셈블리 프로그램 작성 규칙 Documented and published in manuals(from the computer manufacturer) 정확한 번역을 위해 형식 규정을 잘 지켜 프로그램을 작성하여야 함. 기본 컴퓨터의 어셈블리 프로그램 작성 규칙 어셈블리 언어 프로그램의 각 줄은 세 개의 필드(field)로 구성 1) Label field : empty or symbolic address 2) Instruction field : machine instruction or pseudo-instruction 3) Comment field : empty or comment 기호 주소: Symbolic Address(Label field) One, two, or three, but not more than three alphanumeric characters The first character must be a letter; the next two may be letters or numerals A symbolic address is terminated by a comma(recognized as a label by the assembler) 컴퓨터시스템구조

어셈블리 언어 (2) 기본 컴퓨터의 작성 규칙 (계속) 명령어 필드 : Instruction Field 1) A memory-reference instruction(MRI) Ex) ADD OPR(direct address MRI), ADD PTR I(indirect address MRI) 2) A register-reference or input-output instruction(non-MRI) Ex) CLA(register-reference), INP(input-output) 3) A pseudoinstruction with(ORGN) or without(END) an operand : Tab. 6-7 의사 명령어(Pseudoinstruction)은 기계어 명령어가 아니고 어셈블러(Assembler)에게 필요한 정보만 제공 주석 필드 : Comment field must be preceded by a slash(recognized by assembler as comment) 컴퓨터시스템구조

어셈블리 언어 (3) 예제 프로그램 : 표. 6-8 83 -( -23 ) = 83 + ( 2’s Complement of -23)= 83 + 23 컴퓨터시스템구조

어셈블리 언어 (4) 어셈블리 프로그램의 이진 코드 변환 : 2-pass 어셈블러 1) 1st scan pass : 사용자 정의 심볼 테이블 생성 2) 2nd scan pass : 이진 코드 변환 Address Symbol Hexadecimal Address MIN 106 SUB 107 DIF 108 컴퓨터시스템구조

어셈블러 (1) 어셈블러(Assember) 기호-언어 프로그램을 읽어 이진 프로그램으로 번역 소스 프로그램(Source Program) 기호-언어로 작성된 입력 프로그램 ASCII 코드로 작성된 텍스트 데이터 목적 코드(Object Code) 재배치 가능한(relocatable) 이진 코드 프로그램 이진 코드(Binary Code) 목적 코드와 라이브러리 등을 링크하여 실행 가능한 형태로 생성된 이진 코드 프로그램 컴퓨터시스템구조

어셈블러 (2) 2-패스 어셈블러(2-Pass Assember) 1-Pass Scan : 사용자 정의 주소 심볼 테이블 생성 Flowchart  LC(Location Counter) – 현재 처리되고 있는 명령어나 피연산자에 지정된 메모리 주소값을 저장 주소 심볼 테이블 : 표. 6-11 참조 컴퓨터시스템구조

어셈블러 (3) 2-패스 어셈블러(2-Pass Assember) (계속) 2-Pass Scan : 이진 코드 변환 다음의 4개의 테이블을 참고하여 어셈블리 명령어를 이진 코드로 변환 (1) 의사명령어 테이블 (2) MRI 테이블 (3) Non-MRI 테이블 (4) 주소 심볼 테이블 에러 진단(Error Diagnostics) 모호한 기계어 코드, 정의가 안된 기호 주소 사용 등 에러 메시지 출력 Flowchart : 다음 페이지 참조 컴퓨터시스템구조

어셈블러 (4) 컴퓨터시스템구조

프로그램 루프 프로그램 루프(Program Loops) 예: A sequence of instructions that are executed many times 예: Sum of 100 integer numbers Fortran 프로그램 Symbolic Program : 표. 6-13  주소 150부터 100 개의 데이터를 더하기 컴퓨터시스템구조

산술 및 논리 연산 프로그래밍 (1) Hardware implementation Software implementation Operations are implemented in a computer with one machine instruction Ex) ADD, SUB Software implementation Operations are implemented by a set of instruction(Subroutine) Ex) MUL, DIV 곱셈 프로그램(Multiplication Program) Positive Number Multiplication X = multiplicand, Y = multiplier, P = Partial Product Sum Y를 AC 에 저장한 후 E로 Circular Right E = 1 : P에 1111을 더함 E = 0 : 더하지 않음 컴퓨터시스템구조

산술 및 논리 연산 프로그래밍 (2) 곱셈 프로그램(Multiplication Program) (계속) 컴퓨터시스템구조

산술 및 논리 연산 프로그래밍 (3) 배정밀도 가산(Double Precision Addition) : 32 bits 하위 AL + BL 먼저 수행하여 E를 상위에 반영(AH + BH + E) 컴퓨터시스템구조

산술 및 논리 연산 프로그래밍 (4) 논리 연산(Logic Operations) Logic Operation 중에서 OR명령이 없다(Tab. 6-1) 추가하려면 더 긴 Instruction Format 필요 해결방법: DeMorgan’s theorem 컴퓨터시스템구조

산술 및 논리 연산 프로그래밍 (5) 시프트 연산(Shift Operations) Logical Shift : Zero must added to the extreme position Shift Right Shift Left Arithmetic Shift Right Positive ( + = 0) Negative ( -= 1) 컴퓨터시스템구조

서브루틴 (1) 서브루틴(Subroutine) 프로그램 내에서 여러 번 사용되는 공통된 명령어 집합 기본 컴퓨터에서 주 프로그램과 서브루틴 사이의 링크는 BSA(Branch and Save return Address) 명령어에 의해 실행 서브루틴 예제 : Tab. 6-16 컴퓨터시스템구조

서브루틴 (2) 서브루틴 파라미터와 데이터 링키지(Data Linkage) Parameter(or Argument) Passing 서브루틴이 호출될 때에는 주 프로그램은 서브루틴이 필요로 하는 데이터를 넘겨주어야 한다 2 가지 Parameter Passing 방법 1) Data transfer through the Accumulator Used for only single input and single output parameter 2) Data transfer through the Memory 여러 개의 Operand 전달가능 Operand are often placed in memory locations following the CALL 2 개의 Parameter Passing 예: Tab. 6-17 First Operand and Result: Accumulator Second Operand: Inserted in location following the BSA BSA후에 2개 Operand 예: Tab. 6-18 BSA 후에 2개의Operand 사용 Block 전송 Source와 Destination Address로 사용 컴퓨터시스템구조

서브루틴 (3) 컴퓨터시스템구조

서브루틴 (4) 컴퓨터시스템구조

입출력 프로그래밍 (1) One-character I/O Programmed I/O 방식 컴퓨터시스템구조

입출력 프로그래밍 (2) Two-character I/O Two character Packing 컴퓨터시스템구조

입출력 프로그래밍 (3) Store Input Character in Buffer 컴퓨터시스템구조

입출력 프로그래밍 (4) Compare Two Word 컴퓨터시스템구조

입출력 프로그래밍 (5) Interrupt Program Interrupt Condition Interrupt F/F R= 1 when IEN= 1 and [FGI or FGO= 1] Save return address at 0000 Jump to 0001(Interrupt Start) Interrupt Service Routine(ISR) 1) Save Register (AC, E) 2) Check Input or Output Flag 3) Input or Output Service Routine 4) Restore Register (AC, E) 5) Interrupt Enable (ION) 6) Return to the running program Modified Fetch Cycle과 Reset 시에 IEN=0가 된다 (Ref. Fig. 5-15) 컴퓨터시스템구조