读取和打印手臂组件中的字符串

2024-04-20

我正在使用 ARMSim,刚刚开始学习汇编,所以如果我看起来一无所知,请原谅我,但我正在尝试从输入文件中读取字符串,然后将其打印到输出屏幕。到目前为止我有:

.equ SWI_Open, 0x66 @open a file
.equ SWI_Close,0x68 @close a file
.equ SWI_PrChr,0x00 @ Write an ASCII char to Stdout
.equ SWI_PrStr, 0x69 @ Write a null-ending string 
.equ SWI_PrInt,0x6b @ Write an Integer
.equ SWI_RdInt,0x6c @ Read an Integer from a file
.equ Stdout, 1 @ Set output target to be Stdout
.equ SWI_Exit, 0x11 @ Stop execution
.equ SWI_RdStr, 0x6a @ Read string from file
.equ SWI_PrStg, 0x02 @print to Stdout
.global _start
.text
_start:

mov R0,#Stdout @print an initial message 
ldr R1, =Message1 @ load address of Message1 label
swi SWI_PrStr @ display message to Stdout


ldr R0,=InputName @ set Name for input file
mov R1,#0 @ mode is input
swi SWI_Open @ open file for input
bcs InFileError @ Check Carry-Bit (C): if= 1 then ERROR

RLoop:
ldr r0,=InputHandle @ load input file handle
ldr r0,[r0]
ldr R1,=CharArray
mov R2,#80
swi SWI_RdStr
bcs EofReached @ Check Carry-Bit (C): if= 1 then EOF reached

@ print the string to Stdout
mov R1,R0  @R1 = string to print
mov R0,#Stdout @ target is Stdout
swi SWI_PrStr
mov R0,#Stdout @ print new line
ldr R1, =NL
bal RLoop @ keep reading till end of file




EofReached:
mov R0, #Stdout @ print last message
ldr R1, =EndOfFileMsg
swi SWI_PrStr


  ldr R0, =InputHandle @ get address of file handle
  ldr R0, [R0] @ get value at address
  swi SWI_Close

Exit:
swi SWI_Exit @ stop executing 
InFileError:
  mov R0, #Stdout
  ldr R1, =FileOpenInpErrMsg
  swi SWI_PrStr 
  bal Exit @ give up, go to end


  .data
  .align
InputHandle: .skip 4
CharArray: .skip 80
InputName: .asciz "whatever.txt"
FileOpenInpErrMsg: .asciz "Failed to open input file \n"
EndOfFileMsg: .asciz "End of file reached\n"
ColonSpace: .asciz": "
NL: .asciz "\n_" @ new line 
Message1: .asciz "Reading String from udp.dat and printing out ASCII values. \n"
.end

