关于C51中“大小端存储”问题的详解

本文详细介绍了C51在处理不同数据类型时的大小端存储规则,包括LCALL指令使用的小端模式(Intel模式)以及其余16位和32位数据采用的大端模式(Motorola模式)。此外,还提到了浮点数按照IEEE-754标准以大端格式存储。C51编译器目前无法全局改变数据存储方式,主流MCU架构如x86和8051通常采用小端存储,而某些架构如Motorola 68k则采用大端存储。

1. Little-Endian(小端存储),即将低字节的数据存储于低地址中,Big-Endian(大端存储)反之。


2. 小端存储称为Intel模式,大端存储称为Motorola模式。


3. C51中LCALL指令将下一指令的执行地址压入堆栈中(堆栈地址由低向高增长),先存入低字节地址,再存入高字节地址,亦即使用“小端模式(Intel模式)”;除此之外,C51中的其它指令和数据,均使用“大端模式(Motorola模式)”。

  1. The 8051 is an 8-bit machine and has no instructions for directly manipulating data objects that are larger than 8 bits. Multi-byte data are stored according to the following rules.   
  2.   
  3. The 8051 LCALL instruction stores the address of the next instruction on the stack. The address is pushed onto the stack low-order byte first. The address is, therefore, stored in memory in little endian format.   
  4. All&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值