c语言与计算机组成原理的结合

如题所述

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

二进制、八进制、十六进制转换

每三位二进制位可以转换为一位八进制、每四位二进制位可以转换为一位十六进制
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-28
C语言属于程序开发语言的基础啊。计算机原理组成是计算机的基础课程。