컴공 일기205
게시글 주소: https://orbi.kr/00059933475
어셈블리어 과제 해결. 약 9시간 걸리지 않았나 한다. 컴파일러가 알아서 처리하던 흐름과 분기를 직접적으로 따져가면서 코드를 짰기 때문에. 그 과정에서 말도 안 되는 실수도 범했고, 빙빙 돌아간 감각도 없지 않아 있지만, 무엇보다 재미있었다. 9시간 동안 공을 들여서, 성과와 성취를 만들어 낸다는 것. 내가 코딩과 컴공, 그리고 공학을 사랑하는 가장 원초적인 이유일 게다.
1. 100이하의 자연수 내, 12개의 난수(RandomNumber) 생성.
2. 3 by 4 Matrix에 해당 난수값 저장.
3. 이중반복문을 토대로, 12개의 값들 중 최댓값 특정.
4. 최댓값을 printf 함수로 출력.
걸핏보면, 상당히 간단한 과정이다. C언어로 짜봐도, 파이썬으로 짜봐도.. 길어봐야 50라인을 넘기지 못하겠지.
그런데, 이 4가지의 절차를 어셈블리어로 표기한다면 시간이 생각보다 많이 걸린다. 교수께서 subroutine을 요구하셨기 때문에 매개변수에 대한 부분, 함수 호출 부분, 그리고 분기 제어 부분이 문제가 된다는 것이다.
이 모든 것은 원래 "컴파일러가 알아서 잘 처리"해주지만, 어셈블리는 그런 것 없다. 그냥 맨땅에, 내 손으로 하드웨어에 명령하는 수밖에 없는 것이다.
num_s = -48
.text
.global main
main: save %sp, -152, %sp
ba outer_test
mov 0, %l0
inner:
call rand
nop
mov %o0, %l2
mov %l2, %o0
mov 100, %o1
call .urem
nop
mov %o0, %l2
sll %l0, 2, %o0
add %o0, %l1, %o0
sll %o0, 2, %o0
add %fp, %o0, %o0
st %l2, [%o0 + num_s]
ld [%o0 + num_s], %l3
set str, %o0
mov %l3, %o1
call printf
nop
inner_inc : add %l1, 1, %l1
inner_test :
cmp %l1, 4
bl inner
nop
outer_inc :
add %l0, 1, %l0
outer_test :
cmp %l0, 3
bl,a inner_test
mov 0, %l1
nop
add %fp, num_s, %o0
call max
nop
mov %o0, %o1
set str2, %o0
call printf
nop
max :
save %sp, -152, %sp
mov 12, %l2
ld [%i0], %l1 ! min : %l1 초기화
ba fortest
mov 1, %l0
for :
sll %l0, 2, %o0
add %i0, %o0, %o0
ld [%o0], %o0
cmp %o0, %l1
ble keep
nop
mov %o0, %l1
keep: add %l0, 1, %l0
fortest:
cmp %l0, %l2
bl for
nop
mov %l1, %i0
ret
restore
.data
str: .asciz "value = %d\n"
str2: .asciz "maximum = %d\n"
.align 8
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
안자는분 0
안뇽
-
언미사탐 레쓰고 0
지1 해설강의 정주행 하고왔는데 역시 한 6~7개월 손 놓은거 해보려니 안대네 하던거 합시다~~
-
작년에는 국수영탐탐으로 탐구 각각으로 인정해줬는데 올해는 탐구 두과목...
-
원래 물지였는데 물리가 너무.. 안 나오고 올릴 자신도 없어서 사탐런을 해야될 것...
-
근거는... 어짜피 한번쯤 다들 생각해봤을테니 굳이 나열 안 해도 될 거 같구요...
-
7시 기상 도전 0
실패시 이글 바로 윗글에 만덕
-
45345 맞고 성적 맞춰서 대학교 갔는데 하고 싶은 전공도 아니고 수업도...
-
세개사야겠다
-
어캐 될라나..
-
2명 사는곳 월세 얼마정도임?개좋던데
-
진짜정병많네 1
수험생활의 스트레스때문이겠지
-
와 진짜 0
이게 ai가 아니라 사람이라고?
-
소름 ㄷㄷ
-
같이먹을사람을 구해야겠군...
-
날 찾아보려무나 0
네 누나
-
내가 터치하는 부분이랑 다른데가 계속 눌림
-
시간 개빨리가서 봤더니 딱 2배네
-
의대가님 요즘 정상적임... 호리병은 계속 같은말하고 반응이 없으니 재미없고...
-
준킬러 같은거 안풀려서 해설이나 강의 보면 이해돼서 혼자 빈 노트에 다시 풀어보고...
-
22수능 22232 학교다니다가 이번학기 끝나면 반수하려고농어촌 되고.. 21212...
-
음흉한 오리비 빠이
-
두찜먹고싶다 0
이만원만 쏴줄사람
-
유급인가
-
미적 4등급인데 뉴분감 하기 빡셀까요 ? 김성은쌤 무불개 기출100제 끝낸 상태입니다
-
다들자나 0
안자나
-
자야지
-
킬러문제 많이 풀면 킬러 되는건가..?
-
18학년도 수능 만점자 연세대 의대 최동욱님 인스타❤️ 7
너무 멋있으시다
-
고1 문제는 느낌표 유무만 알아도 풀리는데 고3 고전시가는 헷갈려...
-
ㅇㅈ 11
맨날 재탕하는데 사실 내가 사진찍기를 싫어함... 그래서 가족사진에도 난 대부분...
-
공부하는 학생도 좋은가요?? 강아지 산책할때 빼곤 크게 필요할까 싶긴한데 어때요??
-
뭐해 다들? 혼날래?
-
너 없이도 살 수 있지만 너로 인해 행복하다<<건강한 연애
-
ㅇㅈ이나 해바라 7
나 곧 잘건디 빨리 ㄱ
-
못생겨서 3
우럿서
-
윤성훈 개념이랑 도표m스킬 다들었는데 그다음 뭐하나요? 4
윤성훈 개념+도표스킬 완강했는데 마더텅 살려고하는데 빨더텅 검더텅 둘중 추천해주세요...
-
간호사들이 우렁차게 울었다. 이게 ㅈㄴ 웃기던데 뭔가 상상이 가서 더 ㅈ같음
-
원래다이럼? 어짜피 명지전문대 명지대랑 통합된다고하면서 명지전문대인 애가 대학말할때...
-
연하싶 7
울
-
걍 식당갔는데 식당 벽쪽에 아이패드 필요한사람 아무나 가져가세요 적혀있길래...
-
한국어였으면 외웠을텐데 일본어라 약간 암만 들어도 남일같은느낌
-
m4 13인치에 펜슬 프로 질러도 되겠죠?? 허락해주세요
-
저때 이후에 그 단톡 멤버들 (일부) 가끔씩 마주치는데 딱히 저를 대하는 태도변화가...
-
치대 약대는 연세대가 있는데 이번에 최저 없는 의대 수시 논술 생길일은 아예 없을까요?
-
무물 15
자기전 암거나 ㄱ (미리 말해놓지만, 연애 0 ㅅㅅ 0입니다. 질문하지 마쇼)
-
도형 노베 2
도형 노베 꼭 강의를 다 들어야 하나요?? 26강이나 돼서 고민됩니다 책만 풀어도 될까여..?
-
다군 고자가 나를 부르고 있음이야
-
인하대 사건하고 틀리게 빠져나갈 여지가 하나도 없습니다. 이 만점자 정신질환도 없는...
누나 멋져요
이분남자임ㅋㅋ
아?
ㅎㅎ 농담이에요! 칭찬해주셔서 감사드립니다 (__)
예... 수준이 높다기 보다는 '고전적'이라서 지금은 공부해야 할 필요가 전연 없는 그런 컨셉이기도 하지요. 누가 요새 SPARC을 쓴다고... ㅋㅋ
기계어로 코딩을 하는 것도 굉장히 좋은 경험이라고 생각합니다. 다만... 지금 쓰고 있는 언어는 너무 낡은 감각도 없지 않아서, 다른 언어로 교수님들도 빨리 바꾸고 싶다고 하는 상황입니다.
실전을 위한 이론은 사실 굉장히 중요하겠지만, 이론을 위한 이론은 말 그대로, '이론(異論)'일 뿐입니다.