Page 63 - 컴퓨터구조(프로그래밍 관점에서 바라보는)도서 미리보기
P. 63

275CHAPTER 7? 기계어 프로그래밍을 통한 컴퓨터 구조 이해

이제 전반적인 설명이 끝났다. 실전으로 넘어가자. 지금부터는 화면에 ‘Hi’            기계어 코드를 입력할 때
라는 메시지를 출력하는 기계어 프로그램을 작성할 것이다.                       몇가지 주의해야 하는 사
                                                      항이 있다. 기계어 문법과
   1.	 가상 머신 화면 좌측의 [object code] 부분에 아래의 기계어 프로그     는 상관없이, 지금 사용하
       램을 입력해보자. 구체적인 설명은 뒤에서 하기로 하고, 일단 기계어          는 가상 머신의 편집기에
       프로그램을 작성하고 실행해보자. 기계어는 실제로는 2진수로 프로            따른 사항인데…
       그램을 작성하지만, 입력할 때 편의를 위해서 2진수로 작성한 후 이
       를 16진수로 변환하여 입력한다.                             yy16진수 두 글자(즉, 한
                                                        바이트) 뒤에는 꼭 1칸만
                                            50 00 48    띄어야한다.
                                            50 00 69
                                            00        yy모든 줄의 끝에는 빈 칸
                                            zz          이 들어가면 안된다.

   2.	 코딩을 마친 후, [Build] 메뉴에서 [Load] 메뉴를 선택하자.        yy그리고 마지막은 꼭 zz를
                                                        입력해야한다.

                                                      이런 사항은, Pep/8 가
                                                      상 머신의 프로그램 로더
                                                      (loader)가 안정적이지 않
                                                      기 때문이다(프로그램 로
                                                      더는 운영 체제의 일부분으
                                                      로써 실행할 프로그램을 메
                                                      인 메모리로 올려주는 역할
                                                      을 하는 프로그램이다).

Load 명령 메뉴                                            숫자 48은 16진수로 문자
                                                      ‘H’를 위한 ASCII 값.
                                                      다음 줄의 숫자 69는 16
                                                      진수로 문자 ‘i’을 위한
                                                      ASCII 값.

                                                      Load 메뉴는 작성한 프로
                                                      그램을 가상 머신의 메인
                                                      메모리로 불러들이는 명
                                                      령어. 즉 운영 체제의 로더
                                                      (loader)를 수행하라는 명
                                                      령이다.

3.	 로드가 성공되면, 화면의 좌측 하단에 아래와 같이 “Load                 로드 과정에서의 실패 이
    succeeded”라고 출력된다. 그렇지 않으면 ‘Load failed”라고 출력되    유로는 많은 경우에 프로
    는데, 오타나 빈 칸의 개수 등과 관련된 문제일 가능성이 많다. 또한            그램의 끝에 zz를 입력하
    화면 가장 오른쪽의 [Memory Dump] 부분도 0000(16) 번지부터 위의     지 않아서 로드가 되지 않
    프로그램이 메인 메모리에 로드된 것을 확인할 수 있다.                    는 경우가 있다. 또한 각 줄
                                                      의 끝에 빈칸이 있는 경우
                                                      도 잘 체크하자.
   58   59   60   61   62   63   64   65   66   67   68