编码和解码ARM指令与二进制文件

技术标签: 手臂  可执行文件

任务1:为以下说明编写相应的ARM组件表示:

11101001_000111000001000000010000
11100100_110100111000000000011001
10010010_111110100100000011111101
11100001_000000010010000011111010 
00010001_101011101011011111001100

任务2:为以下说明编写指令代码:

STMFA R13!, {R1, R3, R5-R11} 
LDR R11, [R3, R5, LSL #2]
MOVMI R6, #1536
LDR R1, [R0, #4]!
EORS R3, R5, R10, RRX

我对这种材料有零的经验,教授让我们学生们晾干。基本上我已经找到了解码这些指令的各种方法,但我还有三个主要的疑虑。

  1. 我对如何开始解码二进制文件到ARM指令的任何想法,这是作业的第一部分。

  2. 例如,我找不到这些后缀中的一些后缀是什么?它是set条件位吗?当指令前有S时,它是否设置为1?

  3. 我不做一个指令行中有多个寄存器。例子:

     EORS R3,R5,R10,RRx
    

    我不明白那里有这么多寄存器。

非常感谢在正确方向上的任何轻推。我也搜索了手臂手册,他们对没有理解他们正在寻找的东西并不是很有帮助。他们确实有大多数用于编码和解码的指示,但对我上面问的东西没什么解释。

看答案

如果您有ARM V7 A + R架构手册(DDI0406C),则在A5章中有一个很好的表基解码/拆卸描述。您从表A5.1开始,并且根据指令字中的不同位的值,它引用了导致指令的越来越多的表格。

例如,考虑以下指令:

0001 0101 1001 1111 0000 0000 0000 1000

根据第一表,它是一个无符号的加载/存储指令,因为条件不是1111,op1是010。在A5.3中进一步扩展了这一点的编码

从本节中,我们看到A = 0,OP1 = 11001,RN = 1111(PC)和B = 0。这意味着该指令是LDR(文字)。检查描述此指令的页面并记住Cond = 0001我们看到指令是LDRNE R0, [PC, #4].

要执行反向程序,您将在按字母顺序排列的指令列表中查找指令并按照模式进行操作。


智能推荐

二进制文件替换数据

昨天一个好朋友,找我帮忙:        说想定向的修改二进制文件指定位置的数据,希望我能写个脚本,通过某个 csv 文件里面的 定位数据,和对应值,以及数位长度进行修改。 要处理的数据文件: 替换的数据:csv文件的数据: 问了好半天,他认真的告诉我:A.csv文件里面一行三个信息,第一列是DATA.BIN文件的某个要替换的数...

linux修改二进制文件

在 Vim 里通过转换程序 "xxd" 来达到这效果。该程序是随 Vim 一起发布的。    首先以二进制方式编辑这个文件:         vim -b datafile 现在用 xxd 把这个文件转换成十六进制:         :%!...

QT的温湿度显示系统

大家好,这里是石侃侃的博客,欢迎前来讨论 这篇文章介绍的是DHT11在2440上的基于Qt5.6的应用 基于单片机系统的温湿度监测系统构成框图如图2-1所示。 图2-1  系统构成框图 该系统采用单片机s3c2440作为了本设计的核心元件。利用LCD作为了显示器件,利用触摸屏作为用户界面输入设备,第一行显示当前实时的温度,湿度,第二行依次显示历史时刻最高的温度值,最高的湿度值。第三行是一...

截屏和储存

  MainActivity:...

解决JavaSoft\Prefs Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002

“Could not open/create prefs root node Software\JavaSoft\Prefs atroot 0x80000002. Windows RegCreateKeyEx(...) returned error code 5”, 虽然不影响tomcat的运行,程序也可以正常运行,但是既然报错肯定有隐患,于是决定解决这个问题。 此问题已纠...

猜你喜欢

Android Theme、colorPrimary、colorPrimaryDark、colorAccent详解

      参考:https://blog.csdn.net/lvxiangan/article/details/78931962...

2015年3月最佳的免费资源分享给设计师

  这里是2015年3月最佳的20个免费资源,这里列表中包含字体,Web 应用程序,设计资源,模板素材等等,对设计师们非常有用,不管是初学者到顶尖的专家。如果我们错过了一些东西,也欢迎大家推荐给我。 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果【附源码】 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发...

[IDE工具篇][git使用]上传代码和下载代码

本篇文章主要讲诉如何在github上创建自己的项目 通过git工具将项目文件拉取下来放入XAMPP开发工具中,完成开发后再讲代码提交到git服务器上。 1. 下载Git GUI(Git的图形化管理工具),下载地址:http://pan.baidu.com/s/1hsmR13m,我的是Win732位系统。下载安装这里省略100字........., 安装成功后,在左下角“搜索程序和文件&...

Mybatis案例升级版

纯Mybatis案例升级版——小案例大道理 前言: 这几天看了一本书《原则》,在上面看到了一句话叫“每个人都把自己眼界的局限当成世界的局限”,大学生是,大学就是鱼缸,世界很大,希望大家好好努力,不要让“贫穷”限制了你的思维。 暑假的时候写了一篇《Mybatis案例超详解》,遗留了一些问题,欠的债现在该还了,刚开学,学校事比较多...

Python装饰器的高级用法(翻译)

  介绍 我写这篇文章的主要目的是介绍装饰器的高级用法。如果你对装饰器知之甚少,或者对本文讲到的知识点易混淆。我建议你复习下装饰器基础教程。 本教程的目标是介绍装饰器的一些有趣的用法。特别是怎样在类中使用装饰器,怎样给装饰器传递额外的参数。   装饰器 vs 装饰器模式 Decorator模式是一个面向对象的设计模式,它允许动态地往现有的对象添加行为。当你装饰了一个对象,在某种...

问答精选

TensorFlow Object Detection API poor results

I have trained TensorFlow Object Detection API on my own PascalVOC dataset with 7 classes. In each class there are from 100 to 200 images. I was using ssd_mobilenet_v1_pets.config standard configurati...

How can I indent a line by several steps in VIM?

How can I indent a line by several steps in VIM? To understand my question, see the example blow: >> indents the current line by one step. 2>> indents two lines by one step Or V2> inden...

Method references in Java 8: is overloading supported?

Is there any way to refer to a group of methods in Java 8, which varies their signature the overloading way? More precisely, I'd like this code to work: I cannot afford to add public static void foo (...

Tkinter: How do I build an application for several different screen resolutions

So I'm working on an application in Python with Tkinter as the GUI framework. The first picture is a screenshot from my coworkers computer, the second is a screenshot from my computer. How can I make ...

Problems to initialize Analytics in ANDROID app

I'm facing problems to use Analytics in my Android App. I'm using the default class generated by Android Studio I don't know how to initialize it, if I do it in the MainActivity in onCreate() each tim...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答