二进制加减法编程

article/2025/9/13 22:32:59

1、二进制加法基本指令

1ADD指令

格式:ADD DSTSRC

该指令把源操作数(SRC)指向的数据与目的操作数(DST)相加后,将结果放到目的操作数(DST)中,所执行的操作:(DST)ß(SRC)+(DST)

SRCDST不能同时为存储器操作数和段寄存器,同时SRCDST的数据类型要匹配,要同是字节或字。受影响的标志位有:OFSFZFAFPFCF

2ADC指令

格式:ADC DSTSRC

所执行的操作:(DST)ß(SRC)+(DST)CF     了解清楚进位是怎样加的

该指令把两个操作数(SRCDST)相加以后,再加上进位标志CF,将结果放到目的操作数(DST)中。受影响的标志位有:OFSFZFAFPFCFADC指令多用于多精度数据相加。

2、二进制减法基本指令

1SUB指令

格式:SUB DSTSRC

所执行的操作:(DST)ß (DST)(SRC)

该指令把源操作数(SRC)指向的数据与目的操作数(DST)相减后,将结果放到目的操作数(DST)中,SRCDST不能同时为存储器操作数和段寄存器(,同时SRCDST的数据类型要匹配,要同是字节或字。受影响的标志位有:OFSFZFAFPFCF

2SBB指令

格式:SBB DSTSRC

(DST)ß (DST)(SRC)CF     了解清楚进位是怎样减的

该指令把两个操作数(SRCDST)相减以后,再减去CF,将结果放到目的操作数(DST)中。受影响的标志位有:OFSFZFAFPFCFSBB指令多用于多精度数据相加。

 


例:

1)编写程序,实现长度为2字的两个多精度数相减。

2)编写程序,实现一个长度为3字的多精度数和一个长度为2字的多精度数相加减。

ch2ex1

、源代码

DATA SEGMENT

DATA1 DW 8953H,9B95H      ;表示数据9B958953h

DATA2 DW     1211H,2134H    ;表示数据21341211h

RESULT DW     2 DUP(?)         ;存放多字节相减的结果

DATA ENDS

 

CODE SEGMENT

  ASSUME CS:CODE,DS:DATA

START:

    MOV AX,DATA

    MOV DS,AX

    MOV AX,DATA1

    MOV DX,DATA1+2

    SUB AX,DATA2          低字部分相减

    SBB DX,DATA2+2       ;高字部分带进位相减

    MOV RESULT,AX       ;存放低字部分相减结果

    MOV RESULT+2,DX       ;存放高字部分相减结果

CODE ENDS

  END START

二、 汇编结果

低位相加:7742AX),高位相加:7A61DX

 

ch2ex2

二、源代码

DATA SEGMENT

DATA1 DW 5311H,8A13H,2122H   表示数据21228A135311H

DATA2 DW     4783H,9526H       ;表示数据95264783H

RESULT DW     2 DUP(?)      ;存放多字节相加结果

DATA ENDS

 

CODE SEGMENT

  ASSUME CS:CODE,DS:DATA

START:

 

    MOV AX,DATA

    MOV DS,AX

    MOV AX,DATA1

    MOV DX,DATA1+2

    MOV BX,DATA1+4

    ADD AX,DATA2      ;低字部分相加

    ADC DX,DATA2+2     ;次高字部分带进位相加

    ADC BX,DATA2+4     ;高字部分带进位相加

 

    MOV RESULT,AX       ;存放低字部分相加结果

    MOV RESULT+2,DX    ;存放次高字部分相加结果

    MOV RESULT+4,BX      ;存放高字部分相加结果

    

CODE ENDS

  END START

三、汇编结果

  低位相加:AX9A94) 次高位相加:DX1F39)  高位相加:BX2123

 

ch2ex3

、源代码

DATA SEGMENT

DATA1 DW 5795H,8A89H,2122H    ;表示数据21228A895795H

DATA2 DW     4783H,7822H          ;表示数据78224783H

RESULT DW     2 DUP(?)            ;存放多字节相减结果

DATA ENDS 

CODE SEGMENT

  ASSUME CS:CODE,DS:DATA

START:

 

    MOV AX,DATA

    MOV DS,AX

    MOV AX,DATA1

    MOV DX,DATA1+2

    MOV BX,DATA1+4

    SUB AX,DATA2       ;低字部分相减

    SBB DX,DATA2+2       ;次高字部分带进位相减

    SBB BX,DATA2+4      ;高字部分带进位相减  

    MOV RESULT,AX       ;存放低字部分相减结果

    MOV RESULT+2,DX    ;存放次高字部分带进位相减结果

    MOV RESULT+4,BX     ;存放高字部分相减结果

    

CODE ENDS

  END START

一、 汇编结果

  低位相减:AX1012)次高位相减:DX1267) 高位相减:BX2122

而进行hi 


http://chatgpt.dhexx.cn/article/VIJNJ3IN.shtml

相关文章

二进制乘除法运算原理

二进制乘除法原理 计算机所能完成的最基本操作是加减法和左右移。 虽然ISA中一般都有MUL类指令,但是这些经过译码之后最终的元操作还是加法和移位指令。 二进制乘法 假设不能使用乘除运算求ab的结果,当ab123时,最直接的方法是通过88个88相…

二进制加法计算

