title: 汇编达人视频学习1(原码反码补码、几个位运算)
date: 2021-08-01 19:48:03
tags: 汇编达人
categories: 汇编达人
00 课程概要
01 进制
每一种进制是独立的,完美的。
进制的定义:
八进制的定义:由八个符号组成,分别是0 1 2 3 4 5 6 7 逢八进一
十进制的定义:由十个符号组成,分别是0 1 2 3 4 5 6 7 8 9逢十进一
N进制的定义:由N个符号组成,逢N进一。
1
进制定义:由一个符号组成,该符号为:1,逢1进1.
1进制1 - 20
1
11
111
1111
。。。。。
3进制定义:由三个符号组成,分别是:0、1、2,逢3进1
3进制0-20
0 1 2
10 11 12
20 21 22
100 101 102
110 111 112
120 121 122
200 。。。
7进制定义:由7个符号组成,分别是:0 1 2 3 4 5 6 ,逢7进1
10 11 12 13 14 15 16
20 21 22 23 24 25 26
30 。。。。66
100。。。
02 进制运算
03 二进制表示
十六进制 我们可以看成是二进制的简写形式
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 1 2 3 4 5 6 7 8 9 a b c d e f
熟练掌握十六进制和二进制的转换
05 有符号数和无符号数
无符号数的编码规则:
存的是什么就是什么的绝对值。
比如
1001 1010
这个存的无符号数就是0x9A
有符号数 正数编码规则:
如果第一位存的是1,那么是一个负数,如果第一位存的是0,那么是一个正数。
如果是正数,也就是第一位是0的时候,有符号数的正数编码规则跟无符号数的编码规则一样。
06 原码反码补码
有符号数的编码规则:
原码:最高位为符号位,其余各位为数值本身的绝对值。
反码:
正数:反码与原码相同
负数:符号位为1,其余位对原码取反
补码:
正数:补码与原码相同
负数:符号位为1,其余位对原码取反加1
1
原码:00000001
反码:00000001
补码:00000001
-1
原码:10000001
反码:11111110
补码:11111111
总结:正数原码存储
负数补码存储
07 计算机不会做加法
1.与运算
在汇编语言中,与运算的符号是and,c语言中的符号是&
2.或运算
在汇编语言中或运算的符号是or,C语言的符号是 |
3.异或运算
在汇编语言中,异或的符号是xor,C语言中是 ^
4.非运算
在汇编语言中,非的符号是not,C语言中是 ~
5.左移
在汇编语言中左移的符号是shl,C语言中是 <<
6.右移
在汇编语言中,右移的符号是shr(无符号数)、sar(有符号数),C语言中,是 >>
shr在汇编中,对应无符号数,高位会补0.
sar在汇编中,对应有符号数,高位补符号位。
0 - 7F是从0 1 2 3 开始
FF-80 是从 -1 -2 -3开始
8.总结
计算机只会做位运算