1610_PC汇编语言_整形的表达

news2024/11/18 22:47:53

         全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com)

         前面对于汇编有了一个基本的了解,这一章节主要是看一下汇编视角下的数据表达以及计算方式。

1. 整形会有有符号和无符号两种,一般都是用最高位作为符号位。

2. 如果简单使用一个符号位和剩下的位组合成为一个有符号数,0会有2种表达。0本来不应该有正负,且只有一个数值。因此,为了处理这样的问题会增加CPU逻辑的复杂度。

1. 上面的表达方式带来的另一个问题是正负数的相加需要转换成减法来处理,这也会增加CPU逻辑的复杂度。

2. 另一种表达方式是采用补码处理的方式来进行相关的运算,相比之前的一种方法,在计算正负数的处理上有了改进,但是依然存在正负0的问题。

3. 第二种补码方式我其实是熟悉的,大学时候的教科书中的设计其实就是这个。这也是现代计算机中采用的方式,补码加1。

1. 采用第二种补码的方式,最大的改进点就是2种0的方式只剩下了一种。

2. 汇编语言,或者说CPU,处理的数据对象究竟是有符号的还是无符号的,这个由指令决定。归根结底,是由写代码的程序员来定。

         这一页讲到的size的扩展,可以类比C语言中的数据类型转换来理解。

         如果size减少,处理比较简单,一般来说就是直接截断。如果是扩充,相对来说就复杂一些。好的是CPU增加了一些这方面的指令,简化了软件操作。从这一页的描述能看到,有些处理所用的寄存器是固定的。

         这个问题之前的确是没有关注到,为什么fgetc返回的会是int?很重要的一点就是为了兼容EOF的判断。因此,第二个程序可能会有误判的问题。

         如果字符类型是无符号的,可能会导致死循环。如果字符是有符号的,那么可能会提前中断。

         这一页介绍了一些算法的具体实现,这部分信息不去仔细看了,我觉得比较合适的方式还是在实战中品味理解。

         继续往后会是代码的调试与理解,这部分我觉得单独分离出来整理更好一些。这次的小结暂且到此结束。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快上车,程序狗好用的奇淫技巧

文章目录前言🍊缘由⏲️本文阅读时长🎯主要目标正文🧙‍♂️1.魔术橡皮擦🐕2.狗屁不通文章生成器🥞3.easypdf🥽4.Md2All🌮5.CSDN开发助手👨‍💻6.猿如意🧩7.P…

Three.js 初阶基础篇(二)

系列文章目录 我今天又来了更新了!!!今天主要还是回顾一下昨天的一内容,在昨天的基础上又重新梳理了一下,创建动态3D正方体的流程!!!!!! 文章目录…

VMware虚拟机安装Linux教程

一、centos7下载 1、centos7的下载 官网下载地址: https://www.centos.org/download/ 2、点击x86_64 二、虚拟机下载与安装 1、VMware虚拟机下载 官网地址: https://www.vmware.com/cn/products/workstation-player.html 打开下载好的.exe文件 安装位置默认在 C 盘下…

【JavaSE】运算符

运算符BIT-3 运算符1. 什么是运算符2. 算数运算符2.1 基本四则运算符2.2 增量运算符2.3 自增/自减运算符3. 关系运算符4. 逻辑运算符(重点)4.1 逻辑与&&4.2 逻辑或||4.3 逻辑非!4.4 短路求值5. 位运算符5.1 按位与&5.2 按位或|5.…

【借助pf4j实现基于spring-boot的插件化开发

借助pf4j实现基于spring-boot的插件化开发背景场景项目地址&结构Demo运行背景 Jenkins、SonarQube等Java实现的Web应用都有插件体系,一般来说都是先从插件市场下载一个插件,然后系统要求重启(某些功能可以不用重启),插件功能就能在页面上…

SRM-供应商管理系统搭建指南

1、简介1.1、案例简介本文将介绍,如何搭建SRM-供应商管理。1.2、应用场景供应商可注册、提交、修改自己的基本信息及工商信息,上传资质档案、管理产品及样品信息;企业对供应商是否成为合格供应商或淘汰供应商进行准入流程的审批。2、设置方法…

软件设计(四)--MTBF、MTTF、MTTR

软件设计(三)https://blog.csdn.net/ke1ying/article/details/128808681 31、结构化开发中,过程设计 主要包含对数据结构和算法的设计。 体系结构设计:定义软件的主要结构元素及其关系。 数据设计:基于实体联系图&a…

