6、二进制减法、ARM架构与寄存器详解

二进制减法、ARM架构与寄存器详解

1. 二进制减法与补码

在二进制运算中,减法操作与日常减法有所不同。我们通常不直接进行减法,而是通过加上被减数的负值来实现。例如,要计算 4 - 3,我们实际上计算 4 + (-3)。

为了表示负数,我们使用有符号二进制系统。在 8 位有符号二进制中,第 7 位(最高位)用于表示符号,0 表示正数,1 表示负数。比如,01111111 表示 127,而 10000001 可能表示 -1(这里只是简单示意,实际负数表示常用补码)。

不过,仅仅调整第 7 位的值并不能准确表示负数。为了解决这个问题,我们引入了补码的概念。以 -3 为例,将其转换为二进制补码的步骤如下:
1. 写出 3 的二进制表示:00000011
2. 对每一位取反,得到反码:11111100
3. 反码加 1,得到补码:

11111100
+ 00000001
= 11111101

所以,3 的补码是 11111101。现在我们用补码来计算 4 + (-3):

00000100  4
+ 11111101 -3
=(1)00000001  1

这里产生了一个进位(括号中的 1),在当前情况下可以忽略这个进位。

再看一个例子,计算 32 - 16,即 32 + (-16):
- 32 的二进制:00100000
- 16 的二进制:00010000
-

相关推荐

汇编基础1:arm交叉编译器的安装及arm寄存器和三级流水线

1、arm交叉编译器的安装 sudo apt-get install gcc-arm-linux-gnueabihf 2、arm交叉编译器的移除 sudo apt-get remove gcc-arm-linux-gnueabihf 3、检验是否安装成功,在 Terminal 输入以下命令输出版本信息 arm-linux-gcc -v 4、将可执行程序反汇编 1、arm-linux-gnueabihf-gcc assemble.c -o aa arm-lin...

qq_41962968的博客 3619

6、二进制减法、补码及ARM架构详解

本文详细介绍了二进制减法的实现原理,通过补码表示法将减法运算转化为加法,从而简化计算机内部运算过程。同时深入解析了ARM架构的设计特点,包括字长、内存访问、寄存器功能及状态寄存器标志位的使用。通过示例说明了补码的转换方法、寄存器与内存的交互方式以及条件分支指令的应用,帮助读者理解计算机底层数据处理机制和ARM芯片编程基础。

cc789的博客 101

arm汇编(1)arm32寄存器介绍

在所有的寄存器中,有些是各模式共用同一个物理寄存器,有些寄存器是各个模式自己拥有独立的物理寄存器,所以导致arm一共有37个寄存器。任何处理器模式下arm只有一个cpsr,而spsr有多个,不同的异常模式对应一个,由于用户模式(User)和系统模式(sys)不属于异常模式,所以spsr只有5个。这样算起来只有16个,一般的cpu都会有状态寄存器,还记得51单片机吗,它也有一个程序状态寄存器,叫 PSW。程序状态寄存器通常用来保存指令执行后的状态,比如加法操作产生了进位,会置位进位状态位。

二进制君 7200

SillyTavern与Claude Code API集成:从零搭建AI聊天酒馆的完整指南

本文提供了一份从零搭建SillyTavern AI聊天前端的完整指南,重点讲解如何将其与Claude Code API集成。内容涵盖Node.js环境准备、SillyTavern部署、OpenAI兼容格式的API配置、模型选择与参数调校,以及角色扮演、扩展功能等高级玩法,帮助用户打造本地化、可定制的专属AI聊天体验。

assembly8low的博客 2630

吃透 AM32 无人机电调:从源码架构到工作原理的全方位解析(附实践指南)(上)

