Memory 采用big-endian格式的汇编内存寻址

Memory 采用big-endian格式的汇编内存寻址,memory,assembly,arm,Memory,Assembly,Arm,有点困在这里,希望有一个关于内存寻址的指针 理论上,它们代表R1到R4。我假设0x60是R1,0x6C是R4,每次递增一个字。是这样吗 如果我想跑 ADD R1, R2 它会将0x60和0x6C相加的结果存储在内存位置0x60中吗?还是我看错了?ARM寄存器与任何内存位置都不对应。在某些上下文中(“堆栈上的溢出插槽”,“用于多任务处理的任务状态”),将保留内存位置以保存部分或所有寄存器的内容,但必须来回显式复制它们 您试图解决的问题措词不当,但我认为该表给出了内存位置0x60到0x6C的值

有点困在这里,希望有一个关于内存寻址的指针

理论上,它们代表R1到R4。我假设0x60是R1,0x6C是R4,每次递增一个字。是这样吗

如果我想跑

 ADD R1, R2

它会将0x60和0x6C相加的结果存储在内存位置0x60中吗?还是我看错了?

ARM寄存器与任何内存位置都不对应。在某些上下文中(“堆栈上的溢出插槽”,“用于多任务处理的任务状态”),将保留内存位置以保存部分或所有寄存器的内容,但必须来回显式复制它们


您试图解决的问题措词不当,但我认为该表给出了内存位置0x60到0x6C的值,另外,文本(“[R1]=…,[R2]=…,等等”)给出了寄存器的值。如果我读对了,标记为(a)的指令将复制内存位置0x62处的值的低字节,即0x9A或0x90,我不确定是哪个,将其扩展到寄存器R1中。我希望这足以让您摆脱困境。

ARM寄存器不与任何内存位置对应。在某些上下文中(“堆栈上的溢出插槽”,“用于多任务处理的任务状态”),将保留内存位置以保存部分或所有寄存器的内容,但必须来回显式复制它们


您试图解决的问题措词不当,但我认为该表给出了内存位置0x60到0x6C的值,另外,文本(“[R1]=…,[R2]=…,等等”)给出了寄存器的值。如果我读对了,标记为(a)的指令将复制内存位置0x62处的值的低字节,即0x9A或0x90,我不确定是哪个,将其扩展到寄存器R1中。我希望这足以让你摆脱困境。

我认为你对这个数字的解释是不对的。你从哪里弄来的?@zwol这很有可能。我在上组装课,但是老师几乎不会说英语,所以我们大多数人都在使用arm文档来尝试自学和整理作业。然而,我并不是在找人帮我做作业,只是对内存地址进行了解密。这是我试图将其应用到的实际问题:编辑:在上传时重新阅读,我现在看到他们提供了R1-R4。只是——还有那张图表。也许我需要更深入地了解这里的文档。只是不要阅读任何关于ARMv6和更高版本的内容,它们有不同的大端格式。这个例子显然是在谈论疯狂的旧单词不变量BE-32,而不是新的(有点理智的)BE-8。@不象我在这门课上学到的每一件事都让我害怕存在。我会坚持——不管我能找到什么旧文档!您的编辑将问题变成了废话,并使涉及图表的答案无效。这个图表是你的问题/误解的关键。我认为你对这个数字的解释是不对的。你从哪里弄来的?@zwol这很有可能。我在上组装课,但是老师几乎不会说英语,所以我们大多数人都在使用arm文档来尝试自学和整理作业。然而,我并不是在找人帮我做作业,只是对内存地址进行了解密。这是我试图将其应用到的实际问题:编辑:在上传时重新阅读,我现在看到他们提供了R1-R4。只是——还有那张图表。也许我需要更深入地了解这里的文档。只是不要阅读任何关于ARMv6和更高版本的内容,它们有不同的大端格式。这个例子显然是在谈论疯狂的旧单词不变量BE-32,而不是新的(有点理智的)BE-8。@不象我在这门课上学到的每一件事都让我害怕存在。我会坚持——不管我能找到什么旧文档!您的编辑将问题变成了废话,并使涉及图表的答案无效。这张图表是你的问题/误解的关键。这很有帮助。希望这能给我一个开始,让我在这里得到类似于正确答案的东西。谢谢@RNPF您可以尝试搜索一些关于1985-1995年计算机的儿童书籍,它可能会以简单的方式解释旧的简单CPU总线内存/外围设备体系结构。一旦你意识到内存和CPU是完全不同的芯片,它将变得更有意义,为什么CPU有临时值持有者“寄存器”(快,但很少),为什么内存有地址来寻址特定的内容单元(慢,但大,通用)。这帮了大忙。希望这能给我一个开始,让我在这里得到类似于正确答案的东西。谢谢@RNPF您可以尝试搜索一些关于1985-1995年计算机的儿童书籍,它可能会以简单的方式解释旧的简单CPU总线内存/外围设备体系结构。一旦你意识到内存和CPU是完全不同的芯片,它将变得更有意义,为什么CPU有临时值持有者“寄存器”(快,但很少),为什么内存有地址来寻址特定的内容单元(慢,但大,通用)。