高压放大器在多波长干涉相位同步解调方法研究中的应用

实验名称:基于激光相位分立调制的多波长干涉相位同步解调方法研究 研究方向:激光测量 测试目的: 在长度测量中,绝对距离测量(ADM)可实现高精度、大范围和瞬时距离测量,与相对位移测量&#xff0…

Dynamsoft Barcode Reader 9.6.1 for NET Crack

Dynamsoft Barcode Reader以每分钟 500 的速度扫描条码 Dynamsoft Barcode Reader具有灵活 API 的强大条码扫描器 SDK Dynamsoft Barcode Reader无论它是模糊的、扭曲的、黑暗的、遥远的还是移动的,我们都可以扫描它。快速地。 业界最快扫描解码,适用于…

一次线上超时问题,看Ribbon 超时机制

一、线上问题 项目上线后,一段时间内运行都没有问题,突然运营人员说,某个接口一直失败。遂查看线上日志: spring-cloud-openfeign 通过服务名调用的,服务发现没有找到可用服务实例?这是第一反应&#xff0…

如何添加PDF书签?学会这三种方法

随着PDF文档和书籍已经成为我们工作和生活中不可或缺的一部分,许多PDF书签制作器和编辑器应运而生。了解使用 Windows、Mac 兼容或在线软件免费将书签添加到 PDF的多种方法。 什么是 PDF 书签? PDF 文件中的书签与印刷书籍中的纸质或织物书签的工作方式…

1609_PC汇编语言_汇编简介以及first例程后续

全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 看了一下,当前看的这个章节还剩下几页没有看完。看完之后,做一个简单的整理。 在上一篇笔记中我提到了关于DJGPP的疑惑,也自己找…

RocketMQ源码-NameServer架构设计及启动流程

本文我们来分析NameServer相关代码,在正式分析源码前,我们先来回忆下NameServer的功能: NameServer是一个非常简单的Topic路由注册中心,其角色类似Dubbo中的zookeeper,支持Broker的动态注册与发现。主要包括两个功能&…

【每日阅读】前端进阶知识点1

如何更改网页中语言属性值 声明当前语言类 html标签更改属性值 lang属性中不区分大小写 en-us en-US 一致 具体可使用 window,document.querySelector(“html”)?.setAttribute(“lang”,newValue); qs库 qs是一个流行的查询参数序列化和解析库。可以将一个普通的object序列…

09_FreeRTOS任务调度器

目录 开启任务调度器vTaskStartScheduler函数 xPortStartScheduler开启任务调度器函数 启动第一个任务 prvStartFirstTask开启第一个任务函数 vPortSVCHandler SVC中断服务函数 出栈/压栈汇编指令详解 开启任务调度器vTaskStartScheduler函数 作用:用于启动任务调度器,…

LaoCat带你认识容器与镜像(实践篇一上)

实践篇主要以各容器的挂载和附加命令为主。 本章内容 Dockerfile基础命令详解。 本文实操全部基于Ubuntu 20.04 宿主机 > linux服务器本身 Docker > 20.10.22 从该章开始,我们就进入了Docker实践篇系列了,主要介绍Docker相关附加命令,…

Python中的字符串多样的操作方法

文章目录1.字符串中大小写字母的转变2.字符串的左右中对齐3.字符串查找的方法4.字符串的替换5. 字符串的判断6.字符串的截取7.字符串的拆分8.字符串的拼接9.格式化字符串10.格式化字符串的语法10.12.1 对齐选项([align])10.2 填充选项([fill]…

切入点(pointcut)的申明规则

Spring AOP 用户可能会经常使用 execution切入点指示符。执行表达式的格式如下:execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)ret-type-p…

HandlerInterceptorAdapter拦截器多个拦截器时执行的顺序

前提:拦截器加载顺序是 1 2 3.Configuration public class InterceptorConfig implements WebMvcConfigurer {Autowiredprivate Test1neInterceptor test1neInterceptor;Autowiredprivate Test2neInterceptor test2neInterceptor;Overridepublic void addIntercepto…

【Android -- 开源库】权限适配 RxPermissions 的基本使用

运行时权限 从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。 系统权限分为两类: 正常权限:只需在你应用的 Androidmanifest.xml 中列出,安装时…