Форум программистов, компьютерный форум CyberForum.ru

Разбор строк ассемблерной программы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана строка. Удалить из строки все двойные символы. Пример: “asddewwf” → “asdewf” http://www.cyberforum.ru/cpp-beginners/thread910319.html
Дана строка. Удалить из строки все двойные символы. Пример: “asddewwf” → “asdewf”.
C++ Шаблоны проектирования (литература для изучения) подскажите литературу для изучения . спасибо. http://www.cyberforum.ru/cpp-beginners/thread910318.html
графика.переведите из паскаля в с++.пожалуйста C++
uses crt,graphABC; //функции для определения кординат точек эллипса function rot_x(x,y:integer;t:real):integer; begin rot_x:=round(x*cos(t)-y*sin(t)); end; function rot_y(x,y:integer;t:real):integer; begin
В словах заданной строки, имеющих нечетную длину, удалить среднюю букву C++
Ввести несколько строк, каждая из которых содержит некоторое количество слов. В словах заданной строки, имеющих нечетную длину, удалить среднюю букву.
C++ Сколько вы сможете проехать на 3 видах бензина? http://www.cyberforum.ru/cpp-beginners/thread910288.html
Ребята помогите пожалуйста ришыть задачу в Visual Studio а то я недавно поступил и вообще не понимаю пока что ЗАДАЧА розход бензина на 100км стоимость заправки 3 вида бензина и суму денег у вашем кошельке изходя сколько вы сможете проехать на 3 видах бензина.
C++ Перевести код с Pascal №1 var s1,s2,n: longint; f: integer; begin write('vvedite natural chislo '); readln(n); f:=0; for s1:=1 to n div 2 do подробнее

Показать сообщение отдельно
no SOPA
0 / 0 / 1
Регистрация: 20.02.2012
Сообщений: 41

Разбор строк ассемблерной программы - C++

23.06.2013, 21:22. Просмотров 297. Ответов 0
Метки (Все метки)

Вот код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
 
int main()
 {
 char buffer[256];
 char filename[20];
 printf("Input file name:");
 scanf("%s",filename);
 char comment[50] = "";
 char metka[50] = "";
 char oprd[10] = "";
 char oprt[10] = "";
 int count = 0;
 int i = 0;
 char *comm,*met,*opt,*opd; 
 FILE* file;    
 file = fopen(filename,"r");
/* Проверяем открылся ли файл*/
 if (file == NULL)
  {
  printf("Error: File not read");
  }
/* Чтение файла построчно */
 while (fgets(buffer,256,file))
  {
  count++;
  comm = met = opd = opt = buffer;
  printf("Stroka %i: %s",count,buffer);
/* Вывод комментария */
  while (*comm != '\n')
   {
   if (*comm == '/')
    {
    comm--;
    for (comm++;*comm != '\n';++comm)
     {
     comment[i] = *comm;
     *comm = '\0';
     i++;
     }
    i = 0;
    break;
    }
   comm++;
   }
/* Вывод метки */
  while (*met != '\n')
   {
   if (*met == '-')
    {
    for (met = buffer;*met != '-';++met)
     {
     if (*met == ';')
      {
      for (int j=0;j<sizeof(metka);j++)
       {
       metka[j] = '\0';
       }
      break;
      }
     metka[i] = *met;
     *met = '\0';
     i++;
     }
    i = 0;
    break;
    }
   met++;
   }
/* Вывод оператора */
  while (*opt != '\n')
   {
   if (isalpha(*opt))
    {
    while (isalpha(*opt))
     {
     oprt[i] = *opt;
     i++;
     opt++;
     }
    i=0;
    break;
    }
   opt++;
   }
/* Вывод операнда */
  opd = opt;
  while (*opd != '\n')
   {
   if (*opd != '\t' && *opd != ' ')
    {
    while (*opd != '\t' && *opd != ' ' && *opd != '\n')
     {
     oprd[i] = *opd;
     i++;
     opd++;
     }
    i=0;
    break;
    }
   opd++;
   }
  printf("Razbor stroki:  Metka:%s, Operator:%s, Operand:%s, Comment:%s \n",metka,oprt,oprd,comment+1);
  for (int j=0;j<sizeof(comment);j++)
   {
   comment[j] = '\0';
   }
  for (int j=0;j<sizeof(metka);j++)
   {
   metka[j] = '\0';
   }
  for (int j=0;j<sizeof(oprt);j++)
   {
   oprt[j] = '\0';
   }
  for (int j=0;j<sizeof(oprd);j++)
   {
   oprd[j] = '\0';
   }
  printf("\n");
  }
 getch();
 }
Вот ассемблерная программа для разбора:
Assembler
1
2
3
4
    START 1100
metka LDA 12      /comment1 
      LDB Z      /comment2
      END metka
Помогите пожалуйста исправить вывод метки, чтобы он распознавал её по расположению с первой позиции строки, т.е. чтобы программа понимала, что слово "metka" или любое другое, которое используется для метки, это и есть, собственно, метка.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru