汇编原理 | 二进制、跳转指令、算数运算、

一.二进制

two complement reprentation(补码)

二进制的运算:

        6的二进制 = 0110

        -6的二进制 如何表示?

                四个bit的第一个bit表示符号:1负0正

        -6表示为1010

解释:

        0 = 0000

        1 = 0001

        -1 = 1111(由 1 + (-1) = 0 推的)

再往下推:

        -2 = 1110

        -3 = 1101

        -4 = 1100

        -5 = 1011

        -6 = 1010

更简单的方式找-6的二进制

        把6的每一位取反之后,再加1,得到结果

问:在32位电脑里01000001表示什么?不能单纯觉得是65这个数

        在32位bit时该怎么表示6?在前面加28个0

        在32位bit时该怎么表示-6?能直接在4位的情况下加28个0吗?不能,应该在前面加上28个1(很好想)

十六进制表达:

        0xffff ffff: 化为2进制:1111...1111共32个1 

        666(十进制) 化为二进制-> 000...(20个0) 0010(十进制里的2) 1001(十进制里的9) 1010(十进制里的a) 

                 化为十六进制->  0x 0000 029a

        -666(十进制) 化为二进制-> 111...(20个1) 1101 (十进制里的13/d) 0110(十进制里的6) 0110(十进制里的6)

                 化为十六进制-> 0x FFFF Fd66

 

二.跳转指令

转移指令有以下几类:

        无条件跳转指令(jmp)

        条件转移指令

        循环指令(loop)

        过程

        中断:cpu是跳来跳去的,不停的终端

j-Jump 跳转 

e-Equal 相等的时候发生跳转

z-Zero 相减得0时发生跳转

s-Sign 符号,当他是负的时候发生跳转   

c-Carry 如果发生借位会发生跳转     

l-Less、b-Below 当操作数1 < 操作数2 时发生跳转

a-Above、g-Greater 当操作数1 > 操作数2 时发生跳转 

p-Parity

o-Overflow

JE/JZ - jump if equal/zero

JNE/JNZ - jump if not equal/zero

JB/JNAE/JC - jump if below/not above equal/carry 低于/不高于等于/有借位

JNB/JAE/JNC - jump if not carry 不低于/高于等于/无借位

JP-jump if parity 奇偶位为1

JNP-jump if not parity 奇偶位不为1

JO- 结果溢出

JNO

JS-结果为负

JNS 

跳转原理:

        CMP 操作数1,操作数2

        操作数1 - 操作数2,不改变数值

        效果:改变状态标志位CF、SF、ZF、PF、OF、AF

        判断标志位情况

三、算数运算

立即数(Immediate Value) 是指一个固定的常量或者直接给定的数值,它通常用作计算指令中的一个参数。立即数是直接嵌入到指令中的,而不是存储在寄存器或内存中。例如,在一条加法指令中,立即数可能是要添加到操作数上的常量值。

操作数(Operand) c是指参与计算的数据或变量。在计算指令中,操作数可以是立即数、寄存器中存储的值、内存中的数据等。操作数可以是单个的,也可以是多个的,取决于具体的指令。例如,在一条加法指令中,操作数可以是两个要相加的值。


                         

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/670072.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[图解]建模相关的基础知识-01

6 00:00:21,930 --> 00:00:25,450 我们尝试以一个更深的 7 00:00:25,460 --> 00:00:27,170 或者更基本的角度 8 00:00:28,410 --> 00:00:32,760 来思考建模的问题 9 00:00:37,630 --> 00:00:42,470 首先&#xff0c;我们来说一个观点&#xff0c;就是说 10 00:…

WPS部分快捷操作汇总

记录一些个人常用的WPS快捷操作 一、去除文档中所有的超链接&#xff1a; 1、用WPS打开文档&#xff1b; 2、用Ctrla全选&#xff0c;或者点击上方的【选择】-【全选】&#xff0c;选中文档全部内容&#xff1b; 3、按CTRLSHIFTF9组合键&#xff0c;即可一次性将取文档中所有…

IDEA一键启动多个微服务

我们在做微服务项目开发的时候&#xff0c;每次刚打开IDEA&#xff0c;就需要把各个服务一个个依次启动&#xff0c;特别是服务比较多时&#xff0c;逐个点击不仅麻烦还费时。下面来说一下如何一键启动多个微服务。 操作步骤 点击Edit Configurations 2.点击“”&#xff0c;…

数据图同步软件ETL

ETL介绍 ETL&#xff08;Extract, Transform, Load&#xff09;软件是专门用于数据集成和数据仓库过程中的工具。ETL过程涉及从多个数据源提取数据&#xff0c;对数据进行转换以满足业务需求&#xff0c;然后将数据加载到目标数据库或数据仓库中。以下是ETL软件的一些关键功能…

matplotlib实现双柱图

1&#xff0c;读取txt文件实现数据可视化 2&#xff0c;txt文件如下图 姓名,语文,数学,英语 小米,98,100,20 小明,100,20,98 小黑,78,98,1003&#xff0c;代码如下 import matplotlib.pyplot as plt import matplotlib matplotlib.use(TkAgg) plt.rcParams[font.family]SimHe…

鸿蒙应用Stage模型【应用/组件级配置】

应用/组件级配置 在开发应用时&#xff0c;需要配置应用的一些标签&#xff0c;例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。 应用包名配置 应用需要在工程的AppScope目录下的[app.json5配置文件]中配置bundleName标签&#xff0c;…

