• 【汇编语言-王爽】第二章:寄存器


    知识点

    (一)寄存器

    • 一个典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。
    • 8086CPU有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。
    • 其中AX、BX、CX、DX为通用寄存器,可以分为两个独立使用的8位寄存器来使用,比如AX可以分成AH和AL。
    • CS、DS、SS、ES为段寄存器
    • CS为代码段寄存器,IP为指令指针寄存器。任意时刻,CPU将CS:IP指向的内容当作指令执行。
    • CPU从CS:IP指向的内存单元读取指令,放入指令缓冲器;IP=IP+所读取指令的长度,从而指向下一条指令;接着,执行当前指令
    • 8086CPU的所有寄存器都是16位的,可以存放两个字节。

    (二)地址

    • 每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。
    • 8086是16位结构的CPU,如果直接简单发出地址,则寻址能力只有64KB。因此,8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址,即段地址和偏移地址。
    • 物理地址=段地址X16+偏移地址
    • 段地址X16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址为16位,16位地址的寻址能力为64KB,所以一个段的长度最大位64KB。

    (三)指令

    • mov 指令为传送指令
    • 修改CS、IP的值,可以用转移指令,比如jmp指令。
    • jmp 段地址:偏移地址 的功能:用段地址修改CS,偏移地址修改IP
    • jmp 寄存器 的功能:仅修改IP,用寄存器中值修改IP。

    (四)Debug的使用

    • R命令:查看、改变CPU寄存器的内容。 比如:“r ax”。
    • D命令:查看内存中的内容。
    • E命令:改写内存中的内容。比如:“e 起始地址 数据 数据 …”。
    • U命令:将内存中的机器指令翻译成汇编指令。
    • T命令:执行一条机器指令。
    • A命令:以汇编指令的格式在内存中写入一条机器指令。比如:“a 1000:0”。

    检测点

    1. 最多用4条指令,编程计算2的4次方。
    ;2^4 = 2*2*2*2
    mov ax, 2
    add ax, ax
    add ax, ax
    add ax, ax
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    NumPY创建数组(ndarray)对象方法应用
    搭建前端框架
    go语言学习-基本概念与流程控制
    AI-windows下使用llama.cpp部署本地Chinese-LLaMA-Alpaca-2模型
    C++ 内存分区模型
    Java字符串查找
    《存储IO路径》专题:块设备层多队列blk-mq架构
    Adobe Premiere基础-常用的视频特效(边角定位,马赛克,模糊,锐化,手写工具,效果控件层级顺序)(十六)
    Keras文本和序列(三)
    异步爬取+多线程+redis构建一个运转丝滑且免费http-ip代理池 (三)
  • 原文地址:https://blog.csdn.net/weixin_42294274/article/details/133955999