汇编代码、机器码和存储器的关系以及数据的表示

发布者:星光小狐狸最新更新时间:2020-03-26 来源: eefocus关键字:汇编代码  机器码  存储器  数据 手机看文章 扫描二维码
随时随地手机看文章

即使使用C/C++或者其他高级语言编程,最后也会被编译工具转换为汇编代码,并最终作为机器码存储在内存、硬盘或者其他存储器上。在调试程序时,经常需要阅读它的汇编代码,以下面的汇编代码为例:


2023404:       e5901000        ldr     r1, [r0]

2023408:       e3c110ff        bic     r1, r1, #255    ; 0xff

202340c:       e3c11cff        bic     r1, r1, #65280  ; 0xff00

2023404、2023408、202340c是这些代码的运行地址,就是说运行前,这些指令必须位于内存中的这些地址上; e5901000、e3c110ff、e3c11cff是机器码。运行地址、机器码都以16进制表示。CPU用到的、内存中保存的都是机器码,图1是这几条指令在内存中的示意图。

图1. 内存中的机器码


"ldr r1, [r0]"、"bic r1, r1, #255"、"bic r1, r1, #65280"是这几个机器码的汇编代码──所谓汇编代码仅仅是为了方便我们人类读、写而引入的,机器码和汇编代码之间也仅仅是简单的转换关系。


参考CPU的数据手册可知,ARM的数据处理指令格式为:

以机器码0xe3a0244e为例:


[31:28] = 0b1110, 表示这条指令无条件执行;

[25] = 0b1, 表示 Operand2 是一个立即数;

[24:21] = 0b1101, 表示这是 MOV 指令, 即 Rd : = Op2;

[20] = 0b0, 表示这条指令执行时不影响状态位;

[15:12] = 0b0010, 表示 Rd 就是 r2;

[11:0] = 0x44e, 这是一个立即数;

立即数占据机器码中的低12位表示:最低8位的值称为immed_8,高4位称为rotate_imm。立即数的数值计算方法为:=immed_8循环右移(2*rotate_imm)。对于"[11:0] =0x44e",其中immed_8=0x4e,rotate_imm=0x4,所以此立即数等于0x4e000000。


综上所述,机器码0xe3a0244e的汇编代码为:


mov r2, #0x4e000000

mov r2, #1308622848。

上面的0x4e000000和1308622848是一样的,之所以强调这点,是因为很多初学者问这样的问题:"计算机中怎么以 16 进制保存数据?以 16 进制、 10 进制保存数据有什么区别?"这类问题与如下问题相似:桌子上有12个苹果,吃了一个,请问现在还有几个?你可以回答11 个、0xb个、十一个、eleven个、拾壹个。所谓16进制、10进制、8进制、二进制,都仅仅是对同一个数据的不同表达形式而已,这些不同的表达形式也仅仅是为了方便我们人类(又说了这个词一遍)读写而已,它们所表示的数值及它在计算机中的保存方式是完全一样的。


完毕!

关键字:汇编代码  机器码  存储器  数据 引用地址:汇编代码、机器码和存储器的关系以及数据的表示

上一篇:常用的汇编指令介绍
下一篇:Exynos4412芯片的时钟管理单元

推荐阅读最新更新时间:2024-11-10 02:29

