Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >ARM GAS汇编程序中的反转字符串返回NULL

ARM GAS汇编程序中的反转字符串返回NULL
EN

Stack Overflow用户
提问于 2020-10-07 21:36:03
回答 2查看 163关注 0票数 0

我知道我在做傻事,但我不知道是什么。这些函数返回一个空字符串,所以我不会复制每个字符。输入到我的reverse_string_func的输入字符串为R0。我的例子使用了gas似乎不支持的语法,所以我修改了它,但它不是功能性的。我想沿着char数组一次移动一个字符。任何帮助都是非常感谢的,我已经盯着它看了太多次了,我都快看不到代码了。

编辑:输入字符串在传递给函数时为R0格式。reverse_string是一个用0填充的空缓冲区,我要做的是将输入字符串的位置加载到R1中,遍历它(同时加载到r3中),直到找到终止的0,然后移动到复制循环。在这里,我希望将R3 (字符串的末尾)的当前位置加载到R2 (相反的字符串)的第一个位置,然后向后从R3中提取字符,并以相反的顺序将它们放回R2中。我假设我使用的是R2而不是忽略它?

代码语言:javascript
代码运行次数:0
复制
        ldr r2, [r0], r3 /* start at end of string */
        add r3, #-1

我相信我正在将R0中的数组中编号为R3的值推入R2?这不是正在发生的事情吗?

代码语言:javascript
代码运行次数:0
复制
reverse_string_func:
        PUSH {ip, lr}
        LDR r1, =input_string           @ pointer to first string.
        LDR r2, =reverse_string         @ pointer to second string
        mov r3, #0
mv2end:  /* try to find the end of the string */
        ldr r1, [r1], #1
        add r3, #1
        cmp r1, #0
        bne mv2end
        /* found end of string, move on */
string_copy:
        ldr r2, [r0], r3 /* start at end of string */
        add r3, #-1
        cmp r3, #0
        bne string_copy /* move back for next character */

        POP {ip, pc}

EDIT2:

好了,我已经做了一些更改,尝试字符串我找到的值。我单步执行了所有操作,它们似乎都在寄存器中,但它没有存储到内存中的字符缓冲区中?我还是不明白我做错了什么。

代码语言:javascript
代码运行次数:0
复制
reverse_string_func:
            PUSH {ip, lr}
        LDR r1, =input_string           @ pointer to first string.
        LDR r4, =reverse_string         @ pointer to second string
        mov r3, #0
mv2end:  /* try to find the end of the string */
        ldrb r2, [r1, r3]
        add r3, #1
        cmp r2, #0
        bne mv2end
        /* found end of string, move on */
        add r3, #-2 /* on terminator, move back past terminator, and line feed */
string_copy:
        add r3, #-1
        ldrb r2, [r1, r3]
        strb r4, [r1, r3] @ <--- I believe I'm going wrong here, but how?
        cmp r3, #0
        bne string_copy /* move back for next character */
        POP {ip, pc}

按照原样,这只是将一个空字符串返回到主程序中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-08 15:38:57

您将当前字符加载到r2寄存器(然后忽略它),而您需要的似乎是将该字符存储到r2指向的字符串中。

票数 0
EN

Stack Overflow用户

发布于 2020-10-11 19:01:41

我在第二次编辑时遇到的问题是STRB助记符,问题是我误解了存储的方向。正确的方法是:

代码语言:javascript
代码运行次数:0
复制
strb r2, [r4, r5]

因为您通过偏移量R5将寄存器R2的内容存储到R4中的内存位置。

希望这能帮助其他以后来这里的人。这里有一个很好的教程:https://azeria-labs.com/memory-instructions-load-and-store-part-4/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64252653

