title: 汇编达人视频学习2(位运算之加减乘除)
date: 2021-08-01 20点42分
tags: 汇编达人
categories: 汇编达人
1.加法运算过程
4+5?的运算过程(假设数据宽度是一个字节, 8 bit)
0000 0100
0000 0101
加法==========
0000 1001
0000 0100
0000 0101
异或========
0000 0001
如果不考虑进位的情况下,异或的结果与按位加的结果是一样的。
异或运算:不一样的时候是 1
如:
0 和 1相加 或者 异或,结果都是 1
0000 0000
0000 0001
异或/加---------------------
0000 0001
实现加法的过程
1)异或
0000 0100 4
0000 0101 5
异或----------------------------
0000 0001
2)判断是否有进位
用 与 操作来判断
0000 0100 4
0000 0101 5
与---------------------------
0000 0100
与运算:两个都为 1 的时候,结果才为 1.
如果没有进位(与 的结果为 0 ),那么之前异或的结果就是加法的结果。
如果有进位(与 的结果不为 0 ),那么继续第三步
注意:与 操作的作用是判断 进位在哪一个位置(与 的结果哪个位置是1,就说明在哪里有进位)。
3)继续异或
根据(2)的与 结果,把结果中的 1 ,左移一位,变成0000 1000
跟第(1)步的结果,继续异或
0000 0001
0000 1000
异或==============
0000 1001
4)再次判断是否有进位
0000 0001
0000 1000
与=============
0000 0000
没有进位,所以结果是(3)异或的结果
0000 1001 也就是 9
实现减法过程
4 - 5 = ?的运算过程
4 - 5 = 4 + (-5)
1)异或
0000 0100
1111 1011
异或------------------------
1111 1111
2)判断是否有进位
0000 0100
1111 1011
与----------------------------------
0000 0000
所以1111 1111就是 4 - 5 的结果 FF 转为有符号的数就是 -1
乘法的实现过程
X * Y 的本质就是加法 Y个X相加
加法的循环
除法的实现过程
X / Y 的本质就是减法 X能减去多少个Y
减法的循环