到目前为止,当我运行它时,我可以很好地打印我的初始消息。问题是它没有读到文件末尾,并且我没有收到文件结束消息。任何指点都会很棒。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取和打印手臂组件中的字符串 的相关文章

  • 使用azure逻辑应用程序将消息作为字符串发送到azure服务总线

    我正在使用逻辑应用操作 发送消息 向服务总线主题发送消息 在控制台应用程序中读取它时 如果我这样做 SubscriptionClient subClient SubscriptionClient CreateFromConnectionSt
  • 在数据帧中的几行上提取具有匹配模式的 id

    这是我正在处理的数据框的示例 id string 1 no 1 yes 1 yes 2 no 2 yes 3 yes 3 yes 3 no 我想提取id为此最后两行包含字符串 yes 对于列string 所以结果是 id string 1
  • Python - 如何将双引号附加到字符串并存储为新字符串?

    我正在使用 Python 2 6 并且想将双引号附加到字符串并将其存储为新的字符串变量 我不想打印它 但稍后在我的 python 脚本中使用它 例如 a apple b some function a gt b would be equal
  • 一条指令可以同时处于两种寻址模式吗?

    我在书中读到了以下内容从头开始编程 处理器有多种不同的访问数据的方式 称为 寻址模式 最简单的模式是立即模式 其中 要访问的数据嵌入在指令本身中 例如 如果我们想将寄存器初始化为 0 而不是给出 计算机要从中读取 0 的地址 我们将指定立即
  • x86-64 上这个语句有什么问题?

    该函数的目的是获取堆栈的起始地址 unsigned long find start void asm movq rsp eax 当我编译它时 出现错误 Error suffix or operands invalid for movq mo
  • 遍历内存编辑每个字节

    我正在编写汇编代码 提示用户输入一串小写字符 然后输出包含所有大写字符的相同字符串 我的想法是迭代从特定地址开始的字节 并从每个字节中减去 20H 将小写变为大写 直到到达具有特定值的字节 我对 Assembly 相当缺乏经验 所以我不确定
  • 这段汇编语言代码是什么意思?

    我是一名学生 刚刚开始学习汇编语言 为了更好地理解它 我只是用 C 写了一个简短的代码并将其转换为汇编语言 奇怪的是我有点听不懂 代码是 include
  • 用于检索编辑距离接近的字符串的数据结构

    例如 从一组英语单词开始 是否有一种结构 算法允许使用单词 right 作为查询来快速检索诸如 light 和 tight 之类的字符串 即 我想检索与查询字符串编辑距离较小的字符串 The BK tree http blog notdot
  • 如何使用正则表达式提取子字符串

    我有一个字符串 其中有两个单引号 特点 单引号之间是我想要的数据 如何编写正则表达式从以下文本中提取 我想要的数据 mydata some string with the data i want inside 假设您想要单引号之间的部分 请
  • 如何让c代码执行hex机器代码?

    我想要一个简单的 C 方法能够在 Linux 64 位机器上运行十六进制字节码 这是我的 C 程序 char code x48 x31 xc0 include
  • 在 Ruby 中,如何生成一长串重复文本?

    在 ruby 中快速生成长字符串的最佳方法是什么 这有效 但速度非常慢 str length 100000 1 length each i str 0 我还注意到 创建一个适当长度的字符串 然后将其附加到现有字符串直至所需的长度 速度会更快
  • pandas - 将字符串转换为字符串列表[重复]

    这个问题在这里已经有答案了 我有这个 file csv 文件可以用 pandas 读取 Title Tags T1 Tag1 Tag2 T1 Tag1 Tag2 Tag3 T2 Tag3 Tag1 using df pd read csv
  • 在 C# 中追加到空字符串是如何工作的?

    我很惊讶地看到一个字符串被初始化为 null 然后在生产环境中附加一些内容的示例 只是闻起来不对劲 我确信它会抛出空对象异常 但这个大大简化的示例也有效 string sample null sample test sample equal
  • 了解 ctags 文件格式

    我使用 Exhuberant ctags 来索引我的 c 项目中的所有标签 c project 是 Cortex M7 微控制器的嵌入式软件 结果是一个标签文件 我正在尝试阅读该文件并理解所写的内容 根据我找到的 ctags 和 Exhub
  • 解析日期字符串

    我在 post 变量中有这个字符串 03 21 2011 我需要通过php解析它并将其转换成这种格式 2011 03 21 我正在使用 php 我需要这种格式 以便我可以运行此查询 SELECT prospect as Prospect c
  • 在 Java 中从字符串中提取第一个单词的最佳方法是什么?

    尝试编写一个简短的方法 以便我可以解析字符串并提取第一个单词 我一直在寻找最好的方法来做到这一点 我想我会用str split 但是我想从字符串中获取第一个单词 并将其保存在一个变量中 然后将其余的标记放入另一个变量中 有没有一种简洁的方法
  • 如何在汇编语言中换行打印多个字符串

    我试图在汇编中的不同行上打印多个字符串 但使用我的代码 它只打印最后一个字符串 我对汇编语言非常陌生 所以请耐心等待 section text global start start mov edx len mov edx len1 mov
  • 根据多个分隔符拆分字符串

    我试图通过引用根据多个分隔符分割字符串jquery中如何用多个字符串作为分隔符分割一个字符串 https stackoverflow com questions 13867182 how split a string in jquery w
  • 使用 Stringstream 将字符串转换为 Int

    这里有一个小问题 int IntegerTransformer transformFrom std string string stream gt clear std cout lt
  • 如何在 Python 中小写字符串?

    有没有办法将字符串转换为小写 Kilometers kilometers See How to change a string into uppercase https stackoverflow com questions 9257094