复制
相关文章
kubernetes | pod
基于centos7.9,docker-ce-20.10.18,kubelet-1.22.3-0
Amadeus
2022/10/25
6030
Kubernetes Pod基础
Pod是k8s系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在k8s上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展Pod对象功能的,比如控制器对象是用来管控Pod对象的,Service或者Ingress资源对象是用来暴露Pod引用对象的,PersistentVolume资源对象是用来为Pod提供存储等等,k8s不会直接处理容器,而是Pod,Pod是由一个或者多个container组成的。
kubernetes中文社区
2019/06/24
7380
Kubernetes Pod详解
Pod中通过共享Network Namespace的方式进行网络的共享,但是如果是以下方式进行Network Namespace共享会有问题:
shysh95
2022/05/24
7950
Kubernetes Pod详解
【Kubernetes系列】Pod
Pod是一组(一个或多个) 容器 ; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用的 “逻辑主机”,其中包含一个或多个应用容器, 这些容器相对紧密地耦合在一起。 在非云环境中,在相同的物理机或虚拟机上运行的应用类似于在同一逻辑主机上运行的云应用。
Java技术债务
2022/10/28
5930
Kubernetes Pod Evicted[通俗易懂]
近日 Kubernetes 测试集群 Pod 状态出现 Evicted 现象 , 但是项目还是能正常提供服务 , 最先的解决办法是手动将 Evicted 状态的 Pod 删除。
全栈程序员站长
2022/08/30
1.1K0
运维篇 k8s(Kubernetes)
k8s是kubernetes的简称,即字母“k”到最后一位相隔8位字母。名字来源于希腊语,意思是“舵手”或“领航员”。
用针戳左手中指指头
2021/01/29
3.2K0
运维篇 k8s(Kubernetes)
Kubernetes/K8S快速入门之Kind
Kind 文档 https://kind.sigs.k8s.io/docs/user/quick-start/
码客说
2021/03/04
3.9K0
查看 Docker cp 进度
docker cp 命令本身不提供进度查看功能。但是,您可以使用第三方工具,如 pv(Pipe Viewer)在执行 docker cp 时查看进度。以下是使用 pv 查看 docker cp 进度的步骤:
宋天伦
2023/10/21
4200
kubernetes 问题排查: 高版本 containerd 下载镜像失败
在 containerd 运行时的 kubernetes 线上环境中,出现了镜像无法下载的情况,具体报错如下:
CNCF
2021/05/27
9.6K2
kubernetes 问题排查: 高版本 containerd 下载镜像失败
kubeadm部署kubernetes集群
(3) 生成Kube Config文件,kubelet需要用这个文件与Master通信。
星哥玩云
2022/07/28
3170
深入玩转K8S之使用kubeadm安装Kubernetes v1.10以及常见问题解答
Kubernetes是Google开源的容器集群管理系统。它构建于docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩 容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。
DevinGeng
2019/04/09
1K0
Kubernetes 1.19.0——Pod(1)
kubectl run 名字 -image=镜像 --labels=”aa=bb,aa2=bb2...” --env=”k1=v1” --port=80 --image-pull-policy=策略
gz_naldo
2020/09/18
6910
Kubernetes 1.19.0——Pod(1)
Kubernetes 1.19.0——Pod(2)
所谓静态pod就是,不是master上创建的,而是需要到Node的/etc/kubelet.d/里创建一
gz_naldo
2020/09/19
7242
Kubernetes 1.19.0——Pod(2)
2.1 Kubernetes--Pod
  自主式Pod是不被控制器管理的Pod. 这种Pod死亡以后, 不会被重新启动. 这个Pod死了以后, 副本数就达不到期望值了, 也不会有人去创建一个新的Pod为达到副本数的期望值.
用户7798898
2020/09/27
7830
2.1 Kubernetes--Pod
kubernetes中的pod
在Kubernetes中,Pod是最小的可部署单元。Pod是一个逻辑主机,它可以包含一个或多个容器。每个Pod都有一个唯一的IP地址和一组共享的存储和网络资源。Kubernetes使用Pod来调度和管理应用程序的运行。
玖叁叁
2023/04/28
5780
Kubernetes 系列(3) —— Pod
Pod 是 Kubernetes 的基本操作单元,也是应用运行的载体,包含一个或多个密切相关的容器。整个 Kubernetes 系统都是围绕着 Pod 展开的,比如如何运行 Pod、如何保证 Pod 的数量,如何访问 Pod 等。
求和小熊猫
2021/09/10
9660
Kubernetes Pod 驱逐详解
在 Kubernetes 中,Pod 使用的资源最重要的是 CPU、内存和磁盘 IO,这些资源可以被分为可压缩资源(CPU)和不可压缩资源(内存,磁盘 IO)。可压缩资源不可能导致 Pod 被驱逐,因为当 Pod 的 CPU 使用量很多时,系统可以通过重新分配权重来限制 Pod 的 CPU 使用。而对于不可压缩资源来说,如果资源不足,也就无法继续申请资源(内存用完就是用完了),此时 Kubernetes 会从该节点上驱逐一定数量的 Pod,以保证该节点上有充足的资源。
米开朗基杨
2019/08/29
3.3K0
Kubernetes Pod 驱逐详解
Pod镜像拉取策略
在Kubernetes中,Pod是最小的可部署对象,可以由一个或多个容器组成。每个容器都运行在独立的镜像中。在本文中,我们将介绍Pod的镜像拉取策略,帮助您更好地了解和管理Pod的镜像。
玖叁叁
2023/04/29
6080
Kubernetes Pod 全面知识
Pod 是在 Kubernetes 中创建和管理的、最小的可部署的计算单元,是最重要的对象之一。一个 Pod 中包含一个或多个容器,这些容器在 Pod 中能够共享网络、存储等环境。
痴者工良
2021/11/30
8440
Kubernetes Pod 全面知识
Kubernetes Pod入门指南
Pod是Kubernetes项目里定义的最小可调度单元,是Kubernetes对应用程序的抽象。在这篇文章里我将会介绍Kubernetes里Pod的基本概念,使用方式,生命周期以及如何使用Pod部署应用。读这篇文章的朋友我会默认你已经了解Kubernete是用来解决什么问题的,以及电脑上已经安装了Minikube这个能试验Kubernetes功能的工具。如果尚未做好这些准备工作,推荐先去看下面的两篇文章做好准备工作后再来学习这里的内容。
KevinYan
2020/08/10
4740

相似问题

kubernetes无法拉取镜像运行pod

225

kubernetes多pod contianer继承镜像id

11

Docker镜像和它的Kubernetes Pod不同

24

Kubernetes Dashboard访问查看pod日志

10

Kubernetes Engine - Pod部署未更新到最新镜像

214
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档