此混合模式c ++ / Assembly项目在正确的方向需要一点帮助

问题描述 投票:0回答:1

我是汇编语言的新手,可以使用一些帮助。我应该创建一个使用内联汇编(masm)和c ++的程序,该程序将文本字符串(最多127个字符)输入到缓冲区中,然后计算文本中每个字符有多少个实例。

例如如果您的字符串是“ baby”

然后b-2,a-1,y-1

组装时唯一需要做的就是识别字符并计算字母/数字的实例个数。然后,每个字符的实例将放入另一个缓冲区。所有这些将在名为CountData()的函数中完成。其他所有内容都可以用c ++编写。

到目前为止,我具有输入文本并将其存储在缓冲区中的功能,但是我仍然需要编写一个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()
     {

     }


};
c++ assembly ascii masm mixed-mode
1个回答
0
投票

我想这可能被认为是作弊,但是就像old_timer在评论中说的那样,用c ++编写它,然后指示编译器发出汇编。使用msvc时,开关为/ Fa,您可能希望包含/ Od以禁用优化,因此并不是那么不可思议。

一旦您看到了编译器是如何完成的,您将更好地了解如何进行编译。

© www.soinside.com 2019 - 2024. All rights reserved.