汇编语言 王爽(第三版) 第一到三章 总结

  1. CPU:

    • 微处理器
    • 执行机器指令,进行运算的芯片
    • 16位结构的CPU表示:
      • 运算器一次最多可以处理16位的数据
      • 寄存器的最大宽度为16位
      • 寄存器和运算器之间的通路为16位
  2. 寄存器:

    • CPU中可以存储数据的器件
    • CPU中程序员可以用指令读写的部件(通过改变寄存器中的内容来实现对CPU的控制)
    • 8086CPU有14个寄存器(16位)
      • AX,BX,CX,DX:通用寄存器(存储一般性数据;可各分为两个8位寄存器,XH与XL,X=A,B,C,D)
      • CS,DS,SS,ES:段寄存器(提供内存单元的段地址)
      • IP,SP
        • 段地址 × 16 + 偏移地址 = 物理地址(段地址和偏移地址移位相加法)
          • 原因:内存的物理地址的存储宽度与段寄存器的段地址的存储宽度不一致
          • 段地址:偏移地址 表示存储单元地址
          • 段的起始内存单元地址为16的倍数(考虑计算前后)
          • 偏移地址变化范围:0~FFFFH,寻址能力为64KB(16^4B)个内存单元,段的最大长度为64KB
        • CS与IP:代码段
          • CS:代码段寄存器,IP:指令指针寄存器
          • 8086机中,任意时刻,CPU执行CS:IP指向的内容(即CPU将CS:IP指向的内存单元中的内容看作指令)
          • jmp 段地址:偏移地址 用给出的段地址,偏移地址修改 CS,IP 的值;jmp 某一合法寄存器 用寄存器中的值修改IP
            (用jmp修改CS,IP的值与在debug中运用R指令修改CS,IP的内容有什么区别?考虑循环的实现)
          • 8086CPU工作过程:
            • CS:IP通过地址加法器得到内存单元地址,送入输入输出控制电路
            • 输入输出控制电路通过地址总线传递物理地址
            • 数据总线传送该物理地址处存放的机器指令,送入输入输出控制电路(CPU如何取一条完整的指令?CPU会对第一个读取的进行解码,从而知道这条指令有几个字节)
            • 输入输出控制电路将其送入指令缓冲器
            • IP中的值自动增加
            • 执行指令缓冲器的机器指令
        • DS与[address]:数据段
          • DS:存放要访问的数据的段地址,[address]中address表示偏移地址
          • DS:[address] 读写对应内存单元的数据
        • SS与SP:栈段
          • SS:内存中栈顶段地址,SP:偏移地址
          • SS:SP指示栈顶元素,当栈为空,SP为栈最底部的字单元的偏移地址+2
          • 栈中字的存储:高位字节放高位内存单元,低位字节放低位内存单元
          • push指令,pop指令(内存传送指令)
            • 格式:push/pop 通用寄存器/段寄存器/内存单
              (实验,push IP出现ERROR,为什么?实验,push 数据出现ERROR)
            • 执行过程:
              • push:
                • SP = SP - 2
                • 向SS:SP指向的字单元中送入数据
              • pop:
                • 从SS:SP指向的字单元中读取数据
                • SP = SP + 2
          • 8086CPU不保证程序员对栈的操作不会出界,入栈、出栈时注意最大栈空间
        • ES还未作介绍
      • SI,DI,BP,PSW还未介绍到
  3. 汇编指令

    • 是机器指令的助记符,同机器指令一一对应
    • 已学的汇编指令:(注意格式)
      • mov
      • add
      • sub
      • jump
  4. Debug

    • DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行(什么时候会用到?)
    • 已学的几种命令:
      • R命令:查看、修改CPU中寄存器的内容
      • D命令:查看内存中的内容
      • E命令:修改内存中的内容
      • U命令:将内存中的内容解释为机器指令和对应的汇编指令
      • T命令:执行CS:IP指向的内存单元处的指令
      • A命令:以汇编指令的形式向内存中写入指令
    • 实验中出现的困惑:
      • 向显存中写入数据
      • T命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行
  5. 地址总线(寻址能力为2^N个内存单元),数据总线,控制总线

  6. 内存地址空间

    • 00000H~9FFFFH 主随机存储器地址空间(RAM),A0000H~BFFFFH 显存地址空间(随写随显示),C0000H~FFFFFH 各类ROM地址空间(只读)
    • 对于CPU是一个统一的逻辑存储器,容量受CPU寻址能力的限制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值