HEU微机原理与接口(一):计算机基础知识

Introduction

微机原理复习简单纲要
原书:《微型计算机原理与接口技术》-哈尔滨工程大学出版社(吕淑萍等著)
在这里插入图片描述

主要内容

  • 计算机基础知识:
    • 进制及其转换
    • 计算机中数的表示(反/补码)
  • 微机系统结构与总线
  • 存储器(RAM/ROM/Cache)
  • 指令系统(操作指令/寻址方式)
  • 汇编语言设计基础
  • 外部芯片和程序设计:1.8255(IO) 2.8254/8253(计数器) 3.8259(中断)

1.计算机基础知识

1.1 数制及其转换

1.1.1 进位计数值

基本的数制有二/四/八/十/十六进制,分别由B/Q/O/D/H表示.在书写和编程规范中有如下几条规则:

  1. 数值应该在末尾写明数制符号,如3AH,01B,33D等
  2. 对于涉及到字母符号的进制(十进制以上)的数值,如果开头是字母,则应该在前面加上’0’表示这是数值而非变量名,如AH应写成0AH
  3. 只有十进制可以省略数值末尾的符号或者角标,如99D或99

1.1.2 进制转换

各个进制之间的转换我们主要使用加权累积法,进制与进制之间的转换由以下规则确定:

二转十

所有"1"位乘以对应的权后累加得到对应的十进制数, 假设一个二进制数由小数点前x位和小数点后y位组成

D = ∑ n = 1 x 2 n ∗ d n + ∑ n = 1 y 2 − y ∗ d n D=\sum_{n=1}^x2^n*d_n+\sum_{n=1}^y2^{-y}*d_n D=n=1x2ndn+n=1y2ydn

十转二

对十进制数累除直到0,将余数自下到上倒序连接

例题: 1026D转换为二进制
1025/2=513—0
513/2=256----1
256/2=128—0
128/2=64—0
64/2=32—0
32/2=16—0
16/2=8—0
8/2=4—0
4/2=2—0
2/2=1—0
1/2=0—1
Result=100 0000 0010

十六转二和二转十六

十六进制和二进制由于存在天然的倍数关系,即 2 4 = 16 2^4=16 24=16每四个二进制位可以完美地表示一个十六进制位,因此在涉及到二进制数的操作中,我们自然的将其以每四位为一个单元分割并转化为十六进制数

例题1: 10100010111B转换为十六进制数
1.将二进制数化成规范形 0101 0001 0111,首位补齐’0’凑成四位
2.查表或计算每四位二进制数对应的十六进制数
0101B=05H 0001B=01H 0111B=07H
3.按顺序连接十六进制数
10100010111B=0517H

例题2:十六进制数2BH转换为二进制数 (本质是对例题1方法的逆运算)
1.将每位十六进制数根据查表或运算转换成对应的二进制数
02H=10B 0BH=1011B
2.对每组二进制数在前面补齐四位并顺序连接
0010 1011

以上这些都不会怎么办?
打开TMD在线进制转换器 https://www.sojson.com/hexconvert.html

1.2 计算机中数的表示

1.2.1 无符号数

对于一个以N位的二进制数,有符号数最高位为符号位,动态范围为-2N-1~2N-1-1,而对于无符号数,所有位置均用于表示数值,动态范围为0~2N

1.2.2 符号数的表示方法

规定:符号数的最高位中,0表示正号,1表示负号.对于计算机系统中的符号数,正零和负零是同一个数,即有符号数的动态范围比无符号数少1
字节: 1 b y t e = 8 b i t 1byte=8bit 1byte=8bit,计算机数据的基本单位
机器数:符号数(包括符号位)的二进制数表示形式(number)
真值:机器数所表示的数值(value)
其中,机器码有三种表示方法:

  1. 原码
    原始的机器码定义,即最高符号位0表示正号,1表示负号

例子
[ + 100 ] 原 = 01100100 [+100]_原=01100100 [+100]=01100100

最高符号位0+绝对值1100100

  1. 反码
    正数的反码与原码完全相同,负数时的反码除了符号位以外全部取反

