- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
ARM documentation对于 PUSH 和 POP 如下所示
PUSH stores registers on the stack, with the lowest numbered registerusing the lowest memory address and the highest numbered registerusing the highest memory address.
POP loads registers from the stack, with the lowest numbered registerusing the lowest memory address and the highest numbered registerusing the highest memory address.
还有一个tutorial我发现这样说
...the registers in the {} can be specified in any order, but theorder in which they appear on the stack is fixed...
所以根据上面的解释,一个PUSH括号中的寄存器的顺序并不重要。 IE。 PUSH {R0,R1,R2}
、PUSH {R2,R1,R0}
和 PUSH {R1,R2,R0}
都将导致堆栈中的某些顺序,因为“...最低/最高编号的寄存器(R0/R2)使用最低/最高(堆栈)内存地址...”。
这是否意味着单个 PUSH 指令有多个寄存器支架,装配器自动排序插入 Action 在目标代码中,其中 PUSH R2
首先进入堆栈取最高地址,然后是 PUSH R1
,最后是 PUSH R0
取最低地址?
因此,如果我想保证 R2 在 LIFO 堆栈中最后压入并首先弹出(即。SP指向R2或R2取最低堆栈地址),我不能在一个 PUSH 括号语句中执行此操作,但只能单独使用 PUSH R0;按 R1;推 R2
?
最佳答案
你已经很接近了,你需要始终获得TRM(核心的技术引用手册,cortex-m3,cortex-m0等)和ARM(该核心指定的架构的架构引用手册armv6-m, armv7-m , armv8-m )
.thumb
push {r0,r1,r2}
push {r2,r1,r0}
push {r0}
push {r1}
push {r2}
Disassembly of section .text:
00000000 <.text>:
0: b407 push {r0, r1, r2}
2: b407 push {r0, r1, r2}
4: b401 push {r0}
6: b402 push {r1}
8: b404 push {r2}
从ARM ARM中你可以看到push指令的低8位是寄存器列表/掩码。所以 r0 是位 0,r1 是位 1,依此类推。所以b407中的7表示r0,r1,r2这三个寄存器。该逻辑在机器代码而不是汇编语言上运行,机器代码从位 7 转到位 0(如果设置),然后压入该寄存器。汇编器所做的只是创建机器代码,它不会创建额外的指令或类似的东西。
如果您希望它们以不同的顺序排列,那么您必须用汇编语言将它们编写在单独的指令中。
The registers are stored in sequence, the lowest-numbered register to the lowest memory address (start_address), through to the highest-numbered register to the highest memory address (end_address)
The start_address is the value of the SP minus 4 times the number of registers to be stored.
Subsequent addresses are formed by incrementing the previous address by four. One address is produced for each register that is specified in .
The end_address value is four less than the original value of SP.The SP register is decremented by four times the numbers of registers in.
关于arm - PUSH 和 POP 括号中的寄存器顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63304428/
我的团队正在使用 gerrit 代码审查,本质上这意味着默认的推送行为会绕过标准工作流程,因此我们需要使用 git push origin HEAD:refs/for/feature 来正确推送我们的
我是 assembly 新手,我正在使用 MASM。我看到这些代码行,想知道这之间有什么区别 a) push myVar b) push [myVar] c) push OFFSET myVar 我怎
美好的一天! 将镜像推送到docker hub时遇到一些问题。我的第一个软件版本: vagrant@debian-8-docker:~$ docker version Client version:
我有三个 Controller 一二三 .首先是navigationController的rootViewController。 在 SecondViewController ,我有一个名为 的协议(
我在这个 Google 教程的帮助下实现了一个 Web Push API: https://developers.google.com/web/fundamentals/getting-started
我有两个模式: var optionsSchema = new Schema({ locationname: String, locationnumber : String
我是 git 的新手并对其进行了测试。我已经能够克隆 friend 存储库进行小的本地更改并提交。 我现在想测试将我的本地更改推送到远程存储库,但不幸的是当我尝试进行推送时 $ git push <
我们正在公司讨论 git rebase 之后该做什么。在rebase之后,您需要将更改推送到远程origin,但是当git不允许时我们应该怎么做呢?实际上,我们正在讨论当分支已经被推送时我们最常用的两
我正在使用具有嵌入式 github 支持的新 IDE。在命令行本地,我可以成功地使用 git push orgin master 并更新 github。但是我的 IDE 使用带有 -v 标志的命令,这
我仍在阅读有关 RoR 的一些指南,我被困在 Deploying The Demo App 上 我遵循了说明: With the completion of the Microposts resour
我正在尝试创建一个可以将我的 git 存储库镜像到另一个存储库的脚本。一切正常,但它一直在说 [remote rejected] refs/pull/xx/head -> refs/pull/xx/h
我想了解使用 Tortoise SVN 构建过程的一些过程。主要是 我想知道你是否插入: 主线中继 QA 后的一个分支将其抓取到本地的工作副本中并测试该分支,然后一些构建推送该分支 我遇到的问题是我在
在谈论将消息推送到移动应用程序以触发 WAP 内容的下载时,似乎都使用了 WAP 推送和 SMS 推送这两个术语。 这些术语是指相同的机制还是具有不同的含义? 最佳答案 SMS Push 是告诉终端发
我只是想知道是否有人使用这种技术: 由于推送通知仅随 OS 3.0 一起提供,因此我一直在考虑使用电子邮件推送(Exchange、mobile.me)作为解决方法: 您可以注册一个 URL,例如。 m
我正在 build WP website using DIVI theme .应该被插入 dataLayer 的标签被默认的“未设置”值卡在某个地方。 为了推送我使用脚本的值: functi
我最近删除了xcode 6 beta 3并安装了xcode 6 beta 6 当我在终端输入gitpush时,这发生了 xcrun:错误: Activity 的开发人员路径(“/Application
我即将实现ionic-native Push Notifications .这可以在浏览器中运行吗?还是我需要安装 iOS/Android 模拟器? 最佳答案 除非您使用 Phonegap 推送服务器
Safari 12.1 是否支持服务 worker PWA 推送通知?我试过这个 demo在 iOS 上,但它仍然不适合我。 有机会得到它们吗?谢谢。 最佳答案 目前没有关于此功能的通信...Appl
目前我有很多 chrome 浏览器的推送订阅都是这样的方法, swr.pushManager.subscribe({userVisibleOnly: true}) .then(function
我需要 4 个过渡效果,但我只知道 2 个过渡效果,还有 2 个我不知道。我知道的 2 个过渡动画是: 过渡时下推: 并向下推过渡: 但
我是一名优秀的程序员,十分优秀!