Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Architecture

Similar presentations


Presentation on theme: "Computer Architecture"— Presentation transcript:

1 Computer Architecture
SPIM Simulator June-Hyun Moon

2 LIST SPIM Definition Multiple versions Memory Layout PCSPIM Example
Homework

3 SPIM Definition SPIM은 MIPS R2000/R3000 프로세서들을 위해 작성되어진 프로그램을 실행시키기 위한 소프트웨어 시뮬레이터 SPIM은 어셈블리 언어나 MIPS의 실행할 수 있는 파일들을 읽고 즉시 실행할 수 있다. SPIM은 자체 포함된 시스템 디버거 약간 운영체제 시스템과 같은 서비스들

4 SPIM of Multiple versions
Command-line-driven program 알파벳과 숫자로 이루어 진다. XSPIM X-windows environment Much easier program to learn PCSPIM Windows version of SPIM

5 Memory Layout . . . 0x7FFFFFFF Stack segment Data that Instruction
operate on . . . Instruction Data segment 0x Text segment 0x Reserved

6 PCSPIM Download and Install Windows 기능 레지스터 출력 텍스트 세그먼트 데이터와 스택 세그먼트
Go Single step Multiple steps Breakpoint

7 PCSPIM Download Downloading PCSPIM

8 Executable File Install

9 Source Code Install Step 1

10 Source Code Install Step 2

11 Source Code Install Step 3 F7 - Compile

12 Source Code Install Step 4 Ctrl + F5 Program Run

13 Windows Register display Text segments Data segments SPIM messages

14 General-purpose registers
Windows Register display MIPS CPU와 FPU안에 있는 모든 레지스터의 값을 보여준다. General-purpose registers

15 Windows Text segments PCSPIM이 실행될 때, 자동으로 로드되어지는시스템 코드와 자신의 프로그램으로 부터 명령어들을 출력한다. [0x ] 0x8fa lw $4, 0($29) ; : lw $a0, 0($sp) memory address of instruction Source code in assembly file Instruction`s numerical encoding Line number in assembly file Instruction`s mnemonic description

16 Windows Data segments (Data and stack segments) SPIM messages
프로그램의 스택에 있는 데이터와 자신의 프로그램의 메모리 안에 로드되는 데이터를 출력한다. SPIM messages error 메시지를 보여준다.

17 Simulator Function Load File → Open 어셈블리 파일을 선택한다. Go Simulator → Go
결과가 콘솔에 출력된다. Single step Simulator → Single Step 한번에 하나의 명령어가 실행된다. Multiple step Simulator → Multiple Step 한번에 주어진 명령어의 수만큼 실행된다. Breakpoint Simulator → Breakpoint 특정 명령어를 실행하기 전에 프로그램을 멈춘다.

18 Function - Load

19 Function - Go

20 Function - Go

21 Function – Single step

22 Function – Single step One step

23 Function – Multiple step

24 Function – Multiple step
Two step

25 Function - breakpoint

26 Function - breakpoint

27 Function - breakpoint

28 Example Sum .text # text section .globl main # call main by SPIM
main: la $t0, value # load address 'value' into $t0 lw $t1, 0($t0) # load word 0(value) into $t1 lw $t2, 4($t0) # load word 4(value) into $t2 lw $t3, 8($t0) # load word 8(value) into $t3 again: beqz $t2, End # t2가 0이면 End로 가고 아니면 다음으로 내려간다 add $t1, $t1, # t1의 값을 하나씩 증가시킨다 add $t3, $t3, $t1 # t3에 t1을 더해 t3에 넣으며 같은 누적한다 sub $t2, $t2, # t2의 값을 하나씩 감소시킨다 j again # again으로 이동시켜 루프를 돌린다 End: sw $t3, 8($t0) # store word $t3 into 8($t0) li $v0, 4 la $a0, msg1 syscall li $v0, 1 move $a0, $t3 .data # data section value: .word 0, 100, # data for addition msg1: .asciiz "SUM of 0~100 Number=>" Sum

29 System calls System Calls (syscall) Method Example)
OS-like services Method Load system call code into register $v0 Load arguments into registers $a0…$a3 After call, return value is in register $v0 Example) li $v0, 4 # print string la $a0, msg1 syscall li $v0, 1 # print integer move $a0, $t3 msg1 = "SUM of 0~100 Number=>“ , $t3 = 5050

30 System calls


Download ppt "Computer Architecture"

Similar presentations


Ads by Google