汇编语言-sub指令 到底会不会转成加法算,还是在机器中算减法

问题描述

sub指令 到底会不会转成加法算,还是在机器中算减法

困惑求解答,为了减法运算,机器中都用补码表示数了,那为什么还用减法的指令。
如此题:SUB?AL,BL.AL=80H,BL=80H。在机器中是怎么算的?直接减还是再变成补码然后算加法。
溢出标志和进位标志是什么?

解决方案

当然不会。在计算机中,有sub指令。当然不会被编译器转换为add。
但是现代cpu内部,使用了微指令编程,不排除在某些cpu内部,加法指令和减法指令公用了相同的晶体管电路。

解决方案二:

一般的芯片都有加法指令,对应着芯片内部一个组合逻辑电路组成的加法器(数字电子技术里面学过的)。如果该芯片没有减法指令,会采用补码技术将减法转换成加法进行运算(C语言的编译过程。如果是汇编程序,因为没有减法指令,也不会出现机器自动转化的动作)

如果有减法指令,则还有一个减法电路。这时候一般不会用补码技术将减法转换成加法操作。

单片机内部的运算指令运行机制,可以理解为:读取指令后,通过译码器选通相应的运算电路(组合逻辑)获得运算结果。每条运算指令都有对应的内部运算电路。

时间: 2024-09-12 21:56:48

汇编语言-sub指令 到底会不会转成加法算,还是在机器中算减法的相关文章

对于百度的Domain指令到底可不可信

Domain相信做SEO的朋友们都不陌生,它是百度专门的一个指令,现在比较普遍的叫法叫百度外链,个人认为不然.其实更为准确的说应该是百度相关域.其实让大家纠结的是这个指令到底可不可信,下面就来谈谈个人看法. 一.实例分析Domain其实很扯淡; 既然叫百度外链,那么意思就是出现在这个结果里的网站权重越高越好越多越好,那么结果是不是这样子的呢?我们可以看一个域名www. sina1 .com,可以百度Domain一下,出现的结果肯定会吓你一跳,一万一千个外链,大家从图片中看出来了都是一些什么网址,

汇编语言第4周学生总结反馈

汇编语言程序设计课到第4周.这周的课后总结中,让同学们写下"我的疑惑".这倒好,真引出了一大堆好问题,其实,这也就是大家学习的最真实情况. 为同学们的解答公布如下.下一周,老贺不做这种一对多的事情了,我们开启互评模式,靠同学们的多对多,完成更有意义的深入交流. 学号 学生小结 老师点评 (14)1147 我得到的知识: loop指令和[bx]指令的运用及其相关的内容,还有源程序文件.目标文件和可执行文件的相互转换.我得到的技能: 用editplus去编写源程序,使用masm进行编译.我

《机器人编程实战》一一1.2 给机器人指令

1.2 给机器人指令 如果我们希望一个机器人在某个场景中扮演某个角色,我们如何告诉它该做什么?我们如何给它指令?机器人编程会回答这些问题,其过程充满了冒险.挑战.奇迹.担忧和可能的遗憾.人类使用自然语言.手势.肢体语言和面部表情沟通:而机器人是机器,只能理解微控制器的机器语言.难点就在于此:我们说话和交流是一种方式,而机器人沟通是另一种方式,我们目前还不知如何创造能够理解人类语言和行为并与人类直接交流的机器人.因此,即使我们拥有一个机器人,它具有传感器.末端作用器以及按照我们要求做事的能力,但我

新手必看-汇编语言超浓缩教程

" 哎哟,哥们儿,还捣鼓汇编呢?那东西没用,兄弟用VB"钓"一个API就够你忙活个十天半月的,还不一定搞出来."此君之言倒也不虚,那吾等还有无必要研他一究呢?(废话,当然有啦!要不然你写这篇文章干嘛.)别急,别急,让我把这个中原委慢慢道来:一.所有电脑语言写出的程序运行时在内存中都以机器码方式存储,机器码可以被比较准确的翻译成汇编语言,这是因为汇编语言兼容性最好,故几乎所有跟踪.调试工具(包括WIN95/98下)都是以汇编示人的,如果阁下对CRACK颇感兴趣--:二

汇编指令与机器码的相互转换

机器语言我们只要重点理解一下几个概念: 1. 机器语言指令有操作码(OP)和地址码两部分组成 |_____________OP_______________|__d__|__w__| |_____________OP_______________|__s__|__w__| <--此格式用于立即寻址方式 在多数操作码中,常使用某些位来指示某些信息: 如图上结构里的: w=1 时 对字来操作 w=0 时 对字节来操作 d值在双操作数指令中才有效 当 d=1 时 有且只有一个寄存器用于目的操作数 d=

汇编语言学习指南(三)

"汇编语言"作为一门语言,对应于高级语言的编译器,我们需要一个"汇编器"来把汇编语言原文件汇编成机器可执行的代码.高级的汇编器如MASM, TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化.抽象等.在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言.现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处.汇编语言的长处在于编写高效且需要对机器硬件精确控制的程

汇编语言学习指南(一)

汇编语言和CPU以及内存,端口等硬件知识是连在一起的. 这也是为什么汇编语言没有通用性的原因. 下面简单讲讲基本知识(针对INTEL x86及其兼容机)============================x86汇编语言的指令,其操作对象是CPU上的寄存器,系统内存,或者立即数. 有些指令表面上没有操作数, 或者看上去缺少操作数, 其实该指令有内定的操作对象, 比如push指令, 一定是对SS:ESP指定的内存操作, 而cdq的操作对象一定是eax / edx. 在汇编语言中,寄存器用名字来访

《操作系统真象还原》——0.24 如何控制CPU的下一条指令

0.24 如何控制CPU的下一条指令 其实此问题我一直犹豫要不要写出来,因为大部人都觉得这个问题有些匪夷所思,CPU是负责执行指令的,它会按照程序的执行流程走,此问题的目的其实就是想知道如何牵着CPU的鼻子走.当初我被问这个问题时也觉得很诧异,甚至我觉得自己可能没理解人家的意思.后来他这样跟我说:"CPU要执行的下一条指令是在CS:IP寄存器吧?"我说:"是啊".他又问:"CS和IP寄存器,是用mov指令修改的吗?"我听后,顿时觉得他这个问题很有

Android ARM常用的汇编指令合集

               ARM   处理器的指令集可以分为 跳转指令.数据处理指令.程序状态寄存器(PSR)处理指令.加载/存储指令.协处理器指令和异常产生指令  六大指令,这里把其它几个指令一起发了出来,可以查看具体的目录,请点击头部左上角 一.跳转指令 跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流程的跳转.Ⅰ.使用专门的跳转指令: Ⅱ.直接向程序计数器PC写入跳转地址值,通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前