我有一个项目需要我们作为程序员,将一行汇编语言翻译成机器语言并计算小数。我们有自己的带有操作码的示例计算机,以使其更易于计算。我的问题是以下功能是否符合我的目标。
在主函数中,我有一个标记为 char binary[3] 的字符数组,因为返回的值将是三位。此外,函数中有一个字符操作码[MAXLINELENGTH],它从文件中正确读取操作码行,因此我在函数中用 *string 指向它。这会正确找到匹配项并用正确的 3 位代码填充 main 中的二进制数组吗?
//function should return true if the proper binary output was successfuly copied with the matching opcode
int opcodeBinary(char *string,char *binary){
if(strncmp(*string,"add"){
*binary="000";
return 1;
}
else if(strncmp(*string,"nand"){
*binary="001";
return 1;
}
else if(strncmp(*string,"lw"){
*binary="010";
return 1;
}
else if(strncmp(*string,"sw"){
*binary="011";
return 1;
}
else if(strncmp(*string,"beq"){
*binary="100";
return 1;
}
else if(strncmp(*string,"jalr"){
*binary="101";
return 1;
}
else if(strncmp(*string,"halt"){
*binary="110";
return 1;
}
else if(strncmp(*string,"noop"){
*binary="111";
return 1;
}
else{
return 0;
}
}