Transcript SIC 어셈블러 발표
2007011126 손용석 SIC 어셈블러 발표 SIC 소스 환경 1-8 : Label 9 : Blank 10-15 : Operation code 16-17 : Blank 18-35 : Operand 36-66 : comment Pass 1 프로그램내의 모든 문에 주소를 배정. 패스 2에서 사용하기 위해 모든 레이블에 배 정된 주소 값들을 지정 어셈블러 지시자들에 관련된 처리를 부분적 으로 행함 Pass 1 Intfile Pass1 에서 생성 원시프로그램과 함께 배정된 주소, 오류 플 래그 등을 포함 패스2에서 입력으로 사용 Pass 2 명령어를 어셈블함 (연산자 코드를 번역하 고 주소를 조사함) BYTE, WORD 등으로 정의되는 데이터 값을 생성 패스 1동안에 이루어지지 않는 어셈블러 지 시자를 처리함 목적 프로그램과 어셈블러 리스트를 출력 Pass 2 Objfile 헤더 레코드 1 :H : 프로그램 이름 8-13 : 목적 프로그램의 시작주소 (16진수) 14-19 : 2-7 바이트로 표시된 목적 프로그램의 길이(16진수) Objfile 텍스트 레코드 1 :T 2-7 : 레코드에 포함될 목적코드 시작주소 (16진수) 8-9 : 바이트로 나타낸 이 레코드의 길이 (16진수) 10-69 : 16진수로 나타낸 목적코드 (목적 코드 1바이트 당 2개의 열) Objfile 1:E 2-7 : 목적 프로그램 중 첫 번째로 실행될 명령어의 주소(16진수 Objlist 원시프로그램에 목적코드가 포함된 형태 사용자들이 원활하게 목적 프로그램을 이해 할 수 있게 도움을 줌. 개발 시 주의사항 파스칼 소스를 분석 시 처음부터 따라가는 방식이 아니라 함수의 호출 순서를 따라서 구현을 하는 것이 훨씬 더 편리합니다. 한 번에 다 작성을 하는 것이 아니라 각 함수 를 정의하고 중간 중간에 컴파일을 하여 에 러를 잡는 것이 더욱 원활합니다. 개발 시 주의사항 Fopen, strcpy와 같은 특정 함수가 6.0 시절 에서는 사용이 가능하였으나 2008부터 안전 성에 문제가 있다고 판단 Fopen_s, strcpy_s로 사용할 것을 권함. 호환성의 문제로 인해 warning이 출력되나 크게 문제 될 사항은 아님. 감사합니다.