您的位置:首页 > 理论基础

C语言学习-计算机组成原理

2016-03-01 15:03 555 查看
1.了解寄存器

寄存器:暂存 指令 地址 数据

MOV AH 21H

通用寄存器

AX:(accoumulator ACC):累加器BX:(bas):基址

CX:(count):计数

DX:(data):数据

段寄存器:

CX:(代码段)Code Segment

DX:(数据段)Data Segment

SX:(堆栈段)Stack Segment

EX:(附加段)Extra Segment

指示寄存器:IP 基于地址基于变量

2.内存存储

bit 位 一个二进制
Byte 字节 八个二进制
1B=8b
千字节:1KB=1024B=2^10B
兆字节:1MB=1024KB=2^20B
吉子节:1GB=1024MB=2^30B
太字节:1TB=1024GB=2^40B
3.进制转换(位运算)

为什么用二进制:
易于物理计算
运算规则简单
可靠性高
通用性强
进制越大数表达长度越短
n进制---->十进制:每位数字乘上权得到乘积之和就是十进制表示的数:

二进制为例:
1 0 0 1
千 百 十 个
3 2 1 0 位数(k)以此类推

1x23+0x22+0x21+1x20=9
3 4 5 Q
百 十 个
2 1 0 K
3*82+4*81+5*80=5+32+192=229;
每位数字乘上权得到乘积之和就是十进制表示的数
每位数字*(n进制)k
K:从右到左,从0开始,依次类推
十进制------->其他进制
辗转相除法
29转换2进制 余数
29/2=14 1
14/2=7 0
7/2=3 1
3/2=1 1
1/2=0 1
以后数据结构:栈里面实现进制转换
29 D=(11101)2

(降幂法)
N=198=(1 1 0 0 0 1 1 0)2
1 2 4 8 16 32 64 128 256
D0 D1 D2 D3 D4 D5 D6 D7 D8
0 1 1 0 0 0 1 1 0
256>198>128 D7=1 198-128=70 128>70>64 D6=1
70-64=6 8>6>4 D2=1 6-4=2 2=2 D1=1
二进制、八进制、十六进制转换
每三位二进制位可以转换为一位八进制、每四位二进制位可以转换为一位十六进制

0123456789101112131415
0000000100100011010001010110011110001001101010111100110111101111
012345671011121314151617
0123456789ABCDEF
4.原码、补码、反码

机器数:在计算机中,一个数有二进制表示的数

真值:二进制所要表达十进制数

编码方式:原码 反码 补码

符号位:整数 0 负数 1

机器数=真值(正数)

例:1000 0001 但是计算机中-1;通过转换这个不是-1

计算机做一个有符号位的计算

电路复杂度远远加大

计算机中只有+的存在

1-1=0;计算机里面 1+(-1)=0

原码:1000 0000 负数:反码:符号位不变,其他位取反 1111 1111

想要会这种计算,必须记住下面的:

原码:第一位是符号位,其他位表示数值

反码:正数:就是原码

负数:符号位不变,其他取反

补码:正数:就是原码

负数:符号位不变,其他位取反 ,在加1(反码+1)

转码练习:-2 =1000 0010原=1111 1101反=1111 1101反+0000 0001=1111 1110补

原码计算: 0000 0001原 + 1000 0001原=1000 0010原码=-2D

反码计算: 0000 0001反+1111 1110反=1111 1111反=1000 0000原=-0D;

补码计算:0000 0001补+1111 1111补=0000 0000补

5.存储模式

大端模式:地址由小向大增加,而数据从高位往低位放(类似字符串存储)

小端模式:数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中(正常思维)

(不做详细讲解,有兴趣的可以自行找资料学习)
6.逻辑运算符
真值表:成立为真,值为1;不成立为假,值为0.
逻辑与(A&&B)
(联想物理中的电路图,亮灯为1,不亮为0)





逻辑或(A||B)





逻辑非(!A)



以上就是我觉得计算机原理中要掌握的一些知识点,欢迎补充,谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: