Service Code in $v0 Arguments Result
print integer
1
$a0 = integer to print
 
print float
2
$f12 = float to print
 
print double
3
$f12 = double to print
 
print string
4
$a0 = address of null
 
read integer
5
  $v0 contains integer read
read float
6
 
$v0 contains float read
read double
7
 
$v0 contains double read
read string
8
$a0 = address of input buffer
 
read string
8
$a1 = maximum number of characters to read
 
sbrk(allocate heap memory)
9
$a0 = number of bytes to allocate
 

'학부과정 > 컴퓨터 구조' 카테고리의 다른 글

MIPS assembly code  (0) 2022.12.21
컴퓨터 구조  (0) 2022.10.11
    .text
    .globl_start
__start:
    la $a0, str
    li $v0, 4
    syscall 

    li $v0, 10
    syscall

       .data
str:    .asciiz “hello world\n”

hello world를 출력하는 프로그램

  • text 세그먼트에서는 실제 수행할 명령어들이 들어간다(코드 부분)
  • data 세그먼트에는 코드에서 사용하는 데이터를 기술한다

  • la : load address
  • li : load immediate

str 안에 hello world라는 문장이 들어간 것을 볼 수 있고,
la $a0, str을 보면 str에 들어간 값을 $a0에 집어넣는 것

li $v0, 4 ==> 4번에 해당하는 서비스 해줘 : 4라는 값을 $v0에 넣으라는 것 이다

여기서 4번이란, print를 의미한다
내가 직접 print하는 건 귀찮으니, 원하는 서비스 번호를 입력하여 사용하는 것

li $v0, 10 ==> 10번에 해당하는 서비스 해줘

 

  • 4번 : Print
  • 10번 : Program Exit

syscall로 해당 서비스 실행

 

'학부과정 > 컴퓨터 구조' 카테고리의 다른 글

MIPS_info  (0) 2022.12.21
컴퓨터 구조  (0) 2022.10.11

Assembly Language
: 사람이 이해하기 쉬운 언어

Machine Language
: 기계가 이해하기 쉬운 언어
어셈블리 언어를 01로 바꾼 것에 불과하다(그래야 Cpu, 하드웨어가 이해하기 때문)

 

Architecture(아키텍쳐) : 명령어들의 집합
어떤 명령어를 지원하는가

MicroArchitectur : 컴퓨터 내부구조

과거에도 지금에도, 아키텍쳐는 대부분 그대로였다. 하지만 마이크로아키텍쳐는 다르다.
시간이 지나면서 CPU 구조가 더 빠르게, 더 전력소모가 적게 발전했기 때문에 마이크로 아키텍쳐는 계속 발전했다

아키텍쳐가 바뀌지 않는 이유
: 호환성 때문, 아키텍쳐가 바뀌면 과거 프로그램들이 호환이 안되기 때문

 

아키텍쳐 : 프로그래머가 보는 관점
CPU가 얼마나 좋든 나쁘든 우리는 CPU를 조정하는 명령어에 관심있다

 

마이크로아키텍쳐
: 어떻게 이 명령어들을 실제로 구현할 것 인가

 

(instruction)명령어란?
: 컴퓨터에 있어서 하나의 언어

(Instruction set)
명령어 집합이란?
:
그런 언어들의 집합, 단어모음(vocabulary)

 

  • 명령어는 수행할 명령어와 사용할 데이터를 나타낸다
  • 어셈블리 언어 : 사람이 읽을 수 있는 명령어 포맷/형식
  • 기계어 : 기계가 읽을 수 있는 명령어 포맷/형식
 

'학부과정 > 컴퓨터 구조' 카테고리의 다른 글

MIPS_info  (0) 2022.12.21
MIPS assembly code  (0) 2022.12.21

+ Recent posts