51单片机 串口发送数据(只是发送)
51单片机 串口发送数据(只是发送)用于调试。 #include reg51.h #define uchar unsigned char #define uint unsigned int #define XTAL 11059200 // CUP 晶振频率 #define baudrate 9600 // 通信波特率 /************************************************* 函数:uart_init 功能:初始化串口 出口:void 入口:void *************************************************/ void uart
[单片机]
江苏电力实现多源数据单相接地故障精准定位
“弧光接地试验完成,显示现场故障线路为10千伏董庄1号线,故障区段为40号杆与沙东村5号支线15号杆之间,特此汇报。”5月21日下午,随着现场主站工作负责人作出汇报,国网江苏省电力公司基于多源数据单相接地故障研判现场验证获得成功。这意味着该公司在国网系统率先实现基于多源数据的小电流单相接地故障的精准研判。 一直以来,在变电站10千伏出线发生单相接地故障后,配网调控员无法精准判断接地故障到底在哪条线路上。“之前只能通过‘拉路法’,配网调控员通过D5000系统一条条地查看变电站的10千伏出线,费时费力不说,还可能造成非故障线路的短时停电,影响客户的用电体验。”江苏电力调度控制中心综合技术处副处长杨梓俊说。 为此,江苏电力于2
[新能源]
苹果组建“秘密团队” 研发卫星直接数据传输至设备
彭博社的马克·古尔曼(Mark Gurman)报道说,苹果公司组建了一支专门的通信研究团队,致力于研究将互联网连接等数据从卫星直接传送到用户设备的新方法。知情人士说,总部位于加利福尼亚州库比蒂诺的苹果现有约12名来自航空航天、卫星和天线设计行业的工程师从事该项目,目标是在5年内将这一技术发展到可用的程度。   知情人士说,该项目的工作进度仍处于初期,这一项目如果进展不顺利也可能在未来会被放弃,何况卫星的明确方向和用途尚未最终确定。   苹果公司这一计划的主要目的是将数据传送到用户的设备上,从而减少对无线运营商的依赖,或者在不使用传统网络的情况下将用户设备和数字网络链接在一起。苹果也可能会借助这一技术探索卫星以对其设备进行更精
[手机便携]
数字电源转换解决数据中心的功耗问题
在如今这个以内容为主的社会,对于高性能计算、联网和存储马力的需求让 IT 设备的功耗达到了前所未有的水平。因此,由于功耗而产生的运营支出以及相应的散热要求,也越来越脱离控制。企业开始感觉经济紧张,而环境保护问题也让政府将原本只面向能源星法案扩大到企业设备。 这场“绿色 IT”行动让 IT 经理们将低功耗作为采购产品的第一标准。OEM 也需要面对在不扩大设备外形的情况下将其性能提高一倍的挑战,并因而加倍 功率 密度。现有的模拟产品方案却让 IT 设备厂商应对这一挑战的能力受到了限制。 在大型数据中心的部署过程中,因功耗及散热相关而产生的运营支出问题更为严重。由Lawrence Berkeley Labs等组织进行的多项研究显示,在传
[电源管理]
三星Watch 4手表现身数据库:支持5W的无线充电
据外媒GSMArena报道,三星即将推出的新款 Galaxy Watch 4智能手表近日出现在 FCC 的数据库中,该手表将有 Wi-Fi 版和 LTE 版两个版本。 其中,Wi-Fi 版的型号为 SM-R880,而 LTE 版本则被列为 SM-885U。这两款手表均支持双频 Wi-Fi、NFC、GNSS 定位和蓝牙连接。此外,该手表还支持5W 的无线充电。 三星 Galaxy Watch 4智能手表的两个版本的尺寸分别为42毫米和46毫米。该手表将运行谷歌的 Wear OS 操作系统,FCC 的数据库还显示该手表支持本地音乐播放功能。 三星计划在 Galaxy Z Fold3和 Z Flip3折叠屏手机的发布
[手机便携]
三星Watch 4手表现身<font color='red'>数据</font>库:支持5W的无线充电
数字化转型下电力大数据增值模式思考
中国储能网讯: 数字化转型下电力大数据增值模式思考 张希翔  董贇  孟椿智 (南方电网广西电网公司) 一、背景 党的十八大以来,我国数字经济蓬勃发展。数字技术已作为新一轮技术革命和产业变革的重点方向,数字转型为培育经济增长新动能提供重要引擎,数字经济成为构建现代化经济体系的重要内容。党的十九届四中全会将数据作为“生产要素”纳入分配制度,明确了数据要素按贡献决定报酬,把大数据的知识产权化和商业化使用提升到了新的高度。 电网企业数据资产呈现出典型的大数据特征。这些电力大数据来自电力生产和电能使用的发电、输电、变电、配电、用电和调度各个环节,包括电网运行、设备管理、营销服务和企业管理等各类数据,蕴藏着
[新能源]
国内首个80纳米磁随机存储器芯片器成功研制
近日,北京航空航天大学与微电子所联合成功制备国内首个80纳米自旋转移矩——磁随机存储器芯片(STT-MRAM)器件。 STT-MRAM是一种极具应用潜力的下一代新型存储器解决方案。由于采用了大量的新材料、新结构,加工制备难度极大。当前,美韩日三国在该项技术上全面领先,很有可能在继硬盘、DRAM及闪存等存储芯片之后再次实现对我国100%的垄断。 微电子所集成电路先导工艺研发中心研究员赵超与北京航空航天大学教授赵巍胜的联合团队通过3年的艰苦攻关,在STT-MRAM关键工艺技术研究上实现了重要突破,在国内首次采用可兼容CMOS工艺成功制备出直径80nm磁隧道结,器件性能良好,其中器件核心参数包括隧穿磁阻效应达到92%,可实现纯电
[半导体设计/制造]
半导体产业应如何在大数据中淘金?
  根据思科的数据,全球互联网吞吐量在2016年为1.2ZB(1ZB相当于10亿TB或1万亿GB),预计到2021年将增长到3.3ZB每年。汹涌上涨的数据洪流,波峰越来越高,在2016年,每天数据流量同比增长了32%,而流量最高的1小时数据吞吐量同比增长了51%。下面就随半导体小编一起来了解一下相关内容吧。   当上述统计也不完整,实际上没有人知道全球每天产生多少数据,因为并不是所有设备的数据都会连入互联网。   数据量本身意义不大,如何量化数据的价值才是关键所在,但在如何应用数据,以实现其价值方面,当前还没有行之有效的方法。   想挖掘数据的真正价值,就要对天量数字与模拟数据进行过滤,并充分考虑应用场景,这就像沙里淘金,大
[半导体设计/制造]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved