ADC指令

ADC(带进位加法)指令将源操作数和进位标志位的值都与目的操作数相加。该指令格式与ADD指令一样,且操作数大小必须相同。

例如下述指令实现两个16位整数相加(FFFFH + 1000H),产生的和分别存入DX:AX

assume cs:code, ds:data, ss:stackdata segmentdb 256 dup(0)
data endsstack segment stackdb 128 dup(0)
stack endscode segmentstart: mov ax, stackmov ss, axmov sp, 128mov ax, 0FFFFH     ; 存放低16bitmov dx, 1000H      ;  高 16bitadd ax, 0FFFFHadc dx, 0        ; 结果 DX =  1001mov ax, 4C00Hint 21Hcode endsend start


例如下述指令实现两个8位整数相加(FFH + FFH),产生的和分别存入DL:AL

assume cs:code, ds:data, ss:stackdata segmentdb 256 dup(0)
data endsstack segment stackdb 128 dup(0)
stack endscode segmentstart: mov ax, stackmov ss, axmov sp, 128mov dl, 0mov al, 0FFHadd al, 0FFHadc dl, 0mov ax, 4C00Hint 21Hcode endsend start


总结:
add与adc的区别

add: ax, bx              ax = ax + bx
adc: ax, bx              ax = ax + bx + CF(进位标志位)

SBB指令

SBB(带借位减法)指令从目的操作数中减去源操作数和进位标志位的值。允许使用的操作数与ADC指令相同。

assume cs:code, ds:data, ss:stackdata segmentdb 256 dup(0)
data endsstack segment stackdb 128 dup(0)
stack endscode segmentstart: mov ax, stackmov ss, axmov sp, 128mov dx, 1000mov ax, 0005sub ax, 6    ; AX = FFFHsbb dx, 0    ; DX = 03E7H   AX = FFFHmov ax, 4C00Hint 21Hcode endsend start



add与adc的区别

sub: ax, bx              ax = ax - bx
sbb: ax, bx              ax = ax - bx - CF(进位标志位)

汇编语言 ADC指令和SBB指令相关推荐

  1. 汇编语言随笔(4)-数据段和栈段与mov,add,sub,div,mul、adc、sbb指令

    再次声明,默认采用小端法在内存中存储数据. 在8086PC中,定位一个内存地址需要由段地址和偏移地址一起来完成.注意:当编写指令想要读取某个内存单元中的数据时,需要对偏移地址加上中括号'[ ]'.表示 ...

  2. 【汇编】流程转移——标志寄存器(ZF—零标志、PF—奇偶标志、SF—符号标志、CF—进位标志、OF—溢出标志)、adc进位加法指令、sbb借位减法指令、cmp指令、DF标志、REP指令、std、cld

    11.1 标志寄存器 8086CPU中有14个寄存器,在历来文章中已经介绍过大部分,还有一个标志寄存器,在cpu中也担任着重要的位置. 在标志寄存器中是按位来起作用的,也就是说其中每一位的0和1都有着 ...

  3. 8086汇编语言寻址方式、基本指令和调试指令

    一.80x86/Pentium 各种寻址方式 1.立即寻址 立即寻址方式下,操作数作为立即数直接包含在指令中,紧跟在操作码之后与其一起 存放在代码段区域.因此,立即数总是和操作码一起被存入 CPU 的 ...

  4. 汇编语言之常见的汇编指令

    1.常见汇编指令 1. 传送指令(4个):mov.push.pop.lea. 2. 转移指令(8个):call.jmp.je.jne.jb.jnb.ja.jna. 3. 运算指令(7个):add.su ...

  5. 【汇编语言】通用数据处理指令——算术运算类指令

    通用数据处理指令--算术运算类指令 文章目录 通用数据处理指令--算术运算类指令 一.状态标志 1.进位标志CF(Carry Flag) 2.溢出标志OF(Overflow Flag) 3.零标志ZF ...

  6. 汇编语言笔记10-CALL和RET指令

    ☞模块化程序设计 模块化程序设计 汇编语言通过call和ret指令实现了模块化程序设计.可以实现多个相互联系.功能独立的子程序来解决一个复杂的问题. 子程序的框架 1 assume cs:code 2 ...

  7. [从零学习汇编语言] - BX寄存器与loop指令

    文章目录 前言 一. Bx寄存器与[偏移地址] 二. loop指令与jmp指令 1. jmp指令 2. loop指令 三. 一些奇奇怪怪的注意点 1. 汇编源程序的数字问题 2. Debug和Masm ...

  8. 浅谈neg+sbb指令

    neg指令:intel指令手册是这样说明的 IF DEST = 0 THEN CF <- 0; ELSE CF <- 1 就是说,当操作数为0时,cf标志为0,否则cf被置1.(这让我们联 ...

  9. NEG+SBB指令组合的用处

    计算机中数码的表示: 定义-> 正数:原码,反码,补码相同. 负数:原码为其对应正数原码最高符号位取反. 反码为其原码除符号位外都取反. 补码为其原码除符号位外取反加1. 所以最高位符号位都不变 ...

最新文章

  1. golang中并发sync和channel
  2. 【EventBus】EventBus 源码解析 ( EventBus 构建 | EventBus 单例获取 | EventBus 构造函数 | EventBus 构建者 )
  3. BZOJ 3224 普通平衡树 treap or vector
  4. php 注册自动登录,php – 创建第二个自动登录用户的登录页面
  5. 服务器zip解压php,服务器端解压缩zip的脚本
  6. python3中的 input函数_Python3中的input函数
  7. python logging简单使用
  8. 在Java eclipse 中Spring Boot工具安装步骤
  9. mask rcnn数据转换为tfrecord数据
  10. java给图片增加水印(图片水印,文字水印)
  11. CVE-2019-0708 微软补丁更新
  12. 破解"中国裁判文书网"App加密过程
  13. HCIA-Storage 存储工程师学习笔记——1. 存储技术趋势
  14. 五级自动驾驶分级_关于确保自动驾驶汽车安全的五件事
  15. Acwing算法—动态规划
  16. 北京理工大学计算机科学与技术培养方案,王全玉_北京理工大学计算机学院
  17. # imshow 报错
  18. MFC界面开发进入BCGControlBar v30.5时代,Gauge控件全新升级
  19. 墙都不扶就服你!javaredisson分布式锁
  20. 服装类APP开发解决痛点

热门文章

  1. (转) SolrCloud之分布式索引及与Zookeeper的集成
  2. sails的简单配置以及controller的使用
  3. delphi string.split 按照任意字符串分割语句
  4. excel自动生成目录
  5. 30张图 讲述真实的人性
  6. ibatis代码生成器
  7. 新元素之section,article,aside
  8. ASP.NET中如何搭建三层架构
  9. sql复杂查询语句总结
  10. 你真的会二分查找吗?