【知识积累】微机原理期末复习

知识前置

位:计算机能表示的最小数据单位

字节:一个8位二进制数成为1字节

字:一个16位二进制数称1个字

机器数:计算机中的数据,分为数值数据和非数值数据

真值:机器数代表的真正的数值

字长:处理器的二进制位数(8位处理器字长为8位)

溢出别:补码运算时,若运算结果超过其表示的数的范围,则溢出。

技巧:由于溢出只可能出现在同号相加或异号相减运算时,且采用补码减法可转变为加法,最直观、最易于理解的溢出判定方法是:若正数加正数,结果为负数或负数加负数,结果为正数,则发生溢出。

Asciil码:

数字符0-9的Ascii码为30H~39H(48)

大写字母A-Z的Ascii码为41H-5AH(65)

BCD码:十进制可采用二进制编码来表示——本质还是十进制数

压缩BCD码:一个字节表示两位十进制数 16 - 0001 0110

非压缩BCD码:一个字节表示一位十进制数 16 - 00000001 00000110

BCD码本质上是二进制编码的十进制数

带符号的机器数表示方式:原码、补码、反码

  • 原码
    • 最高位是符号位,0为正,1位负,范围 -127 - +127
  • 反码
    • 正数:原码=反码=补码
    • 负数:符号位不变,数值位求反
    • 范围和原码一样
  • 补码
    • 正数:和反码一样
    • 负数:反码+1
    • 范围: -128 - +127
  • 运算规则:
    • 符号位与数值位一起运算
    • 符号位产生进位可舍去
  • 微机组成
    • CPU(运算器和控制器)、输入输出设备、接口电路和系统总线
  • 总线
    • 总线是CPU向存储器和输入/输出接口传送地址、数据和控制信息的公共通道
      • 数据总线(16):传输数据
      • 地址总线(20):传输地址信息
      • 控制总线(16):传输控制信号
      • 例:8086的数据线为16位,地址线为20位,I/O口使用16位地址线

8088/8086微处理器

  • 8086:16位微处理器

  • 8088:准16位处理器

  • 8086和8088的区别:

    • 8086 BIU中的指令队列是6字节,外部数据总线16位
    • 8088 BIU中的指令队列是4字节,外部数据总线8位
  • image-20211224082703409

  • EU(执行单元)

    • 负责指令的译码和执行
    • 负责向总线接口部件BIU它提供偏移地址
    • 对通用寄存器和标志寄存器进行管理
      • EU组成
        • 算术逻辑单元ALU
        • 标志寄存器FR
        • 通用寄存器
          • 数据寄存器
            • 16位数据AX、BX、CX、DX
          • 16位指针寄存器:SP、BP
          • 16位变址寄存器:DI、SI
        • 暂存寄存器
        • EU控制电路
  • BIU(总线接口单元)

    • 负责CPU与内存或I/O端口传送指令或数据
      • BIU从内存取指令送到指令队列缓冲器。
      • 当EU执行指令时,BIU要配合EU从指定的内存单元或I/O中端口汇总读取数据,或者把EU的操作结果送到指定的内存单元或I/O端口去
      • BIU的组成
        • 段寄存器
          • 代码段寄存器CS
          • 堆栈段寄存器SS
          • 数据段寄存器DS
          • 附加段寄存器ES
        • 指令指针寄存器IP
        • 地址加法器
        • 指令预取队列
        • 总线控制逻辑
  • 数据寄存器

    • AX 累加器
    • BX 基数寄存器 basic
    • CX 计数寄存器 count
    • DX 数据寄存器 data
  • 变址寄存器:存放当前数据段的偏移地址

    • SI 源变址寄存器 source
    • DI 目的变址寄存器 destination
  • 指针寄存器:用来存取位于当前堆栈段中的数据

    • BP 基址指针寄存器:存放位于堆栈段中的一个数据区基址偏移地址-表明数据区在哪里开始 basic adress Pointer
    • SP 堆栈指针寄存器:给出栈顶的偏移地址 stack pointer
  • 段寄存器

    • DS 数据段寄存器 Data
    • ES 附加段寄存器 Extra
    • SS 堆栈段寄存器 Stack
    • CS 代码段寄存器 Code
  • 控制寄存器

    • IP 指令指针寄存器:存放着BIU要取的下一条指令的偏移地址
      • 下一条指令的物理地址=CSx16+IP instructions
    • PSW 状态标志寄存器
      • ①状态标志
        • 进位标志CF:最高位产生进位/借位,CF=1
        • 奇偶标志PF:运算结果低8位中个“1”的个数为偶数,则PF=1
        • 辅助进位标志AF:低4位向高4位有进位,则AF=1
        • 零标志ZF:运算结果为0,则ZF=1
        • 符号标志SF:最高位为1,表示结果为负数,则SF=1
        • 溢出标志OF:运算过程中发生“溢出”,则OF=1
      • ②控制标志
        • 中断允许标志IF
          • IF=1,则CPU可以接受可屏蔽中断请求
        • 方向标志DF direction flag
          • DF=1时,地址自动递减;
          • DF=0时,地址自动递增;
        • 跟踪(陷阱)标志TF trick flag
          • 为调试程序的方便而设置的
          • TF=1,则处于单步工作方式
          • TF=0,将正常执行程序
  • 段寄存器

    • 代码段(CS):用来存放当前正在运行的程序不能做目的操作数
    • 数据段(DS):存放当前运行程序所用的数据
    • 堆栈段(SS):堆栈作用是保护数据
    • 附加数据段(ES):辅助的数据区
  • 为什么要分段

    • 8086/8088有20位地址线,能够寻址1MB的内存空间,但寄存器是16位,只能寻址64KB存储空间,所以要分段,把1MB的存储空间分成若干逻辑段,每个逻辑段最大具有64KB的存储空间

    8086/8088 20 2^20 =1 MB 寄存器16位,2^16=64KB,分段,把1MB空间分成若干逻辑段,每个逻辑段最大具有64KB的存储空间

  • 分段的概念:

    • 把1MB的存储空间分成若干逻辑段,每个逻辑段最大具有64KB的存储空间。
  • 物理地址形成

    • 物理地址:即实际地址,例如00000H。一个存储单元的物理地址是唯一的,而逻辑地址是可以不唯一的。
    • 段基址:段首址的高16位。段基址存放在段寄存器DS、ES、SS或CS中。
    • 偏移地址:段内存储单元距离段首地址的偏移量,也称有效地址EA,存放在IP、BP、SI、DI或BX中。偏移地址方位:0000H~FFFFH
    • 逻辑地址:通常用段基址偏移地址的形式来描述,在程序中使用。
    • 例如
      • 0000H:0001H
      • 物理地址=段基址x16+偏移量
      • 常用:CS:IP、SS:SP

