assembly - 组装中的堆栈以及如何有效地使用它们
问题描述
我有这个消息:
msg: .ascii "March was an awkward month"
我需要在每个blank space
. 例如,最终结果应该是:
month awkward an was March
我正在使用虚拟机(Oracle VM VirtualBox),我需要使用堆栈来完成这项工作。我几乎到处寻找信息,包括教授给我的幻灯片。但我仍然无法弄清楚它们是如何工作的,或者如何适用于这种情况。非常感谢一些帮助。
解决方案
有“堆栈”(通用数据结构,FILO 缓冲区),而对于汇编语言,有“堆栈”(用于跟踪调用和返回的堆栈,通常在 CPU 的帮助下以 PUSH/POP 指令的形式和特殊的“堆栈指针”寄存器)。
您可以单独使用“堆栈”来解决此问题。具体来说; 您将有一个递归函数搜索下一个单词的开头,然后(如果找到下一个单词)使用指向字符串其余部分的指针(从下一个单词开始)调用自身,然后单独打印第一个单词.
我需要使用堆栈
这是您的教授/讲师使用的措辞吗?如果他们说“堆栈”(复数,意思是不止一个堆栈),那就没有意义了。如果他们说“您需要使用堆栈”,请参阅我上面的评论。
如果他们说“您需要实现自己的堆栈数据结构并使用它”,那么它就会变得相似,但是用循环和显式推送/弹出替换递归。具体来说; “而未到达字符串结尾{查找下一个单词的开头;推送第一个单词的开头和长度};” 然后“当堆栈不为空{弹出开始和单词长度;打印单词;}”)。
推荐阅读
- python - 当我从终端运行项目时,Python Flask 看不到我的“SSL 上下文”
- github-actions - 将秘密传递给可重用工作流时出错
- android - 文本输入焦点上的 iOS 键盘故障(React-Native 和 Expo)
- php - codeigniter3 - 不能使用标量作为数组警告
- javascript - 使用 jspdf-html2canvas css 导出 pdf 在 iphone 设备中无法正常工作。在android设备上工作正常
- c++ - c++编译的文件在其他电脑上不起作用
- reactjs - 重新绘制 PolarGrid 多边形未显示
- database - 使用 Spark 进行 Mongodb 聚合
- vue.js - Vue 中的反应式 Dexie-Query
- flutter - Flutter Drawer 小部件图标颜色和大小