검색어 입력폼

마이크로 프로세서 Assembler 제작

등록일 2005.01.01 한글파일한컴오피스 (hwp) | 10페이지 | 가격 2,000원

소개글

마이크로 프로세서 과목에서 다루는 Assembler 제작 소스코드입니다. Fist Pass와 Second Pass 과정을 통해 어셈블리 언어를 기계어로 바꿔주는 프로그램입니다. 모리스 마노의 컴퓨터시스템구조 책을 참고하시면 정확한 동작을 알 수 있습니다. 텀프로젝트에 참고하세요.

컴파일 실행환경

Visual C++ 6.0
1.5G 노트북

본문내용

#include<iostream>
#include<cmath>
using namespace std;

int i=0,j=0,k=0,l=0,m=0,n=0,LC=0,num;
char symbol[100][20];
int binary[100][16], flag[100];
char label[10][3], intnum[10];
int lc[100], label_lc[10];
char inteager[10];
void firstpass();
void secondpass();
int char_to_int(char *a);
int char_hex_to_int(char *a);
void int_to_hex(int *bin,int nu);
int hex_to_int(int a);
void nonmri(int *a,char *b);
main(){
cout<<"Enter the Assembly code\n";
while(symbol[i-1][0]!='E'||symbol[i-1][1]!='N'||symbol[i-1][2]!='D'){
cin.getline(symbol[i],20);
i++;
}
firstpass();
secondpass();
}

void firstpass(){
for(j=0;j<i;j++){
lc[j]=LC;
flag[j]=0;
if(symbol[j][3]==','){
label[k][0]=symbol[j][0];
label[k][1]=symbol[j][1];
label[k][2]=symbol[j][2];
label_lc[k]=lc[j];
k++;
LC++;
}
else if(symbol[j][0]=='O'&&symbol[j][1]=='R'&&symbol[j][2]=='G'){
n=0;
while(symbol[j][n+4]!=NULL){
intnum[n]=symbol[j][n+4];
n++;
}
intnum[n]=NULL;
n=0;
LC = char_to_int(intnum);
}
else if(symbol[j][0]=='E'&&symbol[j][1]=='N'&&symbol[j][2]=='D'){
break;
}
else{
LC++;
}
}
}
다운로드 맨위로