为您找到与线性地址转换为物理地址相关的共200个结果:
虚拟地址转换为物理地址的第一步是将从处理器得到的虚拟地址和TLB中的虚拟地址进行比较。,今天读文网小编与大家分享下虚拟地址与物理地址的转换,有需要的朋友不妨了解下。
CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit,内存管理单元),或者有MMU但没有启用,CPU核在取指令或访问内存时发出的地址将直接传到CPU芯片的外部地址引脚上,直接被内存芯片(以下称为物理内存,以便与虚拟内存区分)接收,这称为物理地址(Physical Address,以下简称PA),如下图所示。
物理地址示意图
如果CPU启用了MMU,CPU核发出的地址将被MMU截获,从CPU到MMU的地址称为虚拟地址(Virtual Address,以下简称VA),而MMU将这个地址翻译成另一个地址发到CPU芯片的外部地址引脚上,也就是将虚拟地址映射成物理地址,如下图所示[1]。
虚拟地址示意图
MMU将虚拟地址映射到物理地址是以页(Page)为单位的,对于32位CPU通常一页为4K。例如,虚拟地址0xb700 1000~0xb700 1fff是一个页,可能被MMU映射到物理地址0x2000~0x2fff,物理内存中的一个物理页面也称为一个页框(Page Frame)。
内核也不能直接访问物理地址.但因为内核的虚拟地址和物理地址之间只是一个差值0xc0000000的区别,所以从物理地址求虚拟地址或从虚拟地址求物理地址很容易,+-这个差就行了
物理地址(physical address)
用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。也许错误的理解更利于形而上的抽像。
虚拟内存(virtual memory)
这是对整个内存(不要与机器上插那条对上号)的抽像描述。它是相对于物理内存来讲的,可以直接理解成“不直实的”,“假的”内存,例如,一个0x08000000内存地址,它并不对就物理地址上那个大数组中0x08000000 - 1那个地址元素;
之所以是这样,是因为现代操作系统都提供了一种内存管理的抽像,即虚拟内存(virtual memory)。进程使用虚拟内存中的地址,由操作系统协助相关硬件,把它“转换”成真正的物理地址。这个“转换”,是所有问题讨论的关键。
有了这样的抽像,一个程序,就可以使用比真实物理地址大得多的地址空间。(拆东墙,补西墙,银行也是这样子做的),甚至多个进程可以使用相同的地址。不奇怪,因为转换后的物理地址并非相同的。
——可以把连接后的程序反编译看一下,发现连接器已经为程序分配了一个地址,例如,要调用某个函数A,代码不是call A,而是call 0x0811111111 ,也就是说,函数A的地址已经被定下来了。没有这样的“转换”,没有虚拟地址的概念,这样做是根本行不通的。
打住了,这个问题再说下去,就收不住了。
逻辑地址(logical address)
Intel为了兼容,将远古时代的段式内存管理方式保留了下来。逻辑地址指的是机器语言指令中,用来指定一个操作数或者是一条指令的地址。以上例,我们说的连接器为A分配的0x08111111这个地址就是逻辑地址。
——不过不好意思,这样说,好像又违背了Intel中段式管理中,对逻辑地址要求,“一个逻辑地址,是由一个段标识符加上一个指定段内相对地址的偏移量,表示为 [段标识符:段内偏移量],也就是说,上例中那个0x08111111,应该表示为[A的代码段标识符: 0x08111111],这样,才完整一些”
线性地址(linear address)或也叫虚拟地址(virtual address)
跟逻辑地址类似,它也是一个不真实的地址,如果逻辑地址是对应的硬件平台段式管理转换前地址的话,那么线性地址则对应了硬件页式内存的转换前地址。
-------------------------------------------------------------
CPU将一个虚拟内存空间中的地址转换为物理地址,需要进行两步:首先将给定一个逻辑地址(其实是段内偏移量,这个一定要理解!!!),CPU要利用其段式内存管理单元,先将为个逻辑地址转换成一个线程地址,再利用其页式内存管理单元,转换为最终物理地址。
这样做两次转换,的确是非常麻烦而且没有必要的,因为直接可以把线性地址抽像给进程。之所以这样冗余,Intel完全是为了兼容而已。
物理地址就是,机器内主存的地址,包括RAM和ROM
逻辑地址就是,程序运行在内存中,使用的地址。
虚拟地址就是,cpu支持的内存空间远远大于机器主存的大小,这些多出来的空间对于程序来说是可以用的,这个时候的所有地址都称为虚拟地址
物理地址:最小系统下的存储器的实际地址,一般只是由CPU内存控制器(地址线)可以管理的容量为最大地址,而实际上这个容量(由地址产生的)远大于实际存在的容量;实际的存储器容量所需要的地址(内存)控制器管理的容量;它的大小一般由芯片决定
逻辑地址:相对程序员而言使用的地址,或说程序无需知道具体的实际地址管理数,而只要在系统(操作)允许范围内使用就行了(这时使用的是一种算法控制下的地址,实际上它只是借用地址概念产生的程序运行模式),它所要说明的是方便,也就是一个线性的(最好)的程序(指令)排列方式。它的大小一般由操作系统决定
虚拟地址:将具有存储功能的所有存储器(不仅仅是最小系统概念下的),进行“统一”编址,而不考虑存储器之间的差异(快慢等),这时的地址是一个比逻辑地址理会数学化的编号(地址),它的大小等往往由应用程序决定
看过“虚拟地址与物理地址的转换”
浏览量:2
下载量:0
时间:
IP地址与物理地址怎么转换?对于这个问题,相信网管们都会说很简单,不过我们小白朋友不知道啊,那么IP地址与物理地址怎么转换呢?今天读文网小编与大家分享下IP地址与物理地址转换的解决方法,有兴趣的朋友不妨了解下。
为什么要将IP段地址转化成数字地址?
根据TCP/IP协议规定,IP地址是由32位二进制数组成,而且在INTERNET范围内是唯一的。例如,某台联在因特网上的计算机的IP地址为:
11010010 01001001 10001100 00000010
很明显,这些数字对于人来说不太好记忆。人们为了方便记忆,就将组成计算机的IP地址的32位二进制分成四段,每段8位,中间用小数点隔开,然后将每八位二进制转换成十进制数,这样上述计算机的IP地址就变成了:118.123.15.102。
由于在同一个区域里,IP段都是很相近的,如果拿IP段(118.123.15.102)直接进行比较,在操作上很是麻烦,而且数据的存储也不易实现,所以才会把IP转换成数字地址,再来确定IP段的物理地址。
理解了IP的概念之后,诸如IP(118.123.15.102)怎样转换成数字地址呢?
IP本是32为二进制,为了方便记忆才转化成了四段十进制,所以只要把IP还原成二进制,再转换成十进制就可以得到IP的数字地址。
.NET C# IP与数字地址相互转化:
//IP转换成数字地址
public static uint IPToInt(string ipAddress)
{
string disjunctiveStr = ".,: ";
char[] delimiter = disjunctiveStr.ToCharArray();
string[] startIP = null;
for (int i = 1; i <= 5; i++)
{
startIP = ipAddress.Split(delimiter, i);
}
string a1 = startIP[0].ToString();
string a2 = startIP[1].ToString();
string a3 = startIP[2].ToString();
string a4 = startIP[3].ToString();
uint U1 = uint.Parse(a1);
uint U2 = uint.Parse(a2);
uint U3 = uint.Parse(a3);
uint U4 = uint.Parse(a4);
uint U = U1 << 24;
U += U2 << 16;
U += U3 << 8;
U += U4;
return U;
}
//数字地址转换成IP
public static string IntToIP(uint ipAddress)
{
long ui1 = ipAddress & 0xFF000000;
ui1 = ui1 >> 24;
long ui2 = ipAddress & 0x00FF0000;
ui2 = ui2 >> 16;
long ui3 = ipAddress & 0x0000FF00;
ui3 = ui3 >> 8;
long ui4 = ipAddress & 0x000000FF;
string IPstr = "";
IPstr = System.Convert.ToString(ui1) + "."
+ System.Convert.ToString(ui2) + "."
+ System.Convert.ToString(ui3)
+ "." + System.Convert.ToString(ui4);
return IPstr;
}
转换成数字地址以后是不是查询起来很是方便,只要介于某个IP段,就可以找出具体的物理地址了。当然,前提是有个巨大的IP库。手头上还有一个IP库,大概有36W+的记录。
IP段转换成真实的物理地址可以用在什么地方?
用途有很多啦,
1、比如流量统计啦,
2、I/M聊天工具里的地理位置显示啦,网页上的地理位置显示啦,
3、门户网站有诸多城市区分的,会根据访问者IP来判断访客应该去访问哪个城市的网站板块,
4、有的天气预报网站,默认的就是访客所在的城市。
看过“IP地址与物理地址怎么转换”
浏览量:3
下载量:0
时间:
逻辑地址和物理地址是什么?逻辑地址如何转换成物理地址?看到很多人都在问这个问题,小编为大家分享了逻辑地址如何转换成物理地址的方法,下面大家跟着读文网小编一起来了解一下吧。
在对硬盘进行故障维护或者进行相关软件开发时,不仅需要将硬盘的物理地址转换成逻辑地址,有时还需要知道逻辑地址转换为物理地址的方法。
根据计算机中符号的常用法则,我们用“div”表示除法运算,用“mod”表示取余数运算,其他参数如C、H、S依然表示硬盘当前的柱面、磁头和扇区号,C1、H1、S1、NS和NH含义也和上面一致。在已知硬盘逻辑地址即逻辑扇区号LS的情况下,求硬盘对应的物理地址的柱面号C、磁头号H和扇区号S的方法如下:
C=((Ls div NS)div NH)+ C1
H=((Ls div NS)mod NH)+ H1
S=(Ls mod NH)+ S1
实例:设硬盘的磁头号为4,每磁道17个扇区,其中逻辑硬盘D的第一个扇区在硬盘的柱面120、磁头1、扇区1上,求逻辑D盘上逻辑扇区为2757编号对应的物理地址是多少?
分析:根据上面的已知条件,我们可知C1=120, H1=1,S1=1,NS=17,NH=4,Ls=2757,则将这些数据代入上面的公式可得:
C=((2757 div 17)div 4)+120=160
H=((2757 div 17)mod 4)+1=3
S=(2757 mod 17)+1=4
即逻辑扇区号Ls为2757的硬盘对应的物理地址为柱面号是160、磁头号是3和扇区号为4。
看过“ 逻辑地址如何转换成物理地址”
浏览量:3
下载量:0
时间:
物理地址是明确的、最终用在总线上的编号。那么逻辑地址转物理地址怎么转?读文网小编为大家介绍逻辑地址转物理地址的解决方法。希望大家喜欢。
物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。这些数字被北桥(Nortbridge chip)映射到实际的内存条上。物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查(no translation, no paging, no privilege checks)。
逻辑地址:CPU所生成的地址。逻辑地址是内部和编程使用的、并不唯一。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址(偏移地址),不和绝对物理地址相干。
(具体步骤 共三步)
1.确定虚拟地址(物理地址)的有效位
例如:假设页面大小1KB,共32页。(页面:逻辑地址 页框:物理地址)
由32(KB)=32×1024(B) 即等于32×1024 字节
二进制用多少位能有效表示这么多字节呢——答是:15位 因为32×1024=2^5×2^10=2^15
2.再次确定逻辑地址页面位数 你应该知道:逻辑地址=页号+页面
还是以上假设,那么页面大小为1KB=1024字节 同样的方法计算出表示位数:10位
如果给你逻辑地址:0000 1111 1000 0000
那么由:011+11100000000(相当于 页号+页面(10位))推得出页号011=3
3.根据页号找出对应的页框号
由 物理地址=页框号×页块大小(页块大小是等于页面大小的)+页内位移(即页面逻辑地址)
根据上面 物理地址=页框号×1024B + 1110000000 ( 这里的相加是指位置上而言)
例如:110+110=110110(即高地址+低地址)
提问:在一分页存储管理系统中,逻辑地址长度为16位,页面大小为4096B,现有一逻辑地址为2F6AH,且第0、1、2页依次存放在物理块5、10、11中,问相应的物理地址为多少?
答:4096B=2^12B
16位寻址一共2^16B
分页存储。共分的页:2^16/2^12=2^4=16 共分16页。
第0页的地址范围 0 - FFFH
第1页的地址范围 1000H - 1FFFH
第2页得地址范围 2000H - 2FFFH
.....
第11页 B000H - BFFFH
第15页 F000H - FFFFH
2F6AH=10 1111 0110 1010 在2页的范围对应物理块11
所以物理地址为:
2F6AH - 2000H + B000H = F6AH + B000H= BF6AH
看过“ 逻辑地址转换物理地址公式 ”
浏览量:2
下载量:0
时间:
在计算机科学中,逻辑地址是什么?线性地址是什么?物理地址优势什么?逻辑地址线性地址物理地址三个地址有什么联系?读文网小编整理了逻辑地址,线性地址以及物理地址的相关资料,下面大家跟着读文网小编一起去了解一下吧。
前面说了Linux中逻辑地址等于线性地址,那么线性地址怎么对应到物理地址呢?这个大家都知道,那就是通过分页机制,具体的说,就是通过页表查找来对应物理地址。
准确的说分页是CPU提供的一种机制,Linux只是根据这种机制的规则,利用它实现了内存管理。
在保护模式下,控制寄存器CR0的最高位PG位控制着分页管理机制是否生效,如果PG=1,分页机制生效,需通过页表查找才能把线性地址转换物理地址。如果PG=0,则分页机制无效,线性地址就直接做为物理地址。
分页的基本原理是把内存划分成大小固定的若干单元,每个单元称为一页(page),每页包含4k字节的地址空间(为简化分析,我们不考虑扩展分页的情况)。这样每一页的起始地址都是4k字节对齐的。为了能转换成物理地址,我们需要给CPU提供当前任务的线性地址转物理地址的查找表,即页表(page table)。注意,为了实现每个任务的平坦的虚拟内存,每个任务都有自己的页目录表和页表。
为了节约页表占用的内存空间,x86将线性地址通过页目录表和页表两级查找转换成物理地址。
32位的线性地址被分成3个部分:
最高10位 Directory 页目录表偏移量,中间10位 Table是页表偏移量,最低12位Offset是物理页内的字节偏移量。
页目录表的大小为4k(刚好是一个页的大小),包含1024项,每个项4字节(32位),项目里存储的内容就是页表的物理地址。如果页目录表中的页表尚未分配,则物理地址填0。
页表的大小也是4k,同样包含1024项,每个项4字节,内容为最终物理页的物理内存起始地址。
每个活动的任务,必须要先分配给它一个页目录表,并把页目录表的物理地址存入cr3寄存器。页表可以提前分配好,也可以在用到的时候再分配。
还是以 mov 0x80495b0, %eax 中的地址为例分析一下线性地址转物理地址的过程。
前面说到Linux中逻辑地址等于线性地址,那么我们要转换的线性地址就是0x80495b0。转换的过程是由CPU自动完成的,Linux所要做的就是准备好转换所需的页目录表和页表(假设已经准备好,给页目录表和页表分配物理内存的过程很复杂,后面再分析)。
内核先将当前任务的页目录表的物理地址填入cr3寄存器。
线性地址 0x80495b0 转换成二进制后是 0000 1000 0000 0100 1001 0101 1011 0000,最高10位0000 1000 00的十进制是32,CPU查看页目录表第32项,里面存放的是页表的物理地址。线性地址中间10位00 0100 1001 的十进制是73,页表的第73项存储的是最终物理页的物理起始地址。物理页基地址加上线性地址中最低12位的偏移量,CPU就找到了线性地址最终对应的物理内存单元。
我们知道Linux中用户进程线性地址能寻址的范围是0 - 3G,那么是不是需要提前先把这3G虚拟内存的页表都建立好呢?一般情况下,物理内存是远远小于3G的,加上同时有很多进程都在运行,根本无法给每个进程提前建立3G的线性地址页表。Linux利用CPU的一个机制解决了这个问题。进程创建后我们可以给页目录表的表项值都填0,CPU在查找页表时,如果表项的内容为0,则会引发一个缺页异常,进程暂停执行,Linux内核这时候可以通过一系列复杂的算法给分配一个物理页,并把物理页的地址填入表项中,进程再恢复执行。当然进程在这个过程中是被蒙蔽的,它自己的感觉还是正常访问到了物理内存。
看过“ 逻辑地址线性地址物理地址三个地址有什么联系”
浏览量:4
下载量:0
时间:
内核也不能直接访问物理地址.但因为内核的虚拟地址和物理地址之间只是一个差值0xc0000000的区别,所以从物理地址求虚拟地址或从虚拟地址求物理地址很容易。那么虚拟地址和物理地址怎么转换?读文网小编整理了修改硬盘物理地址的相关资料。供大家参考!
MVA (Modified Virtual address,修改过的虚拟地址,这个地址由CPU产生#1)
step1.通过TTBR找到粗表描述符
转换表基地址#2 + MVA的粗页表索引 = 粗页表的物理地址
step2.通过粗表描述符找到小页描述符
粗页表基地址#3 + MVA的小页表索引 = 小页表的物理地址
step3.通过小页描述符找到物理地址
小页基地址#4 + MVA的页索引 = 物理地址
step1得到的粗页表的物理地址位定义
step2得到的小页表的物理地址位定义
step3得到的物理地址位定义
注1:严格的说,这个地址是可能是FCSE或ARM926ej-s处理器产生
注2:转换表基地址保存在TTBR,详见TTBR
注3:粗页表基地址保存在粗页表描述符中,详见粗页表描述符
注4:小页表基地址保存在粗页表描述符中,详见小页表描述符
--------------------------------------------------------------------------------------
CP15
系统控制协处理器(CP15)被用来配置和控制ARM926ej-s处理器。cache、mmu都通过CP15的寄存器来控制。需要使用专门的指令访问CP15的寄存器。
ARM926ej-s系统中的地址
ARM926ej-s产生的地址为虚地址(VA),FCSE(快速上下文切换控制器)将VA转换为修改过的虚地址(MVA)供MMU使用,MMU将MVA转换为TCM和AMBA总线的物理地址(PA)。
CP15的c1寄存器
c1寄存器是ARM926ej-s处理器的控制寄存器。该寄存器用来使能或禁用cache、配置MMU。
I 0: 禁用iCache,1使能iCache
C 0:禁用dCache,1使能dCache
如果c1寄存器禁用了cache,小页表的C、B位是无效的。
TLB
MMU是OS分页内存管理的硬件基础。MMU使用TLB(Translation lookaside buffer,即旁路转换缓冲,或称为页表缓冲;用来存放虚拟地址到物理地址的转换表)将虚拟地址转换为物理地址。
TLB保存在SDRAM中。
TTBR
TTBR是Translation Table Base Register的缩写,中文全称是:转换表基地址寄存器。TTBR是协处理器CP15的c2寄存器。
由于读取TTBR时Bit13~Bit0是不可预测的,所以粗页表的起始地址必须是按64K对齐的。
粗表描述符
填充为红色的位固定为0/1。Bit8~Bit5为域控制位,可以定义16个域。
小页描述符
填充为红色的位固定为0/1。AP3~AP0为访问控制位,访问控制位和域控制位配合完成了对内存访问权限的管理。在boot中,禁用域控制,同时将AP3~AP0全部设置为3(任何人都可以读写)。只关注 C cache控制位,B buffer控制位。
#写通。读命中,从Dcche读取数据,读未命中,(cache)行填充;写命中,写数据带Dcache,并缓冲到外边存储器写未命中,缓冲到外部存储器
#写回。读命中,从Dcache读取数据,读未命中,(cache)行填充;写命中,写数据带Dcache ;写未命中,缓冲到外部存储器
虚拟地址到物理地址的转换步骤
已知一个虚拟地址0x01AF5518, 则转换的过程如下:
注意: *这里讨论的以Windows下普通模式分页的情况, 也就是2级页表的情况*
1.首先把虚拟地址拆分成3个部分(低12位, 中10位, 高10位), 换成2进制如下:
-> 0000 0001 1010 1111 0101 0101 0001 1000
按照10, 10, 12的位数重新排列后
-> (页目录索引)00 000 00110, (页表项索引)10 1111 0101, (偏移)0101 0001 1000
换算成十六进制后可以得到如下结果
页目录索引 = 6, 页表项索引 = 0x2f5 , 偏移 = 0x518
2. 根据当前的CR3寄存器中的物理地址定位页目录表基址
Cr3中存放的是物理地址, 这个物理地址指向进程的页目录表基址, 由此可以得到
页目录表基址(PDE) = Cr3 = 0xAA0E5000
3. 计算页表项的地址
页表地址存放在页目录表(PDE)中的第6个项目中, 也就是
[0xAA0E5000 + 4 * 6] = [0xAA0E5018] = 0x3D955867, 其中0x00000867为该页表属性值, PTE = 0x3D955000
3. 计算页面物理地址
我们要找的页面在这个页表中的第0x2f5项, 所以虚拟地址所在的页的物理地址为
[0x3D955000 + 0x2f5 * 4] = [0x3D955BD4] =
假设[0x3D955BD4] = 0x7095e847, 页面的物理地址 x0x7095e000, 0x00000847表示的是页面属性
4. 计算最终的物理地址
由虚拟地址分离的偏移可以计算出最终的物理地址为
0x7095E000 + 0x00000518 = 0x7095E518.
看过“虚拟地址和物理地址转换 ”
浏览量:2
下载量:0
时间:
器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。那么线性地址物理地址是什么呢?今天读文网小编整理了线性地址物理地址的相关资料,希望对大家有帮助。
逻辑地址(Logical Address) 是指由程式产生的和段相关的偏移地址部分。例如,你在进行C语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执行代码段限长内的偏移地址(假定代码段、数据段如果完全相同)。应用程式员仅需和逻辑地址打交道,而分段和分页机制对你来说是完全透明的,仅由系统编程人员涉及。应用程式员虽然自己能直接操作内存,那也只能在操作系统给你分配的内存段操作。
线性地址(Linear Address) 是逻辑地址到物理地址变换之间的中间层。程式代码会产生逻辑地址,或说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址能再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
物理地址(Physical Address) 是指出目前CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。
虚拟内存(Virtual Memory)是指计算机呈现出要比实际拥有的内存大得多的内存量。因此他允许程式员编制并运行比实际系统拥有的内存大得多的程式。这使得许多大型项目也能够在具有有限内存资源的系统上实现。一个非常恰当的比喻是:你不必非常长的轨道就能让一列火车从上海开到北京。你只需要足够长的铁轨(比如说3公里)就能完成这个任务。采取的方法是把后面的铁轨即时铺到火车的前面,只要你的操作足够快并能满足需求,列车就能象在一条完整的轨道上运行。这也就是虚拟内存管理需要完成的任务。在Linux0.11内核中,给每个程式(进程)都划分了总容量为64MB的虚拟内存空间。因此程式的逻辑地址范围是0x0000000到0x4000000。有时我们也把逻辑地址称为虚拟地址。因为和虚拟内存空间的概念类似,逻辑地址也是和实际物理内存容量无关的。逻辑地址和物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。机理 逻辑地址(或称为虚拟地址)到线性地址是由CPU的段机制自动转换的。如果没有开启分页管理,则线性地址就是物理地址。如果开启了分页管理,那么系统程式需要参和线性地址到物理地址的转换过程。具体是通过设置页目录表和页表项进行的。
线性地址逻辑地址和物理地址的区别:
线性地址是逻辑地址到物理地址变换之间的中间层,是处理器可寻址的内存空间(称为线性地址空间)中的地址。程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。
如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。不过,在开启分页功能之后,一个线性地址可能没有相对映的物理地址,因为它所对应的内存可能被交换到硬盘中。32位线性地址可用于定位4GB存储单元。
所谓物理地址,就是指系统内存的真正地址。对于32 位的操作系统,它的范围为0x00000000~0xFFFFFFFF,共有4GB。只有当CPU工作于分页模式时,此种类型的地址才会变得非常“有趣”。本质上,一个物理地址是CPU插脚上可测量的电压。操作系统通过设立页表将线性地址映射为物理地址。Windows 2K/XP所用页表布局的某些属性对于调试软件开发人员非常有用。
分页机制把线性地址空间和物理地址空间分别划分为大小相同的块。这样的块称为页。通过在线性地址空间的页与物理地址空间的页之间建立映射,分页机制可以实现线性地址到物理地址的转换。线性地址空间的页与物理地址空间的页之间的映射可根据需要来确定。
线性地址空间的任何一页,可以映射为物理地址空间中的任何一页。
逻辑地址(Logical Address) 是指由程式产生的和段相关的偏移地址部分。例如,你在进行C语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执行代码段限长内的偏移地址(假定代码段、数据段如果完全相同)。应用程式员仅需和逻辑地址打交道,而分段和分页机制对你来说是完全透明的,仅由系统编程人员涉及。应用程式员虽然自己能直接操作内存,那也只能在操作系统给你分配的内存段操作。
线性地址(Linear Address) 是逻辑地址到物理地址变换之间的中间层。程式代码会产生逻辑地址,或说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址能再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80x86的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
看过“ 线性地址物理地址 ”
浏览量:2
下载量:0
时间:
逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。那么线性地址怎么转物理地址?今天读文网小编整理了线性地址转物理地址的相关资料,希望对大家有帮助。
线性地址(Linear Address) 是逻辑地址到物理地址变换之间的中间层。程式代码会产生逻辑地址,或说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址能再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
详细说下虚拟地址的转换。
首先,来看下内核为一个进程建立页目录和页表以及线性空间的函数。这个函数原型是:
VOID
MiInitMachineDependent (
IN PLOADER_PARAMETER_BLOCK LoaderBlock
)
位于init386.c的762行,这个函数太长了,挑选部分如下:
PointerPte = MiGetPdeAddress (PDE_BASE);
PdePageNumber = MI_GET_PAGE_FRAME_FROM_PTE (PointerPte);
CurrentProcess = PsGetCurrentProcess ();
#if defined(_X86PAE_)
PrototypePte.u.Soft.PageFileHigh = MI_PTE_LOOKUP_NEEDED;
_asm {
mov eax, cr3
mov DirBase, eax
}
//
// Note cr3 must be 32-byte aligned.
//
ASSERT ((DirBase & 0x1f) == 0);
//
// Initialize the PaeTop for this process right away.
//
RtlCopyMemory ((PVOID) &MiSystemPaeVa,
(PVOID) (KSEG0_BASE | DirBase),
sizeof (MiSystemPaeVa));
CurrentProcess->PaeTop = &MiSystemPaeVa;
#else
DirBase = MI_GET_PAGE_FRAME_FROM_PTE (PointerPte) << PAGE_SHIFT;
#endif
CurrentProcess->Pcb.DirectoryTableBase[0] = DirBase;
KeSweepDcache (FALSE);
//
// Unmap the low 2Gb of memory.
//
PointerPde = MiGetPdeAddress (0);
LastPte = MiGetPdeAddress (KSEG0_BASE);
MiZeroMemoryPte (PointerPde, LastPte - PointerPde);
第一句:PointerPte = MiGetPdeAddress (PDE_BASE);这句获得一个页表的指针。
PDE_BASE是页目录的基址,这个宏的定义如下:(i386.h 1968行)
#define PDE_BASE_X86 0xc0300000
#define PDE_BASE_X86PAE 0xc0600000
#define PTE_TOP_X86 0xC03FFFFF
#define PDE_TOP_X86 0xC0300FFF
#define PTE_TOP_X86PAE 0xC07FFFFF
#define PDE_TOP_X86PAE 0xC0603FFF
#if !defined (_X86PAE_)
#define PDE_BASE PDE_BASE_X86
#define PTE_TOP PTE_TOP_X86
#define PDE_TOP PDE_TOP_X86
#else
#define PDE_BASE PDE_BASE_X86PAE
#define PTE_TOP PTE_TOP_X86PAE
#define PDE_TOP PDE_TOP_X86PAE
#endif
#define PTE_BASE 0xc0000000
可以看出,如果CPU支持PAE或者开启了PAE(奔腾往后都支持,默认开启),那么一个进程页目录的基址为0xc0600000,这个在dbg调试的时候也可以看到,如
kd> !pte 0000
VA 00000000 (虚拟地址)
PDE at C0600000 PTE at C0000000
contains 0000000002B40067 contains 0000000000000000
pfn 2b40 ---DA--UWEV not valid
再来看这个MiGetPdeAddress ,他是个宏,定义如下:(mi386.h 1889行)
#define MiGetPdeAddress(va) ((PMMPTE)(((((ULONG)(va)) >> 22) << 2) + PDE_BASE))
可以看出他是取线性地址的最高10位,再左移2位,加上页目录的基址,得到该线性地址在该进程的 页目录的索引,而该处存放的就是其对应的页表索引,第二句:
PdePageNumber = MI_GET_PAGE_FRAME_FROM_PTE (PointerPte);
MI_GET_PAGE_FRAME_FROM_PTE 这个宏(mi386.h 2542行)的定义如下:
#define MI_GET_PAGE_FRAME_FROM_PTE(PTE) ((PTE)->u.Hard.PageFrameNumber)
他是直接取该页表对应的物理内存的地址。到这里,CPU就可以访问到实际的物理内存了。
剩下的工作就是把cr3寄存器的内容赋给dirbase,再把dirbase赋给进程pcb的DirectoryTableBase项,这个在windbg调试的时候我说过了。后面再把该进程的低2G的用户空间清零。
我举个例子,咱来一步步转换。(我关闭了PAE,关闭方法,网上找,xp sp3)
假如线性地址为7c920000,这个地址一般加载的是进程的ntdll文件,首先把它转换成二进制,我在windbg里做,如下:
kd> .formats 7c920000
Evaluate expression:
Hex: 7c920000
Decimal: 2089943040
Octal: 17444400000
Binary: 01111100 10010010 00000000 00000000
Chars: |...
Time: Mon Mar 24 11:44:00 2036
Float: low 6.0646e+036 high 0
Double: 1.03257e-314
可以看到高10位为01111100 10十六进制为0x1f2,
01111100 10 ->0x1F2按照上面的宏,0x1F2在左移2位,为0x7C8,加上PDE的基址C0300000,结果为C03007C8,我们在windbg里看下,如下:
kd> !pte 7c920000
VA 7c920000
PDE at C03007C8 PTE at C01F2480
contains 03793067 contains 03791025
pfn 3793 ---DA--UWEV pfn 3791 ----A--UREV
可以看到,结果是吻合的,下面我们来算页表,按照上面的说法,一个进程的页目录可以达到1024项(2的10次方),而每项都是4字节,所以一个进程的页目录大小为4096bytes(4k),同理,一个页表的大小也为4096bytes(4k),而每一个页目录项对应一个4k大小的页表,所以,页表项的地址可以这么算:
PTE = 页表基址+(页目录项索引 × 一个页表的大小) + (页表索引 × 每一个页表项的大小)
由上面的宏定义知道在关了PAE的情况下页表的基址PTE_BASE为0xc0000000,一个页表项的大小也为4字节。而该线性地址的中间10位为010010 0000十六进制为0x120,所以,该线性地址对应的页表地址为:
PTE = 0xC0000000 + (0x1F2 * 0x1000) + (0x120 * 0x4) = 0xC01F2480.和上面windbg显示的数据是一样的。
在windbg里看下该处的内容为
kd> dd C01F2480
c01f2480 03791025 00000000 00000000 04157025
该页表处的内容为0x03791025 ,其中,如果了解页表结构的话,其高20位为该页表指向的物理内存,为0x3791,再加上线性地址的末12位偏移,所以该线性地址对应的实际物理地址为:0X37910000.
到这里就算完了。
补充:
内核定义的页表的数据结构如下:
typedef struct _MMPTE {
union {
ULONG Long;
HARDWARE_PTE Flush;
MMPTE_HARDWARE Hard;
MMPTE_PROTOTYPE Proto;
MMPTE_SOFTWARE Soft;
MMPTE_TRANSITION Trans;
MMPTE_SUBSECTION Subsect;
MMPTE_LIST List;
} u;
} MMPTE;
typedef MMPTE *PMMPTE;
typedef struct _MMPTE_HARDWARE {
ULONG Valid : 1;
#if defined(NT_UP)
ULONG Write : 1; // UP version
#else
ULONG Writable : 1; // changed for MP version
#endif
ULONG Owner : 1;
ULONG WriteThrough : 1;
ULONG CacheDisable : 1;
ULONG Accessed : 1;
ULONG Dirty : 1;
ULONG LargePage : 1;
ULONG Global : 1;
ULONG CopyOnWrite : 1; // software field
ULONG Prototype : 1; // software field
#if defined(NT_UP)
ULONG reserved : 1; // software field
#else
ULONG Write : 1; // software field - MP change
#endif
ULONG PageFrameNumber : 20;
} MMPTE_HARDWARE, *PMMPTE_HARDWARE;
可以看出上面那个取物理地址的宏直接取的就是PageFrameNumber ,也就是该地址内容的高20位。
而在!pte命令在还显示了一些大些字母,如D,A,W,U之类的,也在该结构中有所显示。
看过“ 线性地址转物理地址 ”
浏览量:2
下载量:0
时间:
MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。今天读文网小编给大家介绍一下物理地址虚拟地址转换。供大家参考!
物理地址按照页来分配成很多不同的页,每个页有页号
有的页里存放的是页表,有的页里存放的是可以写的内存
每个页的大小是4KB,32位机器有2^32个地址
因此有2^32/2^21=2^20个页号,即2的20次方个虚拟页
物理地址也按照4K来分,但是物理地址一般没有4G大小
|*****4K*****| 第0项
|*****4K*****| 第1项
|*****4K*****| 第2项
|*****4K*****| 第3项
|*****4K*****| 第4项
...
......
ARM的虚拟地址和物理地址的转换
比如按照10 10 12来划分
10位 10位 12位
|0000000010| - |0000000010| - |00000000010|
| 2 | | 2 | | 2 |
按照划分,首先虚拟地址向右便宜22位的到,第一级(首级)页表项
为数值2.
然后根据全局唯一的地址,即首级页表的存放地址,这部分是连续的。
比如地址是第0XFF00 00FF
则可以得到第一级页表内存放的内容:
即读取0XFF00 00FF + 2*4k这个物理地址中的内容,其中分为12bit+20bit
后面20bit表示了第二级页表所在的物理页,为什么用20bit,因为一共有20bit
个物理页,比如得到的值是3,则这个第二级页表的的物理地址是4k*3,然后
看第二个10位,即二级页表的页内便宜,得到的是2,则可以得到第二级页表的
物理得只是4k*3 + 2,然后读取(4k * 3) + 2中的值,32位,其中20位表示了
第三级页表的物理地址,比如是0x0000 FF00,然后读取后12位的值,即2
则得到在第0x0000 ff00这个页表中的第2位,从而得到物理地址。
页表最多占用多少内存?
2^10个32位 2^10个32位 + 2^12个32位
即2^11 + 2^12 = 2kb + 4kb = 6kb
如果不采用2级页表的话
那么有2^20次方个页表项,需要2^20次方个32位,即2^10kb=2MB
2MB也不是很大,可是在linux下,每个进程有自己的独立页表,
那每个进程一上来就分配2MB,这样的开销很大。
因此多级页表,主要是灵活,而且节省空间,每个32bit中有12bit的状态位
表示了页表的各种状态。
已知一个虚拟地址0x01AF5518, 则转换的过程如下:
注意: *这里讨论的以Windows下普通模式分页的情况, 也就是2级页表的情况*
1.首先把虚拟地址拆分成3个部分(低12位, 中10位, 高10位), 换成2进制如下:
-> 0000 0001 1010 1111 0101 0101 0001 1000
按照10, 10, 12的位数重新排列后
-> (页目录索引)00 000 00110, (页表项索引)10 1111 0101, (偏移)0101 0001 1000
换算成十六进制后可以得到如下结果
页目录索引 = 6, 页表项索引 = 0x2f5 , 偏移 = 0x518
2. 根据当前的CR3寄存器中的物理地址定位页目录表基址
Cr3中存放的是物理地址, 这个物理地址指向进程的页目录表基址, 由此可以得到
页目录表基址(PDE) = Cr3 = 0xAA0E5000
3. 计算页表项的地址
页表地址存放在页目录表(PDE)中的第6个项目中, 也就是
[0xAA0E5000 + 4 * 6] = [0xAA0E5018] = 0x3D955867, 其中0x00000867为该页表属性值, PTE = 0x3D955000
3. 计算页面物理地址
我们要找的页面在这个页表中的第0x2f5项, 所以虚拟地址所在的页的物理地址为
[0x3D955000 + 0x2f5 * 4] = [0x3D955BD4] =
假设[0x3D955BD4] = 0x7095e847, 页面的物理地址 x0x7095e000, 0x00000847表示的是页面属性
4. 计算最终的物理地址
由虚拟地址分离的偏移可以计算出最终的物理地址为
0x7095E000 + 0x00000518 = 0x7095E518.
读文网小编介绍了物理地址虚拟地址转换的相关知识,希望你喜欢。
浏览量:2
下载量:0
时间:
读文网小编今天为大家分享虚拟地址到物理地址的转换的操作方法,欢迎大家前来阅读。
已知一个虚拟地址0x01AF5518, 则转换的过程如下:
注意: *这里讨论的以Windows下普通模式分页的情况, 也就是2级页表的情况*
1.首先把虚拟地址拆分成3个部分(低12位, 中10位, 高10位), 换成2进制如下:
-> 0000 0001 1010 1111 0101 0101 0001 1000
按照10, 10, 12的位数重新排列后
-> (页目录索引)00 000 00110, (页表项索引)10 1111 0101, (偏移)0101 0001 1000
换算成十六进制后可以得到如下结果
页目录索引 = 6, 页表项索引 = 0x2f5 , 偏移 = 0x518
2. 根据当前的CR3寄存器中的物理地址定位页目录表基址
Cr3中存放的是物理地址, 这个物理地址指向进程的页目录表基址, 由此可以得到
页目录表基址(PDE) = Cr3 = 0xAA0E5000
3. 计算页表项的地址
页表地址存放在页目录表(PDE)中的第6个项目中, 也就是
[0xAA0E5000 + 4 * 6] = [0xAA0E5018] = 0x3D955867, 其中0x00000867为该页表属性值, PTE = 0x3D955000
3. 计算页面物理地址
我们要找的页面在这个页表中的第0x2f5项, 所以虚拟地址所在的页的物理地址为
[0x3D955000 + 0x2f5 * 4] = [0x3D955BD4] =
假设[0x3D955BD4] = 0x7095e847, 页面的物理地址 x0x7095e000, 0x00000847表示的是页面属性
4. 计算最终的物理地址
由虚拟地址分离的偏移可以计算出最终的物理地址为
0x7095E000 + 0x00000518 = 0x7095E518.
读文网小编分享了虚拟地址到物理地址的转换的操作方法,希望大家喜欢。
浏览量:2
下载量:0
时间:
在制作ppt的时候,怎么将幻灯片文档转变为word格式呢?下面读文网小编就为你介绍ppt怎样转换成word的方法啦!
ppt转换成word的方法:
直接把大纲中ppt内容复制到word中
打开ppt,在左边有个“大纲”选项。
在大纲中,按“Ctrl+A”键将大纲中的内容全选,然后单击鼠标右键选择“复制”。
新建一个word文档,然后把步骤2的复制的内容粘贴到word文档即可。
ppt的“另存为”直接保存成word
ppt中的菜单栏执行“文件——另存为”。
然后将“保存类型”选择为“大纲/RTF文件”。
把保存的rtf文件就可以以word形式打开了。
ppt中的“发送”转换
执行菜单栏中的“文件——发送——microsoft office word”。
弹出“发送到 Microsoft Office Word”窗口,选择“只使用大纲”,点确定。
ppt中的内容就直接转换到word里了。
使用ppt Convert to doc软件
直接从百度里搜索ppt Convert to doc软件,找到相应的网址,然后下载到桌面。
双击软件,提示“最好将运行的WORD和POWERPOINT关闭”。
按照提示将要转换的ppt拖入打开的运行程序中。
点开始就可以把ppt转换成word了。
浏览量:3
下载量:0
时间:
在制作ppt的时候,要怎么将幻灯片文档转换成视频格式呢?下面读文网小编就为你介绍ppt怎么转换成视频格式的方法啦!
ppt转换成视频格式的方法:
步骤一:PPT文件的制作:
新建PPT文件,打开PPT,单击“插入”项--“相册”--“编辑相册(E)...”,弹出相册窗口,选择“插入图片来自...”--“文件/磁盘(F)...”。如图所示。
然后弹出“插入新图片”的搜索文件夹窗口--全选需要的照片--单击“插入(S)”。弹出“编辑相册”窗口,可以调节照片先后顺序、图片版式、等。然后单击“更新(U)”,插入照片。一个照片成为一个PPT幻灯片。
可以适当加入文字。步骤:插入--文本框--横排文本框可垂直文本框,输入文字。鼠标拖动输入的文字,到任意个人满意的位置。
设置幻灯片与幻灯片之间的切片效果。在“动画”一项下面的工具栏上,如图所示。切换效果分有无切换效果、淡出和溶解、擦除、推进和覆盖、条纹和横纹、随机等。
PPT制作完毕,记得关闭PPT文件,然后再打开PPT转换器。如果没有关闭PPT幻灯片而进入转换,容易影响到转换及转换失败。
步骤二:PPT转换视频格式:
运行PPT转换器。在出现的初始界面上,单击“添加(A)”按钮,将刚制作好的PPT文件,添加导入到软件上。软件支持添加所有版本的PPT幻灯片。
设置背景音乐。主要是设置幻灯片和转换后的视频相关内容。单击“自定义(C)”按钮,可进入“自定义设置”窗口,设置“演示”、“转换设置”、“水印”选项,其中“演示”一项内包含有换片时间、背景音乐、声音设置、幻灯片的选项设置。
选择预置方案,即输出格式。可以根据视频播放设备或个人的用途来定。如果你需要上传到网络视频站上的话,可以选择网络流行格式FLV。
在主界面右上方,可以预览每一张幻灯片;在下方,可以选择视频和音频的质量,这里一般可以默认设置就好了。然后选择输出路径,不选则按软件默认路径。设置完毕,就可以单击主界面右下方的"Start"开始转换按钮了。
转换完毕!单击“输出目录”下方带有下划线的文字,可以打开视频所在的文件夹。单击“点击播放视频”下方带有下划线的蓝色文字,可以播放视频文件。
浏览量:2
下载量:0
时间:
ppt能保存为很多种格式,那你知道怎么将幻灯片文档转换成视频吗?下面读文网小编就为你介绍ppt2007怎么转换成视频的方法啦!
ppt2007转换成视频的方法:
首先启动Microsoft PowerPoint的任意版本 。
打开任意一份演示文稿或制作任意一份演示文稿(简报)。
接下来我们需要录制视频的准备内容:在“幻灯片放映”选项卡中找到“录制幻灯片”演示,并选择“从头开始录制(S)”,这时,会询问要录制什么,第一项(幻灯片和动画计时)必选,而第二项,(旁白和激光笔),如果你需要录制一些手势(如在幻灯片上书写文字做注释)或者是录音,则选择,否则不选。
如果你已经录制过了或认为不需要录制则可以跳过这个步骤。
如果已经录制完毕,这时我们则进入到“文件”-“保存并发送”-“创建视频”中,如果你刚刚没有录制过内容,则可以选择“不要使用录制的内容和旁白”,同时可以选择每张幻灯片切换的间隔时间(默认5.00秒),如果你录制过,则会发现多了一个“使用录制的内容和旁白”(选择此项就请不要更改幻灯片的放映秒数)。同时我们可以选择分辨率(不推荐更改。)如果准备就绪了,则可以单击“创建视频”来生成了。
创建时间比较长,如果觉得时间太长可以压缩一下视频质量然后重试,最后我们就可以在设定好的文件夹中找到刚刚创建的视频啦! 怎么样?快把做好的视频发给朋友们吧!
浏览量:2
下载量:0
时间:
autocad如何转换成pdf呢?其实很简单,CAD有内置这个功能,下面读文网小编告诉大家autocad如何转换成pdf,一起来学习吧。
1、直接使用CAD软件打开我们要处理的CAD图纸,然后在CAD软件点击左上角的图标,选择输出-PDF如下图所示。
2、在设置参数时我们可以随意设置或多测试几下就行了。
3、设置好之后点击保存就可以了,你会在你保存的位置有一个xx.pdf文件了,打开看看吧。
看了“autocad如何转换成pdf”
浏览量:3
下载量:0
时间:
ppt是演示文稿文件,那么大家知道autocad如何转换成ppt吗?下面是读文网小编整理的autocad如何转换成ppt的方法,希望能给大家解答。
第一步,打开要插入的CAD图形,也就是.dwg格式的图形文件。复制要插入的部分图形。
第二步,打开PPT演示文稿(以office2010版为例),在功能区点“插入”选项卡,点文本组里面的“对象”。如图所示:
选中“AutoCAD图形”,如图所示:
第三步,点确定之后,会加载AutoCAD程序,加载完成后,会出现一个默认的(一般为空白的)CAD图形。暂时把这个CAD文件叫做为Drawing1.dwg。
第四步,在Drawing1.dwg中粘贴CAD图形,并把需要展现的部分通过放大、缩小和平移放到屏幕正中。如图所示:
第五步,在AutoCAD中,点菜单栏中的“文件”,点“更新Microsoft PowerPoint ”。如图所示:
第六步,返回到PPT,此时可以在PPT中看到CAD图形了。适当调一下大小和位置,就大功告成了!如图所示:
看了“autocad如何转换成ppt”
浏览量:7
下载量:0
时间:
你知道怎么将wps幻灯片转换成视频吗?下面读文网小编就为你介绍wps ppt怎么转换成视频的方法啦!
wps ppt转换成视频的方法:
首先大家就要学会制作PPT,因为视频是用PPT转化得来的,所以大家想要一个号的视频,就需要大家先学会制作一个好的PPT,PPT的制作并不难,打开WPS软件,点击左上角的“WPS演示”,在下拉选项中选择新建,就能新建一张空白的PPT演示了。
以此类推的方法,大家可以建立更多的空白的PPT,在空白的PPT里面插入自己想要说明的内容。内容可以是图片、表格、文字。
设计好一个属于自己的PPT演示,大家在设计PPT的时候,内容一定要丰富,不要太单一,在里面加入背景音乐,这样转化出来的视频效果才会更佳。
PPT演示设计完成后,接下来就是转化为视频,在转化之前,如果大家需要在一张PPT演示的停留的时间稍微长一些,就需要大家在“幻灯片放映”里面排练计时,在排练计时里面设置各张PPT演示所用的时间。
如果大家不需要设置时间久可以直接转换成视频,点击“另存为”按钮。
在弹出的程序中,在文件类型中选择“AVI视频”之后点击保存就完成转化了。
浏览量:2
下载量:0
时间:
在CAD中我们知道有两种画图空间,模型和布局。下面读文网小编告诉大家cad模型转换布局教程,一起来学习吧。
1、进入布局界面
2、有个小白框里有整个模型里图形的缩影,你要在布局里重新插入图框,根据你需要出图的比例确定图框大小。
3、点定义视口命令(菜单里有),自动进入模型空间,然后框选你要出图的部分,然后确定,自动回到布局页面,这时生成了一个图形的区域,根据你要出图的比例比例(1:100就输100)确认,把确认的比例的视口框移动到你的图框你。
4、重复上面的步骤把模型里的图全定义过来就好了,有时不能确定要多大的图,可以先定义视口,再插入图框。
看了“cad模型转换布局教程”
浏览量:3
下载量:0
时间:
cad软件作图空间有模型和布局,这两种作图空间有时候会互相转换图形使用。下面读文网小编告诉大家cad模型和布局怎么互相转换,一起来学习吧。
打开CAD2014程序,在模型空间中制作好图纸,在下面可以看到是处于模型选项卡
现在我们用左键点右侧的布局1选项卡 ,出现了布局1的图纸空间,内部实线边框是单个布局视口,显示的是模型空间的视图
切换时,可以直接点模型选项卡,就回到了模型空间
或者在布局选项卡,在选项卡上点击鼠标右键,然后点激活模型选项卡,也可以回到模型空间
>>>点击下一页继续查看第二种“cad模型和布局互相转换”的方法#p#副标题#e#
在模型空间里,把鼠标悬浮在图标模型上时,弹出工具提示是模型或图纸空间,点击后,会切换进入图纸空间,同样,在布局窗口中,点同样位置会进入模型空间
在图纸空间选中模型布局视口,可以用鼠标移动位置
在图纸空间单击实心框,在四个顶点会出现蓝块,用鼠标点住其中的蓝块会随着鼠标移动方向拉伸
在图纸空间,调整模型空间的视图边框后,变成了如下图纸,打印出来的效果也是这个图纸
浏览量:52
下载量:0
时间: