精华内容
下载资源
问答
  • 物理地址
    千次阅读
    2021-09-16 14:48:18

    温故:

            要标识 Internet 上的一台主机,必须给每台主机分配一个 IP 地址。当一台主机同时连接到多个网络中时,它就拥有多个IP 地址,即一个网络接口对应一个IP 地址。
    IP 地址由网络地址和主机地址两部分组成,网络地址部分表示主机所在的逻辑网络,每一个逻辑网络都有一个惟一的网络地址部分;主机地址部分表示所在逻辑网络的一台特定主机。一个IP地址可以表示为∶网络号+主机号。
            在IPv4中,IP地址分为5大类,分别用 A,B,C,D和E表示,其中 A,B,C是常用的三类地址,D 类为多点广播地址,是指所具有 D 类地址的数据包(Packet)会同时传送到一群计算机上,D类地址也称多目地址。E类保留做研究用

    链接如下:特殊的IP地址

     

    知新:

            最近实在是不知道和大家讲点什么了,既然上一篇和大家分享了网络方面的IP地址,那么今天就顺便给大家说说与之相对的物理地址。

            在局域网(LAN)中,每一台主机或网络设备都有一个或多个物理地址(Physical address),物理地址的个数取决于计算机或网络设备中的适配器个数。物理地址最牛逼的一点在于每一个物理地址在全世界全球都是唯一的。对于网络设备,物理地址与网络设备中的 LAN适配器有关;对于计算机,物理地址与网卡有关,因此物理地址也可以称之为硬件地址。

            有没有考虑过,既然已经有了IP地址了,为什么还要有物理地址,它的作用是什么呢?主要是IP地址还是有着一些局限性,因为IP地址是分配给主机的虚拟地址(逻辑地址),在网络互联中表示唯一的主机,但是如果是在局域网中,计算机或网络设备之间的通信就需要使用使用物理地址了。这就像两个人是发小,可以互相叫对方的小名(比如狗蛋),但是出了这个小圈子,有了外人存在的时候,就要叫对方姓名。大概就是这种感觉。物理地址和逻辑地址的区别可以从两个角度来看; 从网络互联的角度看,逻辑地址在整个互联网络中有效,而物理地址只是在子网内部有效; 从网络协议分层的角度看,逻辑地址由网络层使用,而物理地址由数据链路层使用,而且由于物理地址是在数据链路层使用,因此也将物理地址叫做MAC地址。

            那么IP地址和物理地址有没有什么联系呢?当然是有了,不仅有联系,还要将二者通过某种方式连接起来,这种方式就是“ARP协议”。

            在 TCP/IP 网络中,每台计算机的内存中都保存着一张 IP 地址和物理地址的映射表,这张地址映射表由 ARP 协议来维护。当本地主机要向网络上的某个主机发送数据时,必须首先知道接收方的 IP 地址(否则就无法通信了),然后根据这个 IP 地址从地址映射表中获得物理地址,最后通过物理地址把数据送到接收方的主机。这个过程就相当于顺丰快递给你送快递,他首先要知道拨通你的电话联系到你确认你是否在家(知道对方的IP地址),然后确认在家后就可以按照具体的单元楼层信息(物理地址)来找到你。其实这个过程和我上面讲得为什么要有物理地址的原因是一致的。当通信的双方不再一个局域网内时,要通信就要保证IP地址互通,能ping通,这个时候需要逻辑地址,当对方的数据信息传输到目的方所在的局域网之后,就用到物理地址了,需要按照物理地址去寻找了。
            关于这个ARP协议具体是如何实现的?我在百度百科上给大家找了一段内容,大家可以看看。

    工作过程

    主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;

    主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;

    当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:

    第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。

    第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。

    第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。

    第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。

    第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

    拓展:

            为保证物理地址的全球惟一性,将 48 位的物理地址分为若干独立的连续的地址组,每一个生产网络适配器的厂商从中购买一组,各厂商拥有不同的物理地址范围,当生产硬件时,再从所购地址中按顺序给适配器分配一个,这样生产出来的网络设备或适配器都有惟一的物理地址。
     

    更多相关内容
  • 逻辑地址和物理地址的相互转换

    千次阅读 多人点赞 2022-04-26 18:21:01
    文章目录逻辑地址和物理地址的相互转换基础概念逻辑地址转换成物理地址物理地址转换成逻辑地址 逻辑地址和物理地址的相互转换 注:本文只适用于做题,想更详细了解调度算法相关的知识可以参考这篇文章 操作系统学习...

    逻辑地址和物理地址的相互转换

    注:本文只适用于做题,想更详细了解调度算法相关的知识可以参考这篇文章😄 👉操作系统学习笔记第四章存储管理


    🐳基础概念

    逻辑地址(Logical Address):在计算机体系结构中是指应用程序角度看到的内存单元(memory cell)、存储单元(storage element)、网络主机(network host)的地址,又叫相对地址。 是在网络层及以上使用的地址(ip地址就是其中一种)。

    image-20220426125009453

    逻 辑 地 址 = 页 号 地 址 + 页 内 地 址 逻辑地址=页号地址+页内地址 =+

    物理地址(Physical Address):是在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,又叫实际地址绝对地址、mac地址或硬件地址。是在数据链路层和物理层使用的地址。

    image-20220426125024343

    物 理 地 址 = 块 号 地 址 + 块 内 地 址 = 块 号 地 址 + 页 内 地 址 块 号 地 址 = 块 号 ∗ 块 大 小                                                          物理地址=块号地址+块内地址=块号地址+页内地址\\ 块号地址=块号*块大小~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ =+=+=                                                        
    注:在分段存储中块号地址又叫段首地址,在分页存储中块号又叫页框号,块内地址在数值上是和页内地址等价的


    逻辑地址和物理地址相互转换的本质是块号地址和页号地址的相互转换

    🐳逻辑地址转换成物理地址

    • 逻辑地址转为物理地址一般性步骤
      • 如果题目给出段表
        • 通过逻辑地址确定段号(S)
        • 查询段表,通过段号(S)确定段首地址(块号地址)
        • 通过逻辑地址确定页内地址
        • 物理地址 = 块号地址+ 页内地址
      • 如果逻辑地址是16进制(当然也可以用于10进制只是比较麻烦)
        • 将逻辑地址的16进制转换成2进制
        • 确定页号。通过页面数确定页号地址位数m,页号地址为2进制逻辑地址前m位,从而确定页号
        • 确定块号地址。通过页号确定块号,从而求得块号地址
        • 确定页内地址。通过页面大小确定页内地址位数n,页内地址为2进制逻辑地址后n位
        • 物理地址 = 块号地址+ 页内地址
      • 如果逻辑地址是10进制
        • 确定页号。页号 = 逻辑地址/页面大小(注意页面大小的单位要是字节,非字节换算成字节)
        • 确定块号地址。通过页号确定块号,从而求得块号地址
        • 确定页内地址。页内地址 = 逻辑地址 mod 页面大小
        • 物理地址 = 块号地址 + 页内地址

    image-20220421181721480

    逻辑地址
    页内地址
    段号
    块号地址
    物理地址
    • step1:通过段号2确定段首地址480K,块号地址 = 480*1024B
    • step2:通过题目可以知道页内地址为:154
    • step3:物理地址 = 块号地址 +页内地址 = 480*1024 + 154 = 491674B

    🚝思维拓展: 如果逻辑地址为:(2,854B )或(2,30k)那么物理地址是:480*1024+854?480*1024+30*1024?不知道答案可以接着往下看🐶

    image-20220421222525928

    除以页面大小
    mod页面大小
    物理地址
    页内地址
    逻辑地址
    页号
    块号地址

    方法一

    • Step1:确定页号。页号 = 2100/1024 = 2
    • Step2:确定块号地址。根据题目条件可知,页号2对应块号6,所以 块号地址 = 6*1024
    • Step3:确定页内地址。页内地址 = 2100 mod 1024 = 52
    • Step4:物理地址 = 6*1024 + 52 = 6196

    方法二

    2进制逻辑地址
    2进制逻辑地址
    页面数
    页号地址位数m
    页号
    块号
    块号地址
    物理地址
    页面大小
    页内地址位数n
    页内地址
    • Step1:将操作数地址(逻辑地址)10进制转成2进制,2100D = 1000 0011 0100(2)
    • Step2:通过页面数确定页号地址位数。页面数为 4 = 2^2,所以页号地址位数为2(逻辑地址最前面两位)
    • Step3:确定块号。页号 = 10(2) = 2,对应第3个页面,所以块号为6
    • Step4:确定块号地址。块大小为1024字节,所以:块号地址 = 6*1024
    • Step5:通过页面大小确定页内地址位数。页面1024B = 2^10b,所以页内地址位数为10
    • Step6:确定页内地址。页内地址 = 00 0011 0100(2) = 52(逻辑地址后10位)
    • Step7:物理地址 = 块号地址 + 页内地址 = 6*1024+52 = 6196

    同理可求得操作数3100的物理地址为:8220

    上面两种方法其实都是将逻辑地址中的页号地址换成物理地址中的块号地址(这就是转换的本质)

    逻辑地址:1000 0011 0100(2) = 2100D = 834H

    物理地址:1 1000 0011 0100(2) = 6196D = 6100H

    第一题也可以一样的操作:

    页号地址:10,页内地址:154B=1232b=100 1101 0000(2);

    块号地址:480k*1024*8=3932160b=11 1100 0000 0000 0000 0000(2)

    逻辑地址:1 0100 1101 0000(2)

    物理地址:11 1100 0000 0100 1101 0000(2)


    现在继续第一题的思维拓展:

    1. 当逻辑地址为(2,854B )时,同理可以求得
    2. 当逻辑地址为(2,30k)时,页内地址30k>段长度20k,地址发生越界,该逻辑地址非法故无法转换成物理地址

    image-20220427215330267

    1)

    • Step1:将16进制逻辑地址转换称2进制。0468H = 0000 0100 0110 1000(2)
    • Step2:确定页号。页面数 32 = 2^5,故页号地址位数为5,所以 页号 = 00000(2)=0D
    • Step3:确定块号地址 。页号0对应块号5,所以 块号地址 = 5*1024
    • Step4:确定页内地址。页面大小:2KB = 2^11,故页内地址位数为11,所以 行内地址 = 100 0110 1000(2) = 1128D
    • Step5:物理地址 = 5*2048 + 1128 = 11368

    对比一下:

    逻辑地址:0000 0100 0110 1000(2) = 1128D = 0468H

    物理地址:10 1100 0110 1000(2) = 11368D = 1868H

    2)略……以后再写


    🐳物理地址转换成逻辑地址

    逆向过程🙉
    在这里插入图片描述

    展开全文
  • 击上方“嵌入式应用研究院”,选择“置顶/星标公众号”干货福利,第一时间送达!本文是关于操作系统中逻辑地址和物理地址之间的区别。计算机操作系统中的内存使用两种不同类型的地址。物理地址是内存的...

    击上方“嵌入式应用研究院”,选择“置顶/星标公众号

    干货福利,第一时间送达!

    本文是关于操作系统中逻辑地址和物理地址之间的区别。计算机操作系统中的内存使用两种不同类型的地址。物理地址是内存的实际地址,如RAM,虚拟地址只是缓存和RAM之间的逻辑地址映射。

    在操作系统中,每当我们谈论代码或其部分的地址或地址空间时,我们指的是该部分代码所在的内存位置。让我们通过一个现实生活中的异常来了解操作系统中的寻址。在现实生活中,我们的房子都有特定的地址,所以如果我们想去某个特定的人的地方,我们会记得他/她的房子的地址。操作系统中的地址也是如此。我们将数据存储在不同位置的内存中,并为它们分配不同的地址,以便我们将来可以使用存储它们的相同地址再次访问它们。在操作系统中,我们使用 32 位体系结构中的 32 位地址空间和0xFFFFFFFF形式的十六进制数,从 0x000000000xFFFFFFFF

    在对地址以及为什么需要它们进行了快速讨论之后,我们现在将区分逻辑地址和物理地址。

    1、逻辑地址简介

    当我们谈论逻辑地址时,我们指的是CPU分配给每个进程的地址。正如我们已经讨论过的,一个进程在内存中所处的实际地址与进程认为它所处的地址是不一样的。这种地址映射基本上是在进程共享内存时所必需的,而不需要让进程知道它们彼此共享相同的内存空间。现在让我们来讨论逻辑地址。

    每当 CPU 运行一个进程时,它都会为该进程分配一个特定的内存。下图简要说明了内存段在不同部分的划分,其中程序代码段位于低地址,栈位于高地址。

    4c21d6a531ac7082e59d7ea411be68a1.png

    图1.1:进程的内存空间

    此分配的内存空间位于 CPU 为进程生成的虚拟地址(虚拟或逻辑地址),指示进程的代码、堆和堆栈部分将驻留的进程的内存空间。这个逻辑地址无疑与内存空间的实际地址不同。虚拟地址也称为指向主存储器中实际或物理地址的引用或指针。

    大多数操作系统在其程序中都定义了基地址,在生成逻辑地址时,CPU 生成一个地址,程序将基地址与 CPU 生成的地址相加得到逻辑地址,即

    逻辑地址 = 基地址 + CPU 生成地址

    一个逻辑地址空间是指CPU产生的所有逻辑地址的集合。

    2、物理地址简介

    物理地址是进程及其内容放置在主内存或硬盘中的地址。每当我们运行一个进程或将一些数据存储在计算机的主存储设备或辅助存储设备中时,我们总是将其存储起来以备将来随时访问。比如我在电脑的D盘存了一个word文件,我想访问它,以后怎么访问?当然是去D盘打开word文件。但是如果我将一个进程保存在主存中的某个存储单元或内存单元中,并希望将来访问它,该怎么办。就我们在本教程中研究过的地址而言,我们知道每当一个进程被创建时,CPU 都会生成它的虚拟地址,但又是一团糟。虚拟地址与进程实际放置在内存中的地址不同。

    然而,内存单元存储在由物理地址(用户未知)访问的主内存中,我们所知道的只是进程的逻辑地址。那么当我们需要访问进程的时候我们将如何访问物理地址呢?到目前为止,这似乎是不可能的,但这当然不是因为我们从计算机诞生到现在一直在访问创建的进程。

    因此,我们需要详细讨论这个问题。在进程创建时,CPU 不仅会生成虚拟地址,还会使用一些硬件支持将(先前生成的)虚拟地址映射到实际存储它的物理地址,这在下面的地址映射部分进行了讨论。因此,当我们尝试访问内存中已经保存的进程时,CPU 将虚拟地址返回给硬件,硬件将虚拟/逻辑地址映射到物理地址上,并间接访问进程的内存空间。

    2.1、地址映射

    现在让我们讨论硬件如何在逻辑地址和物理地址之间执行映射。在CPU和内存管理单元(MMU)的硬件中安装有助于地址的映射。下图很好的解释了。

    66627a8044da19e9a5399c8756495adc.png

    图1.2:逻辑地址到物理地址的映射

    这个内存管理单元对逻辑地址上的物理地址执行所有必需的映射。由MMU执行的非常基本的映射是由一种称为界限和基址的方案执行的。这是执行映射可以使用的最简单的方法。随着地址的映射变得越来越复杂,我们需要向内存管理单元添加越来越多的硬件。让我们讨论基址寄存器和界限寄存器。

    2.2、基址和界限法

    c280d7619566d698c0aea4b7576017fd.png

    图1.3:基地址和边界地址的转换

    在基于界限和基址的方法中,每个 MMU 单元都有两个寄存器,称为基址寄存器和界限寄存器。基址寄存器中包含特定进程(正在运行)的内存部分的起始地址。例如,当硬件需要取一些指令时,首先需要将基址寄存器的值与逻辑地址相加,得到物理地址。因此,基址寄存器与访问内存有关,另一方面,界限寄存器要么存储特定进程的内存部分的结束地址,要么还可能包含内存部分的总大小(包括代码、堆栈和堆)。它仅用于保护,以便进程不超过分配给它的内存区域,并且它可能不会跳入另一个进程的内存区域。下面给出了逻辑地址和物理地址的一般比较。


    物理地址逻辑地址
    定义物理内存地址虚拟地址
    空间内存空间所在的实际内存地址引用物理地址/实际地址,称为逻辑地址空间
    可见性只对开发人员可见,对程序员不可见只对用户可见
    访问用户在任何情况下都无法访问用户可以轻松访问
    生成由 CPU 生成由 MMU 生成
    3 、文献引用

    [1] Yuvayana. (2020, August 13). What Is Memory Management Unit (MMU)? https://er.yuvayana.org/what-is-memory-management-unit-mmu/

    [2] Colin walls, & Dimitrios serpanos. (2012). Memory Management Unit. https://www.sciencedirect.com/topics/computer-science/memory-management-unit

    往期精彩

    STM32系统bootloader应用

    GitHub上最励志的计算机自学教程

    "结构体"和"共用体"在单片机中的妙用

    STM32硬核DIY机械键盘|蓝牙USB双模|灯控

    觉得本次分享的文章对您有帮助,随手点[在看]并转发分享,也是对我的支持。

    展开全文
  • 题目:请指出下列指令的源操作数的寻址方式,并计算物理地址. 设(DS)=2000H, (ES)=2100H, (SI)=00A0H, (SS)=1500H, (BX)=0100H, (BP)=0100H, 数据变量WAL的偏移地址为0050H, 1.MOV AX,[100H] ;直接寻址 2000H*10H+...

    一、经典例题

    题目:请指出下列指令的 源操作数 的寻址方式,并计算物理地址

    设(DS)=2000H,(ES)=2100H,(SI)=00A0H,(SS)=1500H, (BX)=0100H,

    (BP)=0100H,数据变量WAL的偏移地址为0050H。

    1.MOV AX,[100H]; 直接寻址 2000H*10H+100H=20100H
    
    2.MOV AX,[BX]; 寄存器间接寻址 2000H*10H+0100H=20100H
    
    3.MOV AX,ES:[BX]; 寄存器间接寻址 ES*10H+BX=2100H*10H+0100H=21100H  ;“ES:[BX]”才对
    
    4.MOV AX,[BP]; 寄存器间接寻址 SS*10H+BP=1500H*10H+0100H=15100H  ;BP(或者SP),用SS。其他一般选DS。
    
    5.MOV AX,[BX+10H]; 寄存器相对寻址 2000H*10H+0100H+10H=20110H
    
    6.MOV AX,WAL[BX]; 寄存器相对寻址 2000H*16+0100H+0050H=20150H
    
    7.MOV AX,[BX][SI]; 基址加变址寻址 2000H*10H+0100H+00A0H=201A0H
    
    8.MOV AX,WAL[BX][SI]; 基址变址相对寻址 20000H+0100H+0050H+00A0H=201F0H
    

    栈段寄存器(SS, Stack Segment):存放栈段的 段描述符 索引(该段描述符中包含栈段的线性基址)。

    数据段寄存器(DS(Data Segment)、ES、FS、GS):存放数据段的段描述符索引(这些描述符中均包含数据段的线性基址)。
    其中,DS数据段含有程序使用的大部分数据,ES、FS和GS分别对应IA-32中引入的附加数据段。ES数据段可以为某些串指令存放目的数据。

    1.汇编语言 SI DI BX BP SS DS 是什么
    
    SI: 16位寄存器,源变址寄存器
    
    DI: 16为寄存器,目的变址寄存器
    
    BX: 16位寄存器(可分成2个8位寄存器BH,BL),基址寄存器
    
    BP: 16位寄存器,基址指针寄存器
    
    SS : 16位段寄存器,作用是存放当前堆栈段的段地址,一般和SP连用
    
    DS: 16为段寄存器,作用是存放当前数据段的段地址
    
    2.怎样根据这些求物理地址
    
    有个公式: 物理地址 = 基础地址 + 偏移地址 = CS*10H(基础地址)+ IP(偏移地址)
    
    CS: 16位段寄存器,存放当前代码段的段地址
    
    IP: 存放下一条要执行的指令的偏移地址
    
    物理地址=段地址×16+偏移地址,指令中出现BP作地址,则其段地址为SS,否则就为DS。这里的16是十进制的。
    

    Q:地址加法器是工作的?
    A:地址加法器可以将输入分为段地址和偏移地址,而输出则是物理地址,
    其中 段地址×16 + 偏移地址 = 物理地址

    Q: 段地址为什么要乘 16或10H ?
    A:因为寄存器是16位的,乘 16 后相当于左移 4 位,留出来 4 个位置供偏移地址补上。加上后就变成了 20 位,就能放入地址总线中了。

    二、练习题

    1.现有AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(3120H)=02H,(31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位ZF、CF的值。

       A.ADD	AX,1200H	;问AX=____3200____H  	ZF=_0____。
       B.SUB	AX,BX  	;问AX=__e00_____H  	ZF=__0___。
       C.MOV   AX,[BX] 	;问AX=____50____H  	CF=__0___。	  
    

    SUB:减法
    2000H-1200H=0E00H 借一当16,16-2=14 14就是E
    在这里插入图片描述
    进位标志CF(Carry Flag):主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。CY(1) NC(0)
    零标志ZF(Zero Flag):如果计算结果的所有位是0,ZF=1,否则,ZF=0。ZR(1) NZ(0)

    MOV AX,[BX]; 寄存器间接寻址   AX = DS×10+BX  =   3000H*10H+1200H=31200H =50H
    

    2.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H,说明下列指令执行后AX寄存器的内容。

    (1)MOV AX,1200H   
    1200H
    (2)MOV AX,BX
    100H
    (3)MOV AX,[1200H]
    2AH
    (4)MOV AX,[BX]
    12H
    (5)MOV AX,1100H[BX]
    2AH
    (6)MOV AX,[BX][SI]
    56H
    (7)MOV AX,1100H[BX][SI]
    B7H
    

    3.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( A )

    A. 1400H      B. 77F8H     C. 0000H      D. 0FFFFH
    

    在这里插入图片描述
    4.设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下的有效地址,填入括号中

    A.使用D的直接寻址(    A2B1         )
    B.使用BX的寄存器间接寻址(   1000      )
    C.使用BX和D的寄存器相对寻址(   B2B1        )
    D.使用BX、SI和D的相对基址变址寻址(   B3B1      )
    E .使用BX、SI的基址变址寻址(    1100       )
    

    5.分别指出下列指令中源操作数的寻址方式:

    A.	MOV SI,100(   立即寻址      )
    B.	MOV CX,DATA[SI](    寄存器相对寻址       )
    C.MOV [SI],AX(    寄存器寻址      )
    D.ADD AX,[BX][DI](   基址加变址寻址     )
    

    6.设(SS)= 448AH,(SP)= 450H,执行
    PUSH AX
    PUSHF
    后,当前栈顶的物理地址=___ B ___。

    A.44CE6H			B.44CECH			C.44CF4H			D.44CF2H
    

    在这里插入图片描述
    SS×10+SP=448AH×10+ 044CH = 44CECH

    分析:

    PUSH AX;    AX是16位寄存器,2个字节,所以SP-2
    PUSHF;      把标志寄存器FLAGS的值入栈,也是2个字节,所以SP-2
    SP-4=044CH
    物理地址是: 448AH左移四位(乘十)+ 044CH = 44CECH
    

    7.操作数直接存放在指令中,则它的寻址方式是( D )。

    (A) 直接寻址       (B) 寄存器寻址   (C) 寄存器间接寻址   (D) 立即寻址
    

    8.MOV AX,ES:COUNT[DI] 源操作数的寻址方式是( C )

    A. 基址寻址      B. 立即寻址    
    C. 变址寻址     D. 基址变址寻址 
    

    9.指令MOV BX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为( B )

    A. 17500H           B. 16500H     
    C. 14500H           D. 13500H 
    

    10.已知(DS)=3000H,(SS)=2500H,(BX)=0100H,(BP)=0040H,指令MOV AX,DS:[BP] 源操作数的物理地址是( B )。

    A.25040H     	B. 30040H   		  C.25100H   		    D. 55040H
    

    11.MOV BH,1000[SI],该指令中源操作数采用的寻址方式是( C )。

       A.立即			B.直接		C.寄存器相对		D.寄存器间接
    

    三、概念题

    1.在ARM体系结构中,( A )寄存器作为连接寄存器,当进入子程序时或者处理器响应异常的时候,用来保存PC的返回值;( )寄存器作为处理器的程序计数器指针。

    A.R14,R15    B.R13,R15    C.R13,R15     D.R14,R13
    

    2.在下列ARM处理器的各种模式中,只有( B )模式不可以自由地改变处理器的工作模式。

    A.系统模式(System)     B.用户模式(User)
    C.终止模式(Abort)      D.中断模式(IRQ)
    

    3.设CS=2500H,DS=2500H,SS=2430H,BP=0200H,SI=0010H,DI=0206H,计算下列x86指令源操作数的物理地址。( D )
    MOV AX,[BP+SI+4]

    A.25214H   B.25514H   C.24214H    D.24514H
    

    解答:

    看见BP 选SS
     SS*10+BP + SI + 4 = 24300 + 200 + 10 +4 = 24514
    

    4.用十六进制工具查看IMAGE_ FILE_HEADER结构的情况时,以下字段中( B )代表可执行文件的目标CPU类型。

    A.NumberOfSections      B.Machine
    C.TimeDateStamp         D.Characteristics 
    

    5.MOV AX,[BX+SI]的源操作数的物理地址是( A )

    A.(DS)*10H+(BX)+(SI)      B.(ES)*10H+(BX)+(SI)
    C.(SS)*10H+(BX)+(SI)      D.(CS)*10H+(BX)+(SI)
    

    四、操作题

    1.若(CL)= 4,(AX)=0FF0FH,执行语句“ROR AX,CL”后 ,(AX)=( FFF0 )H。
    在这里插入图片描述
    ROR循环右移

    1.现有AX=1500H,BX=1200H,DS=3000H,DI=0002H,(31200H)=70H,(3120H)=12H,(31202H)=50H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位ZF的值。(每空1分,共5分)
    ADD AX,2100H;问AX=( 3600 )H ZF=( 0 )。
    SUB AX,BX;问AX=( 300 )H ZF=( 0 )。
    MOV AX,[BX] ;问AX=( 70 )H
    在这里插入图片描述

    一段x86汇编程序如下:( )
    PUSH BX;
    PUSH AX;
    PUSH BX
    POP CX;
    PUSH BX;
    PUSH AX
    POP CX
    假设AX=1357H,BX=2468H,DS=2000H,SS=4000H则程序执行完后,CX等于多少?( A )
    A.1357H B.4468H
    C.3357H D.6468H

    1. 设(SS)=0FFA0H,(SP)=00B0H,(AX)=8057H,(BX)=0F79H,执行指令"PUSH AX"后,(SP)= ( 00AE );再执行指令:
      PUSH BX
      POP AX
      后,(SP)= ( 00AE ) ,(AX)= ( 0F79 ),(BX)= ( 0F79 )。

    注:这里不用-r输入SS的值,只输入SP、AX、BX的值。

    1. MOV AX, 0001H
      MOV BX, 0002H
      PUSH BX
      PUSH AX
      POP BX ;执行后 BX=( 01 )
      POP AX ;执行后 AX=( 02 )
      MOV AX,3F5FH ;执行后 AL=( 5F )
      AND AL,0FH ;执行后 AL=( 0F )
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 这里,我们讲解一下Linux是如何将虚拟地址转换成物理地址的 一、地址转换 在进程中,我们不直接对物理地址进行操作,CPU在运行时,指定的地址要经过MMU转换后才能访问到真正的物理内存。 地址转换的过程分为两部分...
  • 物理地址和逻辑地址的区别

    千次阅读 2021-07-26 03:44:55
    今天学习啦小编给大家介绍一下物理地址和逻辑地址的区别。供大家参考!物理地址和逻辑地址的区别参考如下MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。IP地址与MAC地址在计算机里...
  • 虚拟地址空间和物理地址空间

    千次阅读 2022-02-21 23:45:48
    平时以虚拟形式存储,当应用程序使用虚拟地址访问内存时/a.out执行,mmu将虚拟地址转换为物理地址执行(正常文件存储在磁盘中) 段错误:内存访问非法,内核空间受保护 堆空间存储后一定要释放 在进程里平时所说的...
  • 2016-11-30 07:29:28可通过这种办法确定自己的IP设置的正确性和获得本机网卡的物理地址(MAC地址),方法如下: 1、打开“开始”-“运行”-在弹出窗口中输入 'cmd' -“确定”2、在DOS窗口下输...2017-01-09 16:01:...
  • 最近,有位深度技术XP系统的用户反映自己在使用网络连接的时候,突然遇到了需要更改物理地址的情况,可是操作了半天,也没有更改成功,这该怎么办呢?接下来,小编就向大家分享WinXp系统修改物理地址的具体方法。...
  • 物理地址和虚拟地址的区别

    千次阅读 2019-10-30 21:23:35
    1)物理地址: CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中 很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上 (如显存、 BIOS等)。在程序指令中的虚拟地址经过段映射和页面映射后...
  • 怎么查询电脑物理地址

    千次阅读 2021-07-27 03:43:46
    有的时候,我们会需要知道电脑的物理地址,那这个就需要对它进行查看。下面小编就和大家分享查询电脑物理地址的方法,来欣赏一下吧。查询电脑物理地址的方法1.点开始菜单,然后找到并打开“运行”(或者直接敲击键盘...
  • 7.物理地址(MAC地址)是什么?

    千次阅读 2021-05-09 23:53:08
    由于网络设备对物理地址的处理能力有限,物理地址只在当前局域网内有效。所以,接收方的物理地址都必须存在于当前局域网内,否则会导致发送失败。 MAC 地址的英语是 Media Access Control Ad...
  • 虚拟地址和物理地址

    千次阅读 2021-09-28 20:57:20
    物理地址:物理内存就是真实的内存,CPU的地址线可以直接进行寻址的内存空间大小。比如在32位平台下,寻址的范围是2^32也就是4G,并且这是固定的。 在实际的应用中,很多的应用程序都比较大,计算机实际所配置的内存...
  • 逻辑地址、物理地址、虚拟地址

    千次阅读 2020-08-21 15:44:07
    文章目录物理地址(physical address)虚拟地址(virtual memory)逻辑地址(logical address)线性地址(linear address)或也叫虚拟地址(virtual address)地址转换 物理地址(physical address) 用于内存芯片级的单元寻址,...
  • 电脑物理地址怎么查

    千次阅读 2021-07-25 03:58:48
    电脑物理地址怎么查呢?一起来了解一下吧。产品名称:Dell产品型号:Dell 灵越5000系统版本:Windows 101、按“WIN+R”打开运行面板2、输入“cmd”后点击“确定”3、在命令提示符里输入“ipconfig -all”后按回车键4...
  • 虚拟地址与物理地址的转换

    千次阅读 2021-05-10 23:30:38
    在虚拟地址空间那篇文章中我们通过虚拟地址空间简单地介绍了虚拟地址空间,知道了应用程序中使用的是虚拟地址,需要通过MMU转换成物理地址,本文将详细介绍虚拟地址如何转换成物理地址。 页、页框、页表 linux操作...
  • 但凡能上网的电脑都有网卡,而网卡本身都有物理地址,也就是MAC地址,这个地址通常是固定的,不用改动,但如果因为个别因为需要修改,也是可以的。那么,Win10如何修改物理地址呢?下面,我们就一起往下看看Win10...
  • 浅谈逻辑地址和物理地址

    千次阅读 2022-03-29 23:20:37
    在程序运行时由中央处理单元生成的内容的地址称为逻辑地址。该地址也称为虚拟地址。当我们谈论逻辑地址时,我们指的是CPU分配给每个进程的地址,一个进程在内存中...物理地址是进程及其内容放置在主内存或硬盘中的地址
  • 01、物理地址 02、有效地址 03、逻辑地址 04、线性地址 。。。 。。。
  • 物理地址是怎么确定的?以8086为例

    千次阅读 2021-11-20 10:01:48
    物理地址 我们知道,CPU 访问内存单元时,要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地址称为物理地址。 8086是16位...
  • 目录 L0 L1 L2 表项 L3 表项 总结 pgd_t 不只是物理地址 谈谈对映射的理解 思考 当你不去细细读代码的话,这个问题可能会困扰着你。我们以ARM64四级页表为例,谈谈页表项里藏得是什么。本文讨论的是内核线性映射过程...
  • Linux 下面对物理地址的访问

    千次阅读 2021-05-12 08:10:45
    Linux内核提供了/dev/mem驱动,提供了一种直接访问内存物理地址的方法,具体实施有两种方法,一是设备驱动,二是系统调用的方法。/dev/mem驱动的源文件在drivers/char/mem.c中。这个文件还生成了一些常用的字符设备...
  • 逻辑地址转物理地址(操作系统)

    千次阅读 多人点赞 2021-12-23 15:01:26
    逻辑地址转物理地址
  • 怎样修改手机的物理地址

    千次阅读 2021-01-16 19:48:02
    MAC地址是网卡地址是一个固定的物理地址不像IP地址是自己设置的MAC地址,那么呢?今天小编与大家分享下修改手机的物理地址的具体操作步骤,有需要的朋友不妨了解下。修改手机的物理地址方法一1、手机先root2、安装RE...
  • 如何在Win10版中修复MAC物理地址?我们都知道,可以访问Internet的计算机基本上都有一个网卡,并且每个网卡都有自己的唯一MAC地址. 但是,某些Win10 Professional系统用户希望能够修改网卡的MAC地址以实现Internet...
  • 在互联网的世界里,每一台电脑都有两个地址,一个是IP地址,一个是MAC地址(即物理地址)显示ip。有些时候,许多查看这两个地址。那么,如何进行查看呢?1,首先,按快捷键win+R,打开“运行”对话框显示ip。或者点击...
  • 物理地址与逻辑地址的关系

    千次阅读 2022-01-28 14:50:50
    物理地址与逻辑地址的关系
  • Windows10系统修改物理地址的方法

    千次阅读 2021-07-27 07:26:46
    比如,一位朋友想要修改网卡的物理地址,可是不知道如何操作,该怎么办呢?今天,系统城小编给大家分享下Win10修改物理地址的操作方法!具体如下:1、查看mac地址的方法有多种,在这里介绍一个命令行快速查看,在...
  • 查看电脑的物理地址

    千次阅读 2021-12-04 09:25:50
    如何快速查看自己电脑的物理地址呢? 上一篇讲到如何把逻辑地址转换为物理地址,但仅仅涉及页式存储的求解。 下面来看看如何如何查看自己电脑的物理地址 方法一:CMD命令查看 1:点击快捷键“win+R”或右击...
  • 线性地址转换物理地址

    千次阅读 2019-05-16 09:36:16
    当开启页映射时,我们所有的线性地址都是虚拟地址,只是给我们看的,但是真正的物理地址需要经过线性地址一系列的映射才会到真正的物理地址处。 一般是通过三级或者四级映射。 也就是10-10-12或者2-9-9-12。 今天...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 684,556
精华内容 273,822
关键字:

物理地址

友情链接: music.rar