Я пытаюсь создать симулятор набора инструкций, который читает сборку и выполняет требуемое действие. Каждая строка состоит из [address] [инструкция] [input1] и, возможно, также [input2]
Файл, который я читаю, выглядит так:
10 MOV R1, 1
11 MOV R2, 10
12 MOV R3, 101
13 ST [R3], R1
14 ADD R1, 1
15 ADD R3, 1
16 CMP R1, R2
17 JE 19
18 JMP 13
19 MOV R2, 5
20 MOV R4, 0
21 MOV R3, 109
22 MOV R1, -1
23 LD R5, [R3]
24 ADD R3, R1
25 ADD R4, 1
26 CMP R4, R2
27 JE 29
28 JMP 23
29 MOV R3, 120
30 ST [R3], R5
и сейчас я пытаясь разобрать каждую строку с помощью fscanf:
char* buf[100];
while (fscanf(fptr,"%*s %3s %*s %*s ",buf)==1)
printf("%s\n", buf);
Вывод, который я получаю, таков:
MOV
MOV
ST
ADD
ADD
CMP
JE
13
5
0
109
-1
[R3
R3,
R4,
R4,
29
29
30
Может кто-нибудь объяснить, что происходит, и предложить способ захвата каждой части инструкция?
Спасибо!