Ми треба некој кој знае да го напише кодот на проектов. Во датотеката се објаснети инструкциите. Нормално плаќам за трудот.
Да се направи програма за интерпретација на едно поедноставно инструкциско множество. Инструкциското множество се состои од следните инструкции: MVI, MOV, AND, OR, NOT, LESS, LEQ, GRE, GEQ, JMP, PRN, SUM, SUB, PRB, SL и SR, кои се објаснети во овој документ. Ваша задача е да направите програма во која на влез доаѓа бинарна репрезентација на низа од инструкции, а на излез треба да го испечати соодветниот резултат (се разбира, по извршувањето на инструкциите). На влез може да ги очекувате сите инструкции освен SUM и SUB кои не треба да ги имплементирате. Не треба да се прави конверзија од бинарен во било кој друг броен систем освен во инструкцијата PRB и во моментот кога треба да ја пронајдете линијата која што треба следно да се извршува при исполнет услов (GRE, GEQ, LESS, LEQ, JMP), но споредбата на броевите во условот и понатаму треба да се прави врз бинарната репрезентација. Сите податоци се претставени во SM бинарен броен систем. На располагање се осум 16-битни регистри кои се нумерирани од 0 до 7.
#include<stdio.h>
#define MAX 1000
char registers[8][16];
void MVI(int reg, char *value) {
// vasiot kod ovde
}
void MOV(int reg1, int reg2) {
// vasiot kod ovde
}
void AND(int reg1, int reg2, int reg3) {
// vasiot kod ovde
}
void OR(int reg1, int reg2, int reg3) {
// vasiot kod ovde
}
void NOT(int reg1, int reg2) {
// vasiot kod ovde
}
void PRN(int reg) {
// vasiot kod ovde
}
void PRB(int reg1, int reg2) {
// vasiot kod ovde
}
void SL(int reg) {
// vasiot kod ovde
}
void SR(int reg) {
// vasiot kod ovde
}
int main() {
int i,j,k;
int N = 0; // number of lines in the input
char c;
char lines[MAX][16];
while (1) {
scanf("%c", &c);
if (c == '\n') {
break;
}
lines[N][0] = c;
for (i=1;i<16;i++) {
scanf("%c", &lines[N]);
}
N++;
scanf("%c", &c);
}
for (i = 0; i < 8; i++) {
for (j = 0; j < 16; j++) {
registers[j] = '0';
}
}
// vasiot kod ovde
return 0;
}
Да се направи програма за интерпретација на едно поедноставно инструкциско множество. Инструкциското множество се состои од следните инструкции: MVI, MOV, AND, OR, NOT, LESS, LEQ, GRE, GEQ, JMP, PRN, SUM, SUB, PRB, SL и SR, кои се објаснети во овој документ. Ваша задача е да направите програма во која на влез доаѓа бинарна репрезентација на низа од инструкции, а на излез треба да го испечати соодветниот резултат (се разбира, по извршувањето на инструкциите). На влез може да ги очекувате сите инструкции освен SUM и SUB кои не треба да ги имплементирате. Не треба да се прави конверзија од бинарен во било кој друг броен систем освен во инструкцијата PRB и во моментот кога треба да ја пронајдете линијата која што треба следно да се извршува при исполнет услов (GRE, GEQ, LESS, LEQ, JMP), но споредбата на броевите во условот и понатаму треба да се прави врз бинарната репрезентација. Сите податоци се претставени во SM бинарен броен систем. На располагање се осум 16-битни регистри кои се нумерирани од 0 до 7.
#include<stdio.h>
#define MAX 1000
char registers[8][16];
void MVI(int reg, char *value) {
// vasiot kod ovde
}
void MOV(int reg1, int reg2) {
// vasiot kod ovde
}
void AND(int reg1, int reg2, int reg3) {
// vasiot kod ovde
}
void OR(int reg1, int reg2, int reg3) {
// vasiot kod ovde
}
void NOT(int reg1, int reg2) {
// vasiot kod ovde
}
void PRN(int reg) {
// vasiot kod ovde
}
void PRB(int reg1, int reg2) {
// vasiot kod ovde
}
void SL(int reg) {
// vasiot kod ovde
}
void SR(int reg) {
// vasiot kod ovde
}
int main() {
int i,j,k;
int N = 0; // number of lines in the input
char c;
char lines[MAX][16];
while (1) {
scanf("%c", &c);
if (c == '\n') {
break;
}
lines[N][0] = c;
for (i=1;i<16;i++) {
scanf("%c", &lines[N]);
}
N++;
scanf("%c", &c);
}
for (i = 0; i < 8; i++) {
for (j = 0; j < 16; j++) {
registers[j] = '0';
}
}
// vasiot kod ovde
return 0;
}
Attachments
Последно уредено: