[시스템소프트웨어] SIC/XE Assembler Loader, SIC/XE 어셈블러, 로더
- 최초 등록일
- 2008.04.09
- 최종 저작일
- 2007.11
- 20페이지/ 압축파일
- 가격 3,000원
소개글
SIC/XE 어셈블러와 로더 입니다. 소스파일 실행파일 입출력파일 보고서 전체 포함 입니ㅏㄷ.
시스템 소프트웨어 혹은 시스템 프로그래밍 과제로 쓰입니다.
C++로 작성했습니다.
목차
1. 제작과정
2. 입력형식
3. 출력형식
4. 작동 원리
5. 구현 설명
본문내용
1. 제작과정
이전 과제였던 Assembler는, 이해 자체가 상당히 난해 했지만, object파일이라는 결과를 만들라는 점에서, 목표가 뚜렷했다고 생각합니다. 그런데 이번 Linking Loader는 목표가 도대체 무엇인지 알 수 없었습니다. 재배치나, 상호참조, 적재 이런 것을 이해하는 것은 Assembler에 비하면 아주 쉽게 수업 설명만으로도 충분 했습니다. 그런데 문제는 어떻게 O/S에서 메모리 주소를 받아오는지, 어떻게 메모리에 적재를 해야 하는지, 또 메모리에 적재된 내용이 어떻게 알 수 있는지에 대한 것이 너무 알기 힘들었습니다.
C++에서 변수를 선언하면, 그 변수에 대한 주소가 할당 되니까, 이것을 말하는 것이라고 일단 생각 했는데, 그 주소를 확인하니 32bit 크기로 나왔습니다. 아무리 여러 차례 돌려도 32bit 주소들만 나왔는데 왜 그런지 알아보니 현재의 컴퓨터들이 모두 32bit로 메모리 주소를 지정하기 때문 이였습니다. 문제는 SIC/XE는 1MB의 메모리 크기를 가지고, 이것은 2^20, 즉 20bit까지 표현이 가능한데 어떻게 32bit단위의 메모리를 O/S에서 받아와서, 로더에 적용시키는 것 이였습니다.
그리고 또 한 가지 문제점은, 메모리상에 실제 내용이 들어가 있는지 아닌지 확인해 봐야 하는데, 제가 임의의 변수에 데이터를 넣고 실행을 해본 다음에, 메모리에 내용을 확인해보니 전혀 상관없는 값이 있었습니다.
참고 자료
없음
압축파일 내 파일목록
load.cpp
load.dsp
load.dsw
load.ncb
load.opt
load.plg
t1.asm
t1.obj
t2.asm
t2.obj
t3.asm
t3.obj
t4.asm
t4.obj
term1.cpp
term1.cpp.bak
term1.dsp
term1.dsw
term1.hwp
term1.ncb
term1.opt
term1.plg
term2.hwp
Debug/load.exe
Debug/load.ilk
Debug/load.obj
Debug/load.pch
Debug/load.pdb
Debug/t1.asm
Debug/t1.obj
Debug/t2.asm
Debug/t2.obj
Debug/t3.asm
Debug/t3.obj
Debug/t4.asm
Debug/t4.exe
Debug/t4.obj
Debug/term1.exe
Debug/term1.ilk
Debug/term1.obj
Debug/term1.pch
Debug/term1.pdb
Debug/test.obj
Debug/vc60.idb
Debug/vc60.pdb