image-20211225092027199

image-20211225092345783

  • 堆栈

    • 堆栈是以“先进后出“或”后进先出“原则管理的存储区域。SS(堆栈是保护数据)给出堆栈段的段基址,SP存放栈顶地址,指出从栈顶到段首址的偏移量

    image-20211225093428511

  • PUSH AX:;入栈

    • SP-2 ——> SP
    • 再将数据入栈(低八位放入低字节,高八位放入高字节)

image-20211225093358367

  • POP AX:出栈

    • 先栈顶数据出栈
    • 再SP+2——>SP
  • 8086/8088 CPU 引脚

    image-20211225093830853

image-20211225093859813

image-20211225093932682

指令系统

  • 指令格式

    • 操作码 操作数/目的操作数,源操作数
  • 寻址方式

    • 立即数寻址——直接给出操作数

      • MOV CX, 2A50H
      • 将立即数2A50H送到CX寄存器中。
      • image-20211225102521636
    • 寄存器寻址

      • 操作数为内部寄存器(AX/BX/CX/DX/SI/DI/SP/BP)
      • MOV DX, AX
      • image-20211225102812010
    • ③存储器寻址

      • 1、直接寻址:操作数给出有效地址(偏移地址)
        • MOV AL,[2000H]
        • image-20211225103438259
      • 2、寄存器间接寻址:有效地址放在指定寄存器中
        • BX、SI、DI——默认段为DS段,物理地址=DS*16+BX/SI/DI
        • BP——默认段为SS段,物理地址=SS*16+BP
        • image-20211225105352287
        • image-20211225105557800
    • 3、寄存器相对寻址:有效地址是寄存器内容+位移

  • 操作数的物理地址=16xDS+BX/SI/DI+位移|或者=16xSS +BP +位移

    • image-20211225110124553
  • 4、基址加变址寻址方式:有效地址是基址寄存器和变址寄存器内容之和

    • 操作数的物理地址=16xDS + BX(基址寄存器)+ SI/DI(变址寄存器)|或 = 16xSS + BP +SI/DI

    • image-20211225112549491

    • 5、相对的基址加变址寻址方式

  • 操作数的物理地址=16XDS+BX+SI/DI+位移|或=16XSS+BP+SI/DI+位移

    • image-20211225113036426
    • 语法规则

    • 1、源操作数与目的操作数长度要一致

    • 类型要明确

    • image-20211225113321730

    • 2、寄存器寻址与段地址 要对应

    • image-20211225113443723

    • []中只能使用基址和变址即BX/BP/Si/Di

    • image-20211225113523967

    • 4、同一组内的寄存器不能同时出现在一个[]中。

    • image-20211225113608487

    • 5、两个存储单元之间不能直接操作的

    • image-20211225113659011

    • 6、CS、IP、立即数不能做目的操作数 IP指令指针 EA偏移地址

    • image-20211225113733504

    • 7、当DS、ES、SS作目的操作数时,立即数不能做源操作数

    • image-20211225113938506

    • 8、可用段超越前缀修改默认段

    • image-20211225155328686

  • 数据传送指令

    • MOV 目的,源
      • 功能:将源操作数的内容传送到目的操作数
    • PUSH 源
      • 功能:将源操作数压入堆栈中
      • 过程:SP新 -> SP原-2, 再入栈
    • POP目的
      • 功能:将堆栈中数据弹出至目的操作数
      • 过程:出栈、SP新 -> SP原+2
    • XCHG 目的,源
      • 功能:源操作数、目的操作数交换数据
    • XLAT 转换表 或:XLATT
      • 功能:查表功能
    • IN AX/AL, I/O地址
      • I/O端口数据传输到AX、AL
    • OUT I/O地址,AX/AL
      • AX、AL数据传输到I/O端口
    • LEA 目的操作数,源操作数 lea
      • 功能:取源操作数的地址偏移量,送到目的操作数
    • LDS 目的操作数,源操作数
      • 取出四个字节,低地址两个字节送入目的操作数,高地址的两个字节送入DS寄存器
      • image-20211225162018079
      • 算术运算指令
    • image-20211225162124828
    • image-20211225162601494
      • 逻辑运算
    • NOT 目的 ——按位取反
    • AND 目的,源——目的与源-——>目的
    • OR 目的,源——目的或源——>目的
    • XOR 目的,源 —— 目的异或源——>目的
    • TEST 目的,源 ——目的与源,并修改标志位,但不回送结果