多元分类预测 | 基于哈里斯鹰优化HHO-卷积神经网络数据分类预测

文章目录 效果一览文章概述订阅专栏只能获取一份代码部分源码参考资料效果一览 文章概述 多元分类预测 | 基于哈里斯鹰优化HHO-卷积神经网络数据分类预测 HHO-CNN 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程序可出分类…

设计模式(四)原型模式

文章目录 原型模式简介结构UML图具体实现关于拷贝浅拷贝深拷贝实现深拷贝方法 原型模式简介 原型模式是指&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型&#xff0c;创建新的对象。工作原理&#xff1a;原型模式创建新的对象&#xff0c;其本质就…

iOS App Tech Support(URL)

咪萌是一个语音类交友直播App&#xff0c;分成红艳知己&#xff0c;点唱大厅&#xff0c;歌手驻唱等不同房间分类&#xff0c;广场可以看到其他人发的一些动态&#xff0c;一个非常不错的App 如果您有任何疑问&#xff0c;您可以留言或者将问题发送至我们的邮箱。 我们会第一时…

子比主题zibll5.7修复版

下载地址&#xff1a;子比主题zibll5.7修复版

GPT-4o VS GPT-3.5 完胜

前言&#xff1a; 最近&#xff0c;GPT-4o已经限时免费开放了&#xff0c;试了一下&#xff0c;然后&#xff0c;说我的时间到了&#xff0c;然后&#xff0c;有给我转到3.5&#xff0c;正好遇到一个问题做一下对吧&#xff0c;感觉4O完胜啊。3.5还是很好胡诌&#xff0c;也就…

C语言深入理解指针(5)

文章目录 一、sizeof和strlen的对比1、sizeof2、strlen3、sizeof和strlen的对比 二、数组和指针笔试题解析1、一维数组2、字符数组3、二维数组 一、sizeof和strlen的对比 1、sizeof siezeof是一个操作符&#xff0c;sizeof计算的是变量所占内存空间大小&#xff0c;单位是字节…

Photoshop 首选项设置建议

Windows Ps菜单&#xff1a;编辑/首选项 Edit/Preferences 快捷键&#xff1a;Ctrl K macOS Ps菜单&#xff1a;Photoshop/首选项 Photoshop/Preferences 快捷键&#xff1a;Cmd K 对 Photoshop 的首选项 Preferences进行设置&#xff0c;可以提高修图与设计效率。下面是一些…

Android 使用kotlin Retrofit2 + Dagger2完成网络请求跟依赖注入组合使用

文章目录 &#xff08;一&#xff09;引入依赖&#xff08;二&#xff09;基本概念Dagger中的基本概念&#xff1a;Retrofit介绍 &#xff08;三&#xff09;Dagger2 Module 和 Provides 和 Component Inject&#xff08;四&#xff09;Retrofit2 创建数据类Bean跟Service服务&…

GIt快速入门(一文学会使用Git)

GIt快速入门 文章目录 GIt快速入门一、为什么要学习Git二、Git的安装1.安装Git2.下载GUI 三、Git的概念1、版本控制2、集中式控制3、分布式控制4、多人协作开发1.并行开发2.分支管理3.冲突解决4.代码审查5.分布式特性 四、Git客户端操作1.界面介绍2.提交操作3.创建分支4.合并分…

网络I/O模型

网络I/O模型 同步I/O阻塞I/O非阻塞I/OI/O多路复用select函数接口示例 poll函数接口示例 poll 和 select 的区别epoll原理&#xff1a;示例 异步I/O 同步I/O 阻塞I/O 一个基本的C/S模型如下图所图&#xff1a;其中 listen()、connect()、write()、read() 都是阻塞I/O&#xff0…

Java面试题:Redis2_解决Redis缓存击穿问题

缓存击穿 当一个key过期时,需要对这个key进行数据重建 在重建的时间内如果有大量的并发请求进入,就会绕过缓存进入数据库,会瞬间击垮DB 重建时间可能因为数据是多个表的混合结果需要分头统计而延长,从而更容易出现缓存击穿问题 缓存击穿的解决方案 添加互斥锁 先查询缓存…

电商商城管理系统

前言&#x1f440;~ 将近一个月没更新了&#xff0c;最近忙着学校的大作业&#xff0c;一个是微信小程序的、一个是互联网编程的&#xff0c;也是忙完了这个大作业&#xff0c;这个大作业前端使用了vue、后端使用了java&#xff0c;接下来展示一些效果图&#xff0c;如果有需要…

2024 第三届 AIGC 中国开发者大会:多模态大模型的发展与趋势

引言 在2024年第三届AIGC中国开发者大会上&#xff0c;零一万物联合创始人潘欣分享了多模态大模型的发展与趋势。潘欣对多模态大模型的历史、现状和未来进行了详细回顾和深刻思考&#xff0c;为我们揭示了该领域的发展路径和技术前景。本文将详细解读潘欣的分享内容&#xff0…

如何搜索[仅有1个文件]或[指定个数范围、名称、类型文件等复杂情况]的文件夹

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 打开工具&#xff0c;切换到批量复制板块&#xff0c;用Ctrl5可以快速切换 然后鼠标移动到工具的贴边的右侧&#xff0c;不是移出工具外面&#xff0c;还在…