저는 어셈블러 디자인 필드에서 초보자입니다. 나는 기계를 위해 내 자신의 어셈블러를 설계하고있다. 현재, 내 어셈블러는 첫 번째 토큰을 가져 와서 해당 객체 코드를 생성하려고 시도합니다. 이제 토큰을 니모닉 풀과 일치시킨 다음 해당 obj 코드를 생성해야합니다. 문제는 현재 if-else 구문을 사용하고 있습니다. 즉,파서에서 if-else 문이 많이 발생하지 않도록하는 방법
if(strcmp(mnemonic_read, "mov")==0)
// generate code for mov instr
else if(strcmp(mnemonic_read,"cmp")==0)
// generate code for cmp
if-else 문을 많이 사용하지 않고이 모든 작업을 수행 할 수 있습니까? mnemonic_read
문자열 변수를 통해 함수를 호출 할 수 있습니까?
왜 실제 파서를 사용하지 않습니까? 그렇다면이 문제는 처음에는 존재하지 않습니다. – harold
니모닉을 객체 코드로 변환하는 메타 어셈블러라는 도구가 있습니다. –