读计算机原理这本书的的时候涉及到二进制数的加法,个人做个直观的记录,防止遗忘。 计算时,先把两个二进制数对齐(如同十进制一样, 从右向左)11为10,此时向上一位进1,0写在本位(如同十…

二进制加减乘除

最重要的,理解十进制的借位和进位.十进制中,由于一个循环是10,所以借1位,就相当于从高位借过来10,也就是常说的借1当10,同时,高位需要减去10(外在体现上是减去1,因为高位已经在高位了).反过来,进1,就等于高位加上10,但因为高位已经在高位了,所以去掉位数考虑,高位实际是加1,也就…

二进制加法

计算机中二进制相关运算 有符号二进制与无符号二进制数之间的区别有符号二进制加法运算讨论关于有符号二进制数算术的溢出问题(重点)无符号二进制运算 有符号二进制与无符号二进制数之间的区别 对于一个有符号二进制数来讲,最高位是该数的符…

二进制加减法计算

二进制加减法:原码、反码、补码 1.十进制下的计算1.模数2.补数 2.二进制数的存储1.计算机计数2.原码3.反码4.补码 3.二进制计算1.中位对称2.循环进位3.二进制减法推算4.结论 1.十进制下的计算 1.模数 假设下文【模】定义如下:某个可度量系统的度量范围…

二进制数的运算方法

1.二进制数的算术运算 二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。 (1)二进制数的加法 根据“逢二进一”规则,二进制数加法的法则为:0+0=00&…

简单计算二进制的加减法

二进制就是计算机技术中广泛采用的一种数制,由(0,1)组成。你可以广泛的认为,每一个 0,1 都(存储在)对应着一个比特位(bit),而由这些由例如:010010…

二进制的加减乘除法全了看一下叭

看这里~ 前言一、二进制加法二、二进制减法三、二进制乘法四、二进制除法总结 前言 最近在学习通信网络中的CRC算法,所以积累一下二进制的各种算法,如果对您有用,记得点个赞喔!谢谢啦。 一、二进制加法 对于二进制加法和十进制的…

二进制加,减法,23个位运算技巧

二进制加,减法 二进制最高位为1时表示负数,为0时表示正数。 **原码:**一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。 举例说明:       int类型的 …

二进制的加减法_二进制加减法

二进制的加减法 1)二进制加法 (1) Binary Addition) Since binary numbers consist of only two digits 0 and 1, so their addition is different from decimal addition. Addition of binary numbers can be done following certain rules: 由于二进制数仅由两位数字0和1组成…

补码二进制减法计算

二进制减法计算 -1 - 1 二进制表示为 -1 1 -2 补码1111 ... 1110 原码1000 ... 0010 如果是5 - 3 如果-12 如果Int_min - 1 127 此处是在Int的范围,所以在环内-1到了127 如果不在int范围中,在二进制中,结果就是-(int_min1)…

二进制减法图解

写在前面 二进制减法类似于十进制的减法,我们根据小学学过的十进制的减法来推出二进制减法如何进行运算。 十进制减法 例如74323-4756226761的运算。灰色部分为计算过程,绿色字为被减一得到的数,红色字为借一后得到的数。 在运算过程中&…

DenseNet简介

论文传送门:https://arxiv.org/pdf/1608.06993.pdf CNN模型的发展十分火热,自LeNet提出以来,涌现了一批优秀的CNN模型。 LeNet是CNN的开山之作,标志着CNN真正的提出。2012年AlexNet夺得ILSVRC2012的冠军,深度学习大火…

图像分类算法DenseNet论文解读

论文名称:Densely Connected Convolutional Networks 论文地址:https://arxiv.org/pdf/1608.06993.pdf 如果说ResNet扩展了网络的深度,GoogLeNet扩展了网络的宽度,那么DenseNet就是利用特征图的重用。 一、论文解读 1、DenseNet…

DenseNet论文笔记

DenseNet论文笔记 Densely Connected Convolutional Networks Introduction中引用了Deep networks with stochastic depth,提到了resnet里很多层都学不到东西,贡献很少可以随机丢掉,解释了InceptionV4里的Scaling of the Residuals操作,Ince…

DenseNet解析

1 前言 在计算机视觉领域,卷积神经网络(CNN)已经成为最主流的方法,比如最近的GoogLenet,VGG-19,Incepetion等模型。CNN史上的一个里程碑事件是ResNet模型的出现,ResNet可以训练出更深的CNN模型…

denseNet 详解

CNN网络架构演进:从LeNet到DenseNet - Madcola - 博客园 (cnblogs.com) 1、解决梯度消失问题 2、特征图相应变少

DenseNet详述

简介 从2012年AlexNet大展身手以来,卷积神经网络经历了(LeNet、)AlexNet、ZFNet、VGGNet、GoogLeNet(借鉴Network in Network)、ResNet、DenseNet的大致发展路线。其实,自从ResNet提出之后,Res…

DenseNet

paper: Densely Connected Convolutional Networks Memory-Efficient Implementation of DenseNets code: https://github.com/pytorch/vision/blob/main/torchvision/models/densenet.py 在本篇文章中,作者提出了Dense Convolutional Network (DenseNet)&…

详解DenseNet(密集连接的卷积网络)

前言 在计算机视觉领域,卷积神经网络(CNN)已经成为最主流的方法,比如最近的GoogLenet,VGG-19,Incepetion等模型。CNN史上的一个里程碑事件是ResNet模型的出现,ResNet可以训练出更深的CNN模型&a…