Open hyewoncc opened 4 months ago
혜원: 자바 컴파일 코드 뜯어보는 사람이랑 어셈블리어 배우는 사람은 변태같은 느낌.. 둘 다 이상하다. 어셈블리어는 이상한 사람들이 배우는건줄 알았다. 어셈블리어가 뭔지 이제 알았다.
도저히 책이 이해가 안가서 오래 읽었다.
Figure 4.3의 코드 이해가 안 된다.
명재: A register가 M=D
코드에 메모리 주소로서 사용되는 것 같다. 어셈블리에 나타나진 않지만 A 레지스터의 역할이 숨어있음.
혜원: 루프 도는것도 모르겠다. Figure 4.4.
R0의 정체를 알고 나니까 이해했다.
혜원: 프로그램을 종료하는데 무한루프를 돌으라고?? 납득이 안되는데.
3장은 좀 어렵다 생각했는데 4장은 많이 어렵다. 내가 몇%를 이해했는지도 파악하지 못하겠다.
명재: 운영체제가 무한루프 도는 프로그램을 종료하게 하는 식으로 작동하게 될 것 같은데?
덕수: 7번정도 읽으면 이해가 될거다. 혜원: 수행이 부족했군
4.1.2 언어
어셈블리어 그냥 소수의 변태들이 배우는 그것. 으로만 알고 있었는데 이런 거였구나 했어 ㅋㅋ
4.2 핵 기계어 (4.2.1 배경 - 주소 지정 )
이 말이 처음에 전혀 이해가 안갔는데... 그림 4.3를 보고 추측만 했어. 내 이해가 맞는지 모르겠네.
메모리 접근 예제에서 A에 17이라는 값을 설정하고, D에 이 값을 넣잖아. 이게 '선택된 데이터 메모리 레지스터를 조작했다' 는 건가?
선택된 명령어로 무언가를 한다는 것은 이해 못함 ㅠ
4.2 핵 기계어의 그림 4.4
의사코드에서
if (i > R0) goto STOP
이면 시작하자마자 STOP이 될 것 같은데, 어떻게 루프를 도는 것인지...4.3 핵 프로그래밍
책에서도 다음 장에서 자세히 설명한다고 말하긴 하지만, 프로그램을 종료하려면 무한 루프를 넣으라니 내 세계관에선 성립하기 어려운 개념이다... 위에 코드를 읽어도, 그럼 @END 와 JMP 사이를 무한히 돌아서 종료가 안되는 거 아닌가? 하는 생각이..
갑자기 난이도가 확 뛴 것 같아서 큰일났다 싶네요 ~~