本文深入解析了AM32电调固件的源码架构与核心模块实现。文章首先介绍了AM32电调作为开源无人机;动力心脏的重要地位,随后从硬件基础、源码目录、模块划分三个维度构建解析框架。重点剖析了系统初始化模块的时钟配置、GPIO初始化和定时器设置,以及FOC控制模块的坐标变换算法、角度估算和SVPWM生成等关键技术实现。通过逐行代码解析,揭示了电调如何将飞控指令转换为电机驱动的完整过程,为开发者理解AM32电调工作原理提供了系统性指导。

bother3000的博客 6574

SAP PS项目结算实操:从CJ20N到CJ88,手把手搞定项目成本结转与凭证生成

本文详细解析SAP PS项目结算全流程,从CJ20N到CJ88的操作要点,涵盖成本归集、结算规则配置、结果分析及凭证生成等关键环节。特别针对FICO模块中的项目凭证流转问题提供实战解决方案,帮助财务人员规避常见配置错误,提升项目结算效率与准确性。

weixin_26833503的博客 820

(R,线性回归)R语言里的模型诊断图(Residuals vs Fitted,Normal QQ , Scale-Location ,Residuals Leverage)

线性回归,是概率统计学里最重要的统计方法,也是机器学习中一类非常重要的算法。线性模型简单理解非常容易,但是内涵是非常深奥的。尤其是线性回归模型中的Diagnostics plot的阅读与理解一直被认为是线性回归中的一个难点。 在任何线性模型中,能够直接“lm”(模型有意义),既要考虑各个参数的t-test所得出的p-value,也要考虑总体模型F-检验得出的p-value。在这之后,还要清楚一个...

qq_35837578的博客 7万+

从零构建个人知识库:Obsidian与Git实践打造可生长的第二大脑

在信息爆炸的时代,如何有效管理个人知识资产,构建一个可检索、可关联、可生长的个人知识库,成为提升学习效率和创造力的关键。其核心原理在于通过系统化的信息架构与工作流设计,将碎片化信息转化为结构化的知识网络。从技术价值看,这不仅是笔记方法的升级,更是个人知识管理(PKM)和思维模式的革新,能有效对抗信息过载与知识孤岛。实践中,以Obsidian为代表的本地Markdown笔记软件,结合双向链接和关系图谱功能,为知识网络的构建提供了强大支撑;而引入Git进行版本控制,则确保了知识资产的历史可追溯性与安全备份。这种

weixin_28836989的博客 302

SUMO使用教程(一)

本人的sumo视频入门课程,希望支持哦。https://edu.youkuaiyun.com/course/detail/25834 SUMO是一款交通仿真软件,其余可自行百度。教程一主要展示一下如何运行一个仿真实例。当然,这只是实现方法中的一种。 准备: 1.SUMO软件 2.osm地图文件 SUMO可去官网下载,解压后就可以使用,图形界面软是在解压后bin文件夹下的sumo-gui.exe。...

lyx的专栏 3万+

基于STM32H5的循环GPDMA链表使用

STM32H503的GPDMA链表模式可实现灵活的数据传输。相比传统DMA直接编程方式,链表模式通过配置多个节点实现分散数据传输,支持循环链表功能。示例展示了如何使用GPDMA链表实现UART1循环发送数据:配置两个DMA节点分别指向不同发送缓冲区,构建循环链表并绑定到DMA通道。关键点包括:清空链表结构体、正确设置循环模式、检查节点配置。此方法提高了DMA使用的灵活性,适用于需要交替传输多段数据的场景。

kevin1499的博客 453

优秀的 Verilog/FPGA开源项目介绍(六)- MIPI

MIPI的协议我就不详细介绍了(可以查看<下面的二维码>),这里和开源方案比较接近的即使FPGA实现MIPI物理层(DPHY)中电气属性相关的几种方案:MIPI DPHY RX...

OpenFPGA的博客 4460

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 26、数字推动宫颈检查的认知研究
下一篇: 7、隧道场效应晶体管(TFET):原理、应用与挑战
人间清醒863
博客等级 码龄3年 33粉丝 1544原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值