美文网首页
8086汇编(34)adc指令

8086汇编(34)adc指令

作者: 迷心迷 | 来源:发表于2019-04-04 18:04 被阅读0次

adc指令

adc是带进位加法指令,它利用了CF位上记录的进位值。

指令格式: adc 操作对象1,操作对象2

功能:操作对象1 = 操作对象1 + 操作对象2 + CF

例如指令 adc ax,bx实现的功能是: (ax)=(ax)+(bx)+CF

例如:

mov ax,2
mov bx,1
sub bx,ax
adc ax,1

执行后,(ax)=4。adc执行时,相当于计算: (ax)+1+CF = 2+1+1 = 4。

mov ax,1
add ax,ax
adc ax,3

执行后,(ax)=5。adc执行时,相当于计算: (ax)+3+CF=2+3+0=5。

mov al,98H
add al,al
adc al,3

执行后,(al)=34H。adc执行时,相当于计算: (al)+3+CF=30H+3+1=34H。

adc指令的意义:

加法可以分两步来进行:1)低位相加;2)高位相加再加上地位相加产生的进位值

下面的指令和add ax,bx具有相同的结果:

add al,bl
adc ah,bh

所以CPU提供adc指令的目的,就是来进行加法的第二步运算的。adc指令和add指令相配合就可以对更大的数据进行加法运算。

编程计算1EF000H+201000H,结果放在ax(高16位)和bx(低16位)中。

mov ax, 001EH
mov bx,0F000H
add bx,1000H
adc ax,0020H

编程计算1EF0001000H + 2010001EF0H, 结果放在ax(最高16位),bx(次高16位),cx(低16位)中。

mov ax, 001EH
mov bx, 0F000H
mov cx, 1000H
add cx,  1EF0H
adc bx,  1000H
adc ax,   0020H

编写子程序,对两个128位数据进行相加

名称:add128

功能:两个128位数据进行相加

参数:ds:si指向存储第一个数的内存空间,因数据为128,所以需要8个字单元,由低地址单元到高地址单元依次存放128位数据由低到到高的每个字。运算结果存储在第一个数的存储空间中。

ds:di指向存储第二个数的内存空间。

add128:
            push ax
            push cx
            push si
            push di

            sub ax,ax               ;将CF设置为0

            mov cx,8
 
s:   
            mov ax,[si]
            adc ax,[di]
            mov [si],ax
            inc si
            inc si
            inc di
            inc di
            loop  s

            pop di
            pop si
            pop cx
            pop ax
            ret
  • 注意:inc和loop指令不影响CF为,但是add指令会影响CF为,所以

inc si

inc si

不能换成

add si,2

相关文章

  • 8086汇编(34)adc指令

    adc指令 adc是带进位加法指令,它利用了CF位上记录的进位值。 指令格式: adc 操作对象1,操作对象2 功...

  • 在Mac上学习汇编-8086微处理器

    最近在学习王爽的《汇编语言》,里面的实验环境是用8086CPU的DOS来学习机器指令和汇编指令。如果用mac的话,...

  • 汇编语言 学习笔记 (二)

    汇编语言学习笔记 三、8086基本指令 数据传送指令 通用数据传送指令 1. MOV传送指令 a. 对标志位无影响...

  • 8086汇编(22)转移指令

    转移指令 1、可以修改IP,或同时修改CS和IP的指令统称为转移指令。 8086CPU的转移行为有以下几类。 只修...

  • 8086汇编(35)sbb指令

    sbb指令 sbb是带借位减法指令,它利用了CF位上记录的借位值。 指令格式:sbb 操作对象1,操作对象2 功能...

  • 8086汇编(36)cmp指令

    cmp指令 cmp是比较指令,cmp的功能相当于减法指令,只是不保存结果。cmp指令执行后,将对标志寄存器产生影响...

  • 8086汇编(42)int指令

    int指令 int指令的格式为:int n,n为中断类型码,它的功能是引发中断过程。 CPU执行int n指令,相...

  • AT&T汇编-函数实例

    AT&T 基于x86架构处理器汇编指令一般有2种格式:Intel汇编和AT&T汇编,通过对8086汇编的学习包括对...

  • 8086 指令系统寻址方式

    整理汇编语言学习笔记,回顾一下8086 指令系统的寻址方式。 寻址与指令 寻址方式(Addressing Mode...

  • 汇编分析&编译器优化

    汇编的种类 8086汇编(8086处理器是16bit的CPU) Win32汇编 Win64汇编 ARM汇编(嵌入式...

网友评论

      本文标题:8086汇编(34)adc指令

      本文链接:https://www.haomeiwen.com/subject/myvqiqtx.html