Computer Science/Mano-CPU

Mano-CPU sort 하기

ddiyoung 2021. 10. 29. 06:44

Mano-CPU 같은 경우에는 스택창이 존재하지 않는다.

그래서 여러 정렬 알고리즘 중에서 재귀적으로 호출하여 스택창을 사용해야 하는 그런 정렬알고리즘은 사용하지 않는게 좋다

최대한 간단한 알고리즘을 선택했다.

버블 정렬 알고리즘, 실행속도에 대해서는 나쁜편이지만, C언어를 처음 배우기 시작할때 가장 먼저 접하는 정렬 알고리즘인 거 같다.

단순하게 for문 두번을 돌면 된다. 즉  Mano-CPU 도 반복문 2번 구현해준 다음 조건문 한번 구현해주면 된다는 의미다. 그런데 Mano-CPU는 변수도 마음대로 선언하기가 쉽지 않다.

진짜 개같다 Mano-CPU ㅆㅂ

암튼 각설하고 코드부터 공개하겠다. 버블소트라서 그런지 쥰내게 느리다.

	ORG 0	/Origin of program is HEX 0
	LDA NUMB /Load Numb
	CMA /2's complement Numb
	INC 
	INC / For Bubble Sort Loop
	STA NBR1 /Store NBR1
LOP1,	LDA NBR1
	STA NBR2 /Store NBR2
	LDA PTR1 /Load PTR 1
	STA PTR2 /Store PTR2
	STA PTR3 /Store PTR3
LOP2,	ISZ PTR3 /PTR3 +1
	LDA PTR2 I /Load PTR2 Data
	STA TMP /Store TMP
	LDA PTR3 I /Load PTR3 Data
	CMA /2's complement PTR3 I
	INC
	ADD TMP
	SNA
	BUN CON	
	LDA PTR3 I /Load PTR3 Data Swap(PTR2, PTR3)
	STA PTR2 I /Store PTR2
	LDA TMP /Load TMP
	STA PTR3 I /Store PTR3	
CON,	ISZ PTR2
	ISZ NBR2
	BUN LOP2 /Go LOP2
	ISZ NBR1
	BUN LOP1 /Go LOP1
	HLT

TMP,	hex 0
NBR1,	hex 0
NBR2,	hex 0
PTR1,	hex 41
PTR2,	hex 0
PTR3,	hex 0

ORG	40
NUMB,	dec 10
	/ Tets Data 2
DATA,	hex 1234
	hex 2101
	hex 7000
	hex 4000
	hex 7569
	hex 6311
	hex 1D20
	hex 7821
	hex 2097
	hex 76FB

마노는 달팽이다