image-20211225163612868

image-20211225164920411

  • 串操作指令

    • 基础知识

      • image-20211225165018745
      • image-20211225165125298
      • image-20211225165144817
      • image-20211225165320806
      • image-20211225165336208

      image-20211225165426463

      image-20211225165958375

      image-20211225171126905

      image-20211225170155896

      image-20211225171057337

      image-20211225171352426

      image-20211225171402997

      image-20211225171426880

      image-20211225171442671

      image-20211225171534742

      image-20211225171604161

      image-20211225171628930

      image-20211225172036634

      image-20211225172025961

      image-20211225172125339

汇编语言程序设计

  • 汇编语言有三种基本语句:指令语句、伪指令语句、宏指令语句
  • image-20211225204411993
  • image-20211225204454584
  • image-20211225204540020
  • image-20211225204731140
  • image-20211225204802880
  • image-20211225204837709
  • image-20211225204906200
  • image-20211225204944444
  • image-20211226104045625
  • image-20211226104139487
  • image-20211226104222456
  • image-20211226104351505
  • image-20211226104444435

存储器

  • image-20211226105848849
  • image-20211226105945348
  • image-20211226111801577
  • image-20211226112047085
  • image-20211226112111391

image-20211229215225312

image-20211229215513023

image-20211229220113039

image-20211229220159626

image-20211229220221919

image-20211229220311773

image-20211229220343305

image-20211229220430268

image-20211229220650679

image-20211229220642309

image-20211229220718898

image-20211229220954606

image-20211229221005462

image-20211229222819876

image-20211229230847203

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
data segment
data1 db 15H ;被加数
sum db 00H ;和
data ends
code segment
assume CS:code,DS:data
start:
MOV AX,data
MOV DS, AX; 装入数据段
MOV AL,data1;
ADD AL,12H;
MOV sum,AL;
HLT;暂停
code ends
end start

image-20211229231543323

image-20211229231612970

image-20211229231943486

image-20211229232018601

image-20211229232043414

image-20211229232108452

image-20211229232431684

image-20211229232452535

image-20211229232703403

image-20211229232932937

image-20211229233007802

image-20211229233058785

image-20211229233158787

image-20211229233236177

image-20211229233454337

image-20211229233653733

image-20211229233725445

image-20211229233744840

image-20211229233830795

image-20211229233851811

image-20211229233919258

image-20211229233940339

image-20211229234009098

image-20211229234111390

image-20211229235521621

image-20211229235602136

image-20211229235655827

image-20211229235728459

image-20211229235821100

image-20211229235854332

image-20211230000221854

image-20211230000308034

image-20211230000403545

image-20211230000447611

image-20211230000534050

image-20211230000643348

image-20211230001108160

image-20211230001911990

image-20211230002034428

image-20211230002205918

image-20211230002440323

本文标题:【知识积累】微机原理期末复习

文章作者:孤桜懶契

发布时间:2021年12月22日 - 16:04:10

最后更新:2022年05月20日 - 11:44:39

原始链接:https://gylq.gitee.io/posts/182.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------