例子
[ − 100 ] 反 = 10011011 [-100]_反=10011011 [100]=10011011

最高符号位1+数字位取反0011011

  1. 补码
    正数的补码与原码完全相同,负数时的补码取反后加一(即反码加一)

例子
[ − 100 ] 反 = 10011011 [-100]_反=10011011 [100]=10011011

最高符号位1+数字位取反0011011

[ − 100 ] 补 = 10011100 [-100]_补=10011100 [100]=10011100
最高符号位1+加一得到0011100

补码的特点:

  1. 消灭了正零和负零机器码一样的bug
  2. 消灭了原码和反码中相反数相加不等于0的bug
  3. 简化了加减法运算逻辑,使得加法器可以执行减法

八位二进制数的特殊操作:

1.2.3 符号数的加、减法运算

加减法运算使用补码和无符号数的概念进行操作

例子1-1
已知
X = 64 , Y = 8 , 求 X + Y = ? X=64,Y=8,求X+Y=? X=64,Y=8,X+Y=?
[ X ] 补 = 01000000 = 64 [ Y ] 补 = 00001000 = 8 [ X ] 补 + [ Y ] 补 = 01001000 = 72 [ X + Y ] 补 = [ X ] 补 + [ Y ] 补 [X]_补=01000000=64\\\\ [Y]_补=00001000=8\\\\ [X]_补+[Y]_补=01001000=72\\\\ [X+Y]_补=[X]_补+[Y]_补 [X]=01000000=64[Y]=00001000=8[X]+[Y]=01001000=72[X+Y]=[X]+[Y]

例子1-2
已知 X = 78 , Y = − 100 , 求 X + Y = ? X=78,Y=-100,求X+Y=? X=78,Y=100,X+Y=?
[ X ] 补 = 01001110 = 78 [ Y ] 补 = 10011100 = − 100 [ X + Y ] 补 = 11101010 = − 22 [X]_补=0100 1110=78\\\\ [Y]_补=1001 1100=-100\\\\ [X+Y]_补=11101010=-22 [X]=01001110=78[Y]=10011100=100[X+Y]=11101010=22

1.2.4 溢出及符号数扩展

在计算机内设有专门的溢出寄存器OF,1表示溢出,0表示无溢出

1.3 十进制数与字符的编码

1.3.1 BCD 码

  1. 8421码:8421码的单个数字位的0~9表达方法与二进制一致,>=10开始为非法码。名称来源于各个位置上的权重分别为8/4/2/1/
    BCD码书写和组成方法与十进制下规则相同,即一位十进制对应四位BCD码
    压缩BCD码:四位二进制表示8421
    非压缩BCD码/扩展BCD码:八位二进制,低位为8421,高位没有意义,可取任何值
  2. BCD码运算
    非法码/进位处理,溢出数加上6(或二进制的0110),以此跳过10~15的非法码

1.4 定点数与浮点数

1.4.1 定点数

定点数就是日常所用的写法,小数点在数中的位置是固定的,例如3.141

1.4.2 浮点数

任何一个十进制数可用下式表示(参考科学计数法):
N = 1 0 E ∗ M N=10^E*M N=10EM
同理,任何一个二进制数可用下式表示:
N = 2 E ∗ M N=2^E*M N=2EM
其中,2为二进制的基数,在数据中不出现;M称为尾数,即数的全部有效数字;E称为阶码,即小数点出现的位置
浮点数的格式如下所示:
阶符 + 阶码 E → 尾符 + 尾数 M 阶符+阶码E→尾符+尾数M 阶符+阶码E尾符+尾数M
其中阶符就是标志符

例子
已知尾数为4位,阶码为2位,阶符为1位,数符为1位,写出十进制数-2.5在计算机中的浮点表示形式?
首先将十进制数转写为二进制数, − 2.5 D = − 0.101 B ∗ 2 2 -2.5D=-0.101B*2^2 2.5D=0.101B22
负数,阶符 E f = 1 E_f=1 Ef=1
阶码为2, E = 10 E=10 E=10
尾数 M = 101 M=101 M=101
补齐四位0101
结果为10100 0101

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值