随机推荐

  • 使用随机数生成引擎

    我正在尝试使用兰德 字节 https www openssl org docs crypto rand htmlOpenSSL 的 API 但我想尝试使用各种随机数生成引擎 在 OpenSSL 中是否有推荐的生成随机字节并添加熵的方法 我在
  • 模型无法通过烧瓶迁移检测到

    我的烧瓶应用程序中有这棵树 api migrations model init py Persons py Comments py other classes py resources init py app py util py This
  • 如何更新实体?

    我之前有一个更详细的问题 但我没有答案 我将以更简单的方式提出同样的问题 I have an EF database with foreign key to another table 我想UPDATE an ENTITY 但我需要这样 我
  • 如何定期更新WebView中的HTML5位置(使用FINE_ACCURACY)

    我正在开发一个应用程序来跟踪我的手机定期 不仅是第一次 with navigator geolocation getCurrentPosition 运行在 HTML5 页面中 运行在 webkit webview 中 运行在 android
  • SpringFramework:预期有一个匹配的 bean,但发现了 2 个

    我正在构建一个使用 SpringFramework 从 MongoDB 读取数据的项目 其结构为存储库 and Service如下 Repository Interfaces I
  • 将安装文件打包为单个可执行安装程序

    我有一个用 C 编写的旧程序的旧设置 其中包含多个安装文件 SETUP 1 SETUP DLL INST32I EX ISDEL EXE SETUP EXE DISK1 ID SETUP INI SETUP INS SETUP LIB SE
  • UITableView 的本地化索引

    我正在尝试为我的 UITableView 使用本地化索引 就像 iPhone 的联系人应用程序一样 这是我返回字符数组的方法 NSArray sectionIndexTitlesForTableView UITableView tableV
  • 如何停止对辅助隐式加载 DLL 的 DLL 劫持

    例如 COMDLG32 DLL 隐式链接到以下系统 DLL 以及其他 xmllite dll dll srvcli dll wkscli dll 链接信息库 netutils dll 微星 dll 由于这些是由操作系统隐式加载的 而不是使用
  • 如何重定向 Visual Studio 调试器的输出?

    在 Visual Studio 2008 中 我可以指定命中断点时要打印的消息 通过右键单击断点并选择 命中时 当程序运行时 这些消息出现在输出窗口中 我想知道有什么办法可以将它们重定向到文件吗 指定 gt file txt作为程序的命令参
  • 休眠批量插入

    这是我在数据库中插入批次的代码 Override public void addMultiple session get session tx session beginTransaction for int i 0 i lt 100 i
  • 错误:ValueFactory 尝试访问此实例的 Value 属性

    Error 源文件 c Projects WaterfrontSeattle org src Orchard Logging OrchardLog4netLogger cs Line 63 来源错误 Line 61 Load the log
  • 升级到Numpy 1.8.2后,ImportError:无法导入名称多数组

    我刚刚使用 Anaconda 的 Spyder 在 64 位 Windows 机器上升级到 Numpy 1 8 2 我使用了命令 conda update numpy 它安装了它 在此之前我有numpy 1 7 1 并且我在另一个路径中也有
  • 帮助--LibSVM 的准确率达到 100%?

    名义上这是一个好问题 但我很确定这是因为发生了一些有趣的事情 作为上下文 我正在研究面部表情 识别空间中的一个问题 因此获得 100 的准确度似乎令人难以置信 并不是说在大多数应用程序中这是合理的 我猜测数据集中存在一些一致的偏差 这使得
  • 删除行以及引用已删除行的其他行

    我正在使用 PostgreSQL 并且我有一张表family像这样 id name parent id 1 adam 0 2 eva 0 3 peter 2 4 pan 3 现在 当我删除这个人时 我也希望孩子们也被删除 例如删除WHERE
  • 重命名 APK 内的包名称

    我创建了一个AIR app目前市场上有这种产品 要更新应用程序 显然我必须保留相同的包名称 我的第一个版本是使用以下方式打包的Eclipse使用 ADT 插件 现在可以使用AIR 3 0 本机扩展 ANE 当我第一次开发该应用程序时不可用
  • 在 django 平面中嵌入tinyMCE

    我在用着django tinymce https github com aljosa django tinymce 我想知道如何将其嵌入到管理面板的平面中 来自项目的自述文件 将tinymce添加到项目的settings py中的INSTA
  • 节点 v7.9.0 https 的 ERR_SSL_VERSION_OR_CIPHER_MISMATCH

    此代码在node v7 9 0 Electron当前使用的版本 中创建一个https服务器 并监听端口8000 require https createServer req res gt res writeHead 200 res end
  • 非抢占式 最早截止时间优先调度

    我正在开发任务调度程序 我想使用 EDF 调度 我需要安排的任务集仅包含截止日期等于其周期的任务 并且必须定期安排任务 我遇到的问题是任务一旦开始执行就无法中断 我知道 仅当任务抢占式地在单个处理器上调度时 EDF 才是最佳调度算法 因此我
  • 使用 Python 将 USB 驱动器格式化为 FAT32

    我正在尝试创建一个可启动 USB 驱动器 需要将 USB 格式化为 FAT32 以便我可以将所有文件提取到其中 是否可以使用纯Python格式化USB驱动器 我可以在不使用外部命令的情况下将其格式化为 FAT32 吗 我知道在 bash 中
  • 读取和打印手臂组件中的字符串

    我正在使用 ARMSim 刚刚开始学习汇编 所以如果我看起来一无所知 请原谅我 但我正在尝试从输入文件中读取字符串 然后将其打印到输出屏幕 到目前为止我有 equ SWI Open 0x66 open a file equ SWI Clos