개요
CSM은 Low-Level 언어이다.
CSM에서는 코드 내 기호는 모두 대문자 로마자로 작성되고 확장자는 '*.cm'으로 저장되며 실행파일(타겟파일)은 '*.s'로 저장된다.
언어 | 명칭+ |
---|---|
çivùque spika matikakomkos | |
aitovi lan bioxi | |
![]() |
개발언어식 |
![]() |
Development language expression |
roqkfdjsdjtlr | |
kr;fwjtsjtndx |
기호
기호 | 의미 | 사용 |
---|---|---|
MSP | 프로그램 시작점 | MSP: |
MSE | 프로그램 종료점 | :MSE |
SET | 메모리 값 설정 | SET [메모리 타입&크기]:[명칭] > [값] |
T | 비트 | T[값][3] |
O | 8진수 | O[값] |
X | 16진수 | X[값] |
S | 문자열 | S[문자길이] |
B | 바이트 | B[크기] |
MOV | 메모리 주소로 이동 | MOV [명칭] |
NOM | 현재 메모리의 주소 | NOM |
OPN | 메모리의 값 가져오기 | OPN [메모리 타입&크기]:[메모리 주소] |
TMV[4] | 메모리의 값 가져오기 | TMV [명칭] |
VSH | 현재 값 출력[5] | VSH |
CLM | 열려있는 메모리 닫기 | CLM |
ADD | 값 더하기 | ADD [명칭]:[값] |
SUB | 값 빼기 | SUB [명칭]:[값] |
BML | 왼쪽 비트쉬프트 | BML [명칭]:[이동 할 비트 수] |
BMR | 오른쪽 비트쉬프트 | BMR [명칭]:[이동 할 비트 수] |
구조
메모리 접근과 값 가져오기
- 방법 1
메모리에 값 설정하기 [SET] 메모리 주소로 이동하기 [MOV] 현재 메모리의 값 가져오기 [OPN] 메모리 접근 종료 [CLM]
- 방법 2
메모리에 값 설정하기 [SET] 메모리의 값 가져오기 [TMV] 메모리 접근 종료 [CLM]
예시
- Hello, World! 출력 예시 1
MSP: SET S16:exam > Hello, World! MOV exam OPN S16:NOM VSH CLM :MEP
- Hello, World! 출력 예시 2
MSP: SET S16:exam > Hello, World! TMV exam[6] VSH CLM :MEP
- ↑ 2025년 2월 22일 23시 26분 07초 기준. 미디어위키 표현식의 한계에 의해서 이 값은 정확하게 나타나기 힘들다. 정확한 값을 얻기 위해서는 사트/표준#Python 구현에서 설명하는 방법을 통하는 것이 바람직하다.
- ↑ 디스코드 서버에는 차단된 사람이 아니라면 누구나 들어올 수 있습니다.
- ↑ 0 또는 1
- ↑ MOV와 OPN을 합친 기호이다.
큰 기능의 차이는 없지만, 메모리 크기에 대한 정보를 직접적으로 주지않기 때문에 오류가 발생할 수 있다. - ↑ 최근에 접근 된 값을 보여준다. MOV를 사용하였다면 메모리 주소를 보여주고 OPN을 사용하였다면 OPN에서 가져온 값을 보여준다.
- ↑ 예시 1과 다르게 TMV는 MOV와 OPN의 기능을 합친 것과 비슷하기 때문에 사실상 완전 코드라고 봐도 무방하다.