寄存器学习

本文详细介绍了8086 CPU 的寄存器工作原理,包括 CS、IP、DS 和 SS 段寄存器的作用及应用,并深入探讨了栈的运作机制,包括入栈(PUSH)和出栈(POP)指令的使用方法。

DS寄存器

  • 内存地址由段地址和偏移地址构成,其段地址数据就存储在DS中,

  • CS:IP是cpu要执行指令的位置,DS是指令要执行哪个内存的段地址,比如
    在1000:0指令,mov bx = 1000,mov ds bx,mov al,[0],其中ds=1000H就是要说明
    对段地址为1000,偏移地址为0的内存的数据写入al

  • CS,IP,DS都是段寄存器以及后面提及的SS

  • 字占两个字节16位,cpu一次能处理16位,即两个字节,因为内部总线为16
  • 8086寻址能力2^16 = 64kB
  • 结论,访问内存都需要段地址和偏移地址

栈(字为单位)

  • 先进后出,入栈指的是从栈的顶部添加一个数据,出栈指的是从栈的顶部去除一个元素
    LIFO(last in first out)
  • 8086cpu能够将一块内存当做栈来使用,并且以字为单位
    • PUSH 入栈命令 例如 push ax;把ax的数据压入栈中
    • POP 出栈命令 例如 pop ax;把栈顶的数据取出到ax寄存器中
  • CPU通过SS段寄存器以及SP寄存器(偏移地址)来指向栈顶元素的地址

  • 用指令

    mov ax 0123;
    push ax
    

    之后,在内存SS:SP中就可看到此数据,可以自行修改SS:SP指定栈位置


设置内存ffff为起始存储单元的,就要设置SS为0000,sp为0000,因为push数据会在下一个
注意,0000H栈顶下一个元素地址为FFFE,该栈最底部的存储单元为0000:FFFF,最底部字单元
为0000:FFFE,push数据后,寄存器sp会自动-2,POP命令SP+2

  • push是将数据往低位家,sp-2
  • pop是将sp+2,部改原来数据
  • d命令是列出内存地址从低向高位显示
  • 0000的内存地址比1000大

栈的越界问题

  • 8086CPU只提供了栈顶在何处,不知哪里是界限

PUSH,POP其他用法

push 寄存器;将寄存器的内容压入栈中,栈的位置为SS:SP,可用R查看 push ax
pop 寄存器;将栈顶的内容写入到寄存器中 pop ax
push 段寄存器; push ds(内存单元的段地址) push cs(指令的段地址) push ip(指令的偏移地址)
pop 段寄存器;   例子如上
push 内存单元;  push [0],假设ds=1000H,那么意为:将内存1000:0的数据压栈
pop 内存单元;   例子如上
完整例子:
mov ax,1000;
mov ds,ax;  注意ds无法直接赋值,下面的[偏移地址]ds(段地址)
push [0];   将1000:0处的字(1000:0~1000:1)压栈
pop [2];    将栈顶的字出栈到1000:2
以太网PHY寄存器是用于管理和控制以太网物理层功能的寄存器,它包括了一系列的寄存器用来配置和监控PHY芯片的各种参数和状态。对以太网PHY寄存器进行学习可以帮助我们更深入地了解以太网物理层的工作原理,有利于我们在网络系统设计和故障排除中更加灵活和准确地操作PHY芯片。 在学习以太网PHY寄存器时,我们首先需要了解寄存器的结构和功能。以太网PHY芯片通常包含了多个寄存器,用于存储各种各样的配置信息和状态参数,比如速率控制、双工模式、链路状态、故障诊断等。我们需要逐一研究这些寄存器的具体作用和取值范围,深入理解它们的含义和作用。 其次,我们需要学习如何使用寄存器来配置以太网PHY芯片。这包括了向寄存器写入特定的值来实现配置功能,比如设置传输速率、选择双工模式、启用自动协商等。同时,我们也需要学习如何从寄存器中读取数据来监测PHY芯片的状态和工作情况,比如读取链路状态、故障状态等信息。 最后,学习以太网PHY寄存器还需要我们熟悉各种常见的寄存器配置和操作案例。这包括了基于不同的应用场景和网络需求,如何正确地配置PHY寄存器以满足特定的网络性能和功能要求。同时,还需要学习如何通过寄存器进行故障排查和调试,以确保PHY芯片的正常工作。 通过对以太网PHY寄存器学习,我们可以更深入地理解以太网物理层的工作原理和操作方法,为网络系统的设计、配置和故障排除提供更加全面和准确的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值