汇编语言中的大数据加法

来源:互联网 发布:网络诈骗类型有哪些 编辑:程序博客网 时间:2024/05/16 07:03

在8086CPU中一切数据寄存器都是16位的,在其中需要实现大于16位的加法运算时,就需要拆开计算

先简述一下步骤:

1、首先是将一个大数据拆成多个16位的数据,比如说是48B5A2EF001H,可以拆成048BH,5A2EH,F001H

2、最低位的16位数先进行add运算:add 相加的第一个数的低16位(寄存器),相加的第二个数的低16位

3、用adc指令对之后的每16位进行运算:adc 相加的第一个数的16位(寄存器),相加的第二个数的16位

比如说要将48B5A2EF001H + 21654F54BDF4H

先拆:048BH,5A2EH,F001H

            2165H,4F54H, BDF4H

assume cs:codecode segmentstart:mov ax, 048BHmov bx, 5A2EHmov cx, 0F001Hadd cx, 0BDF4Hadc bx, 4F54Hadc ax, 2165Hmov ax, 4C00Hint 21Hcode endsend start



结果的高位存放在ax中,次高位存放在bx中,低位存放在cx中

所以得到的结果就是上面截图所示的

0 0
原创粉丝点击