Подсчет частоты символов (гистограмма) в C ++ / сборка - PullRequest
0 голосов
/ 07 ноября 2019

Я новичок в ассемблере и могу использовать некоторую помощь. Я должен был создать программу, которая использует встроенную сборку (masm) и c ++, которая берет строку текста (до 127 символов) и вводит в буфер, а затем подсчитывает, сколько экземпляров каждого символа в тексте есть,

Например, если ваша строка "baby"

Тогда b-2, a-1, y-1

Единственное, что нужно сделать при сборке, это определитьсимвол и подсчет количества экземпляров буквы / цифры. Затем экземпляры каждого символа будут помещены в другой буфер. Все это будет сделано в функции CountData (). Все остальное может быть в с ++.

У меня пока есть функция для ввода текста и сохранения его в буфере, но мне все еще нужно написать функцию CountData (), которая (в ассемблере) читает всю строку и идентифицирует каждый символ, а затем сохраняетотслеживать, сколько из них есть. Однако я запутался, как получить доступ к строке на ассемблере. Могу ли я использовать цикл for и написать код ассемблера внутри него? Если да, будет ли ассемблерный код иметь доступ к переменным / данным функции? Я пытался искать примеры, но не могу найти что-нибудь подходящее. Не желая, чтобы моя домашняя работа была сделана для меня, просто хочу немного подтолкнуть в правильном направлении. Заранее благодарим за помощь.

class BaseClass
{
private:
     const int characterNumber = 127;
     cont int asciiNumber = 59;
     char InputBuffer[characterNumber];
     char CountBuffer[asciiNumber];
public:

     InputData()
     {
          string sentence;
          cout << "Enter a sentence to have its characters counted: " << endl;
          cin.getline(InputBuffer, characterNumber);
     }

     CountData()
     {

     }


};

1 Ответ

0 голосов
/ 07 ноября 2019

Полагаю, это можно считать обманом, но, как сказал old_timer в комментарии, напишите его на c ++, но затем дайте указание компилятору выдать сборку. С msvc переключатель / Fa, и вы, вероятно, захотите включить / Od, чтобы отключить оптимизацию, чтобы он не был таким загадочным.

Как только вы увидите, как это делает компилятор, у вас будет лучшее представление о том, какВы можете пойти на это.

...