首页 > 编程语言 >汇编加法减法运算

汇编加法减法运算

时间:2023-09-02 21:01:40浏览次数:35  
标签:汇编 0000 -------------- 0100 1111 加法 减法 进位

加法

计算机知会位运算,那么二进制加法的结果在不考虑进位的情况下,与异或的结果相同。
4+5
0000 0100
0000 0101
--------------
0000 0001
那么怎么判断进位了,通过与运算,如果结果包含1则发生进位。
0000 0100
0000 0101
--------------
0000 0100
显然发生了进位,接着把结果左移动一位就是原来的进位,俩次结果又进行异或。
0000 0001
0000 1000
--------------
0000 1001
然后在进行与操作,判断进位。
0000 0001
0000 1000
--------------
0000 0000
没有发生进位,则0000 1001为结果9,否则重复上面操作。

减法
计算机只会做加法,那么4-5= 4+(-5),同样是进行异或操作然后进行与操作判断进位
0000 0100
1111 1011
--------------
1111 1111
判断进位
0000 0100
1111 1011
--------------
0000 0000
没有发生进位,则结果为 1

标签:汇编,0000,--------------,0100,1111,加法,减法,进位
From: https://www.cnblogs.com/theWait/p/17674186.html

相关文章

  • 1-8汇编语言程序上机调试
    COM_8255EQU0273H ;8255控制口PA_8255EQU0270HPB_8255EQU0271HPC_8255EQU0272H_STACKSEGMENTSTACKDW100DUP(?)_STACKENDSDATASEGMENTWORDPUBLIC'DATA'DATAENDSCODESEGMENTSTARTPROCNEARASSUMECS:CODE,DS:DATA,SS:_STACK......
  • 汇编调试命令debug的基本用法
      在学习16位汇编时,debug是常用的调试工具,但很多基本用法命令帮助中并未提及,经查验和实验,特记录如下:  一、基本概念:  1、参数分隔符  debug中参数之间的分隔符可用“空格”或“逗号”,效果一致,如:  -rax等于-r,ax  -d0100:00000010等于-d0100:0000,0010  2......
  • 解决MASM32代码汇编出错: error A2181: initializer must be a string or single item
    最近用MASM32编程更新SysInfo,增加对IPv6连接信息的收集,使用到了typedefstruct_MIB_TCP6ROW_OWNER_MODULE{UCHARucLocalAddr[16];DWORDdwLocalScopeId;DWORDdwLocalPort;UCHARucRemoteAddr[16];DWORDdwRemoteScopeI......
  • 学习IDA权威指南-反汇编器/调试器集成
    1-启动调试器依附进程进行调试分析2-调试器的基本显示3-进程控制3-1断点3-2跟踪3-3栈跟踪3-4监视调试器任务自动化调试器操作自动化IDA数据库与IDA调试器调试模糊代码启用附加进程简单的解密和解压循环导入表重建隐藏调试器异常处理......
  • 汇编语言编译环境搭建(MASM+NASM)
    (目录)一、Windows1.下载相关软件DOSBox官网:https://sourceforge.net/projects/dosbox/下载:DOSBox0.74-3-win32-installer.exeMASM5.0网上可以下载2.配置环境双击之后,修改配置文件:windowresolution=1024x768output=ddraw在DOSBox模拟器中挂载MASM5.0mountc:d......
  • 对数的本质是把乘除法降维成加减法
    最近看到这样一句话:“对数的本质就是降维,把乘法除法转化为加法和减法。”出于好奇,整理了本篇文章。对数和指数的概念对数在最简单的层面,对数解答以下问题:多少个既定的数相乘会等于另一个数?例子:多少个2相乘会等于8?答案:2×2×2=8,所以需要把3个2相乘来得到......
  • Hello Cuda(二)——向量加法
    #include<stdio.h>#include<stdlib.h>#include<cuda.h>#include<math.h>#include<cuda_runtime.h>#include<device_launch_parameters.h>typedeffloatFLOAT;doubleget_time();voidwarm_up();voidvec_add_host(FLOA......
  • 5.13 汇编语言:仿写For循环语句
    循环语句(for)是计算机编程中的一种基本控制结构,它允许程序按照指定的次数或范围重复执行一段代码块。for循环在处理需要进行迭代操作的情况下非常有用,它使得程序可以更加方便地控制循环的次数。一般来说,for循环由三个部分组成:初始化部分、条件表达式和更新部分,以及一个需要重复执行......
  • 5.14 汇编语言:仿写Switch选择结构
    选择结构,也称为switch语句,是计算机编程中的一种控制结构,用于根据表达式的值选择不同的执行路径。它允许程序根据表达式的值来决定执行哪个代码块,从而实现多分支选择逻辑。switch语句由一个表达式、多个case标签以及对应的代码块组成。程序会将表达式的值与每个case标签进行匹配,一......
  • 《Windows 汇编语言入门教程》 -- 系列教程
    5.12汇编语言:仿写While循环语句5.11汇编语言:仿写IF条件语句5.10汇编语言:汇编过程与结构5.9汇编语言:浮点数操作指令5.8汇编语言:汇编高效除法运算5.7汇编语言:汇编高效乘法运算5.6汇编语言:汇编高效数组寻址5.5汇编语言:函数调用约定5.4汇编语言:算数......