版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第1 1页页第第1页页本章要求本章要求教学重点及难点教学重点及难点: :物理地址计算物理地址计算1.了解存储器地址和内容的概念;了解存储器地址和内容的概念;2.了解存储器地址分段的方式;了解存储器地址分段的方式;3.掌握逻辑地址和物理地址的概念及计算方式;掌握逻辑地址和物理地址的概念及计算方式;4.了解堆栈的概念及外部设备。了解堆栈的概念及外部设备。计划学时计划学时: : 2学时学时第第3章章 存储器的分段存储器的分段 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第2 2页页第第2页页 3.1
2、 存储单元的地址和内容存储单元的地址和内容基本概念:基本概念: 计算机存储信息的基本单位是位(计算机存储信息的基本单位是位(BitBit),一位可存储一个二进制),一位可存储一个二进制数。每数。每8 8个位组成一个字节。个位组成一个字节。 存储器存储信息的基本单位是字节(存储器存储信息的基本单位是字节(ByteByte), ,由由8 8个二进制位组成。个二进制位组成。位编号如下位编号如下 : 在存储器中,每一个字节单元都有一个与之对应的、唯一的存储器在存储器中,每一个字节单元都有一个与之对应的、唯一的存储器地址地址 。称为。称为。对于。对于16位字长的位字长的PC机(机(8086/8088),
3、由两个),由两个字节组成一个字(字节组成一个字(Word)。其位编号如下:)。其位编号如下: 01234567 0123456789101112131415高位字节高位字节MSB低位字节低位字节LSB 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第3 3页页第第3页页地址的定义地址的定义每一个每一个字节单元字节单元都有一个与之对应的单元地址都有一个与之对应的单元地址 。对于对于字单元字单元,由两个字节单元组成,其地址是采用,由两个字节单元组成,其地址是采用来表示的。来表示的。 对于对于多字单元多字单元(双字,(双字,4 4字等),其地址同样是采用字等),其地址同样是
4、采用来表示的。来表示的。 :不同机器,其可以访问的物理地址范围是不:不同机器,其可以访问的物理地址范围是不同的,一般由系统的同的,一般由系统的决定决定 。例如:例如:80868086的地址总线为的地址总线为2020位,其地址访问范围是:位,其地址访问范围是:0H-0FFFFFH 0H-0FFFFFH 。而。而Pentium IIPentium II的地址总线为的地址总线为3636位,则位,则地址范围是:地址范围是:0H-0FFFFFFFFFH0H-0FFFFFFFFFH。 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第4 4页页第第4页页存储单元的内容存储单元的内容
5、 定义:存储单元中存放的信息称为该存储单元的内容该存储单元的内容 表示:存储地址加” ( ) ” 如果用X表示某存储单元的地址,则X单元的内容可以表示为 (X)(X); 假如X单元中存放着Y,而Y又是一个地址,则可用(Y)=(X)(Y)=(X)来表示Y单元的内容。 34H12H1EH2FH字节字节0000H0001H0002H0003H0004H0005H0006H1234H1235H0004H0004H字节单元字节单元的内容:的内容: (0004H0004H)=34H=34H0004H0004H字单元字单元的内容:的内容: (0004H0004H)=1234H=1234H0004H字单元的内
6、容为1234H,表示为: (0004H)=1234H (0004H)=1234H 0004H字节单元存放的信息为34H,表示:(0004H)=34H 字单元由两个字节单元组成,其地址采用它的低地址来表示。字存入存储器:低位字节存入低地址单元,高位字低位字节存入低地址单元,高位字节存入高地址单元。节存入高地址单元。 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第5 5页页第第5页页 假如X单元中存放着Y,而Y又是一个地址,则可用(Y)=(X)(Y)=(X)来表示Y单元的内容。 34H12H1EH2FH字节字节0000H0001H0002H0003H0004H0005H
7、0006H1234H1235H直接表示直接表示1234H1234H字单元字单元的内容:的内容: S=(1234H)=2F1EH直接给出S的单元地址, (1234H)=2F1EH (1234H)=2F1EH 例如,例如,1234H字单元字单元的内容为的内容为S,有两种表示方式:,有两种表示方式:间接表示间接表示1234H1234H字单元字单元的内容:的内容: S=(0004H)= (1234H)= 2F1EHS S的单元地址的单元地址存放在0004H字单元中,(0004H)=1234H(0004H)=1234H从0004H字单元中取出S S的单元地址的单元地址,再把S的内容读出来: ((0004
8、H)(0004H))=2F1EH=2F1EH 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第6 6页页第第6页页 8086/8088 CPU 有有20根地址总线根地址总线A19A18A1A0,可以访问存储器的,可以访问存储器的最大容量为:最大容量为:220B=1024KB=1MB,在,在8086 CPU 中所有可用来存放地址中所有可用来存放地址的寄存器都是的寄存器都是16位的。位的。3.2 存储器地址的分段存储器地址的分段 在在IBM PC机里采用了机里采用了存储器地址分段存储器地址分段的办法。把的办法。把1MB的存储空间划的存储空间划分成若干个段(分成若干个段(S
9、egment),每个段可由每个段可由164KB(即(即65536B)个连续的)个连续的字节单元组成。每个段是一个可独立寻址的逻辑单位。字节单元组成。每个段是一个可独立寻址的逻辑单位。 在在8086/8088的程序设计中,需要设立几个段,每个段有多少个字节的程序设计中,需要设立几个段,每个段有多少个字节以及每个段的用途完全由用户自己确定。同时每个段中存储的代码或数据,以及每个段的用途完全由用户自己确定。同时每个段中存储的代码或数据,可以存放在段内任意单元中。可以存放在段内任意单元中。 那么在那么在16位字长的机器里,用什么办法来提供位字长的机器里,用什么办法来提供20位地址呢?位地址呢? 汇编语
10、言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第7 7页页第第7页页分段的基本规则分段的基本规则 在编制程序时,要把存储器划分成段,每个段在编制程序时,要把存储器划分成段,每个段,这样段内地址可以用,这样段内地址可以用1616位表示。位表示。 PC PC机对机对,而,而必须从任一小段(必须从任一小段(ParagraphParagraph)的首地址开始。)的首地址开始。机器规定机器规定:从:从0 0地址开始,每地址开始,每1616个字节为一小段。个字节为一小段。00000,00001,00002,0000E,0000F;00010,00011,00012,0001E,0001
11、F;00020,00021,00022,0002E,0002F; 在十六进制表示的地址中,在十六进制表示的地址中,最低位为最低位为0 0(即(即2020位地址的位地址的低低4 4位为位为0 0)。)。 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第8 8页页第第8页页 虽然存储器可以划分成若干个段,但在任何时刻,一个程序只能访虽然存储器可以划分成若干个段,但在任何时刻,一个程序只能访问问4个段中的内容,这个段中的内容,这4个段分别是代码段(个段分别是代码段(Code Segment),堆栈段),堆栈段(Stack Segment),数据段(),数据段(Data Se
12、gment)和附加段()和附加段(Extra Segment)。它们的段首地址的段基值分别由对应的)。它们的段首地址的段基值分别由对应的4个段寄存器个段寄存器CS,SS,DS,ES指明。指明。 它们分别保存各自段首地址的高它们分别保存各自段首地址的高16位值(位值(A19A4),由),由4个段寄存器个段寄存器指向的那些段叫指向的那些段叫当前段(当前段(Current Segment)。)。所以当前段至多可容纳所以当前段至多可容纳64KB的程序代码,的程序代码,64KB的堆栈和的堆栈和128KB的数据(分别由的数据(分别由DS、ES指向的指向的当前段)在规模不是很大的应用程序中,这些容量是足够使
13、用。当前段)在规模不是很大的应用程序中,这些容量是足够使用。 如果应用规模较大,可以在程序中通过修改相应段寄存器的内容,如果应用规模较大,可以在程序中通过修改相应段寄存器的内容,从而访问其他段,如可用从而访问其他段,如可用LDS,LES指令等方式来改变当前段。指令等方式来改变当前段。 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第9 9页页第第9页页 CPU访问主存必须传送出物理地址,而用户编程则使用逻辑地址,访问主存必须传送出物理地址,而用户编程则使用逻辑地址,于是在于是在8086/8088系列微型机中,每个存储单元都有两种形式的地址:系列微型机中,每个存储单元都
14、有两种形式的地址:物物理地址(理地址(Phsysical Address)和逻辑地址()和逻辑地址(Logical Address)以及以及CPU内如何把程序员使用的逻辑地址形成物理地址(真实地址)的问题。内如何把程序员使用的逻辑地址形成物理地址(真实地址)的问题。 每一个存储单元的物理地址是唯一的,就是这个单元的地址编码。每一个存储单元的物理地址是唯一的,就是这个单元的地址编码。CPU与存储器之间的任何信息交换,都必须使用与存储器之间的任何信息交换,都必须使用20位的物理地址先行,位的物理地址先行,经地址译码器后形成开门信号,把被访问的存储单元的经地址译码器后形成开门信号,把被访问的存储单元
15、的“门门”打开,方能打开,方能进行数据交换。进行数据交换。 在程序设计中,在程序设计中,程序员使用的是逻辑地址,而不使用物理地址程序员使用的是逻辑地址,而不使用物理地址,这不,这不仅有利于程序的开发,且对存储器的动态管理也是有利的。一个逻辑地址仅有利于程序的开发,且对存储器的动态管理也是有利的。一个逻辑地址是由是由段基值和偏移量段基值和偏移量(OFFSET)两部分组成,而且都是无符号的)两部分组成,而且都是无符号的16位二位二进制数。进制数。3.3 逻辑地址与物理地址逻辑地址与物理地址 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第1010页页第第10页页 段基值是
16、一个段首地址的高段基值是一个段首地址的高16位,它存放在某一个位,它存放在某一个16位段寄存器中。位段寄存器中。段首址的低段首址的低4 位为位为0,即,即A3A2A1A0=0000。 偏移量表示了某存储单元与它所对应的段的段首地址之间的字节距离。偏移量表示了某存储单元与它所对应的段的段首地址之间的字节距离。如当偏移量为如当偏移量为0时,就在这个段的起始单元,当偏移量为时,就在这个段的起始单元,当偏移量为0FFFFH时,就时,就是这个段(最大)最末一个字节单元。是这个段(最大)最末一个字节单元。 每当每当CPU访问存储器时,总线接口部件访问存储器时,总线接口部件BIU便把逻辑地址转换成物理便把逻
17、辑地址转换成物理地址。地址。 转换方法转换方法是:首先把逻辑地址中的段寄存器保存的段基值左移是:首先把逻辑地址中的段寄存器保存的段基值左移4位位(把把段寄存器的内容乘以段寄存器的内容乘以16),其本质是恢复,其本质是恢复A3A2A1A0的四位二进制的的四位二进制的0或一位或一位16进制的进制的0,使之形成一个完整的段首地址。这也就是为什么段首址要从,使之形成一个完整的段首地址。这也就是为什么段首址要从小段的首地址开始的原因。形成了小段的首地址开始的原因。形成了20位的段起始地址(段基址)之后,再位的段起始地址(段基址)之后,再加上加上16位的无符号偏移量,即产生了位的无符号偏移量,即产生了CP
18、U访问主存单元的访问主存单元的20位物理地址,位物理地址,从地址总线输出。从地址总线输出。 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第1111页页第第11页页物理地址的计算物理地址的计算计算公式:计算公式: 物理地址物理地址= =段地址段地址10H+10H+偏移地址偏移地址 每个存储单元只有唯一的物理地址,但它却可以由不同每个存储单元只有唯一的物理地址,但它却可以由不同的段地址和不同的偏移地址组成。的段地址和不同的偏移地址组成。 1616位段地址位段地址1501616位偏移地址位偏移地址150+2020位物理地址位物理地址190 汇编语言程序设计汇编语言程序设计
19、 第第3章章 存储器的分段存储器的分段第第1212页页第第12页页【例】【例】 : 计算下列存储单元的物理地址:计算下列存储单元的物理地址: (1 1) 20002000:30003000; (2 2) 21002100:20002000; (3 3) 22802280:08000800; (4 4) 22502250:05000500;【解】【解】:(1) 物理地址物理地址=2000H10H+3000H=23000H;(2) 物理地址物理地址=2100H10H+2000H=23000H;(3) 物理地址物理地址=2280H10H+0800H=23000H;(4) 物理地址物理地址=2250H
20、10H+0500H=22A00H; 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第1313页页第第13页页 每个段寄存器可以按规定给出一个段的起始地址的段基值,每个段都每个段寄存器可以按规定给出一个段的起始地址的段基值,每个段都有各自的用途。如前所述,有各自的用途。如前所述,代码段存放的是要运行的程序及数据代码段存放的是要运行的程序及数据。数据段。数据段存放运行程序所用的数据,如果在程序中使用了串操作处理指令,则其源存放运行程序所用的数据,如果在程序中使用了串操作处理指令,则其源操作数默认存放在数据段中(源串可允许段超越)。操作数默认存放在数据段中(源串可允许段超越
21、)。堆栈段定义了堆栈的堆栈段定义了堆栈的所在区域所在区域,堆栈是一个数据结构,它开辟了一个比较特殊的存储区,并以,堆栈是一个数据结构,它开辟了一个比较特殊的存储区,并以“后进先出后进先出”的原则访问这一区域。附加段是附加的数据段,它是一个辅的原则访问这一区域。附加段是附加的数据段,它是一个辅助的数据区,对于串处理指令,它是目的串操作数存放的区域,它不允许助的数据区,对于串处理指令,它是目的串操作数存放的区域,它不允许进行段跨越。当用户在编制程序时,应该按照上述规定把程序的各部分放进行段跨越。当用户在编制程序时,应该按照上述规定把程序的各部分放在规定的区段之中。在规定的区段之中。 除非专门指定,
22、如用户自行设定之外,在一般情况下,各段在存储器除非专门指定,如用户自行设定之外,在一般情况下,各段在存储器中的分配是由操作系统负责的。中的分配是由操作系统负责的。每个段可以独立地占用每个段可以独立地占用64KB存储区。各存储区。各段也允许部分重叠或完全重叠段也允许部分重叠或完全重叠,下面的例子可以说明这种情况。,下面的例子可以说明这种情况。 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第1414页页第第14页页 【例】【例】如果代码段中的程序占有如果代码段中的程序占有16KB(4000H)存储区,数据段占)存储区,数据段占有有2KB(800H)存储区,堆栈段占有)存
23、储区,堆栈段占有1KB存储区。代码段的区域本可以存储区。代码段的区域本可以为为01000H10FFFH(64KB),由于程序区只需要),由于程序区只需要16KB,所以程序区结,所以程序区结束后的第一个小段的首地址就作为数据段的起始地址(束后的第一个小段的首地址就作为数据段的起始地址(05000H)。而数)。而数据段仅需据段仅需2KB,则数据段结束后的第一个小段的首地址又成为堆栈段的起,则数据段结束后的第一个小段的首地址又成为堆栈段的起始地址(始地址(05800H)。)。 这样,代码段和数据段及堆栈段重叠在一起了。这样,代码段和数据段及堆栈段重叠在一起了。 注意注意:每个存储单元的内容是绝对不允
24、许发生冲突的,也就是说,某:每个存储单元的内容是绝对不允许发生冲突的,也就是说,某个存储单元既存储了指令代码,又将存储操作的数据,这是绝对禁止的。个存储单元既存储了指令代码,又将存储操作的数据,这是绝对禁止的。这里所提到的重叠只是指每个区段的大小可允许根据编程的实际情况分配,这里所提到的重叠只是指每个区段的大小可允许根据编程的实际情况分配,并非一定要占用并非一定要占用64KB的最大段空间。的最大段空间。 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第1515页页第第15页页物理地址物理地址01000H10FFFH代码段代码段代码段实际使代码段实际使用用16KB04F
25、FFH数据段数据段05000H057FFH数据段实际使数据段实际使用用2KB堆栈段堆栈段05800H 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第1616页页第第16页页【例】【例】:已知:已知(CS)=1000H(CS)=1000H,(DS)=4000H(DS)=4000H,其中代码段大小为,其中代码段大小为1KB1KB,数据段,数据段大小为大小为64KB64KB,试画出对应储存器分段的示意图,要求标出首尾地址。,试画出对应储存器分段的示意图,要求标出首尾地址。【分析】【分析】: 对于代码段,由题意,大小对于代码段,由题意,大小为为1KB1KB,即对应的偏移地址
26、为,即对应的偏移地址为:0H-3FFH0H-3FFH,且,且CSCS为为1000H1000H,则对应的物理地址为:则对应的物理地址为: 10000H-103FFH10000H-103FFH 对于数据段,由题意,大对于数据段,由题意,大小为小为64KB64KB,即对应的偏移地址,即对应的偏移地址为:为:0H-FFFFH0H-FFFFH,且,且DSDS为为4000H4000H,则对应的物理地址为,则对应的物理地址为: 40000H-4FFFFH40000H-4FFFFH1000HCS4000HDSSSES代码段代码段数据段数据段10000H103FFH40000H4FFFFH4000:000040
27、00:FFFF 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第1717页页第第17页页 堆栈是一个特定的存储区,在这个存储区中信息的进出严格按照一定堆栈是一个特定的存储区,在这个存储区中信息的进出严格按照一定的规则进行。堆栈主要用于暂存数据以及在的规则进行。堆栈主要用于暂存数据以及在“过程过程”调用或处理中断时暂调用或处理中断时暂存断点信息。不仅在现代程序设计中经常使用堆栈,在其他一些领域(如存断点信息。不仅在现代程序设计中经常使用堆栈,在其他一些领域(如编译技术)中亦广泛地应用堆栈的概念。编译技术)中亦广泛地应用堆栈的概念。 堆栈的结构堆栈的结构 现在常采用软件堆
28、栈,由编程人员用软件在存储器中划出一块存储区现在常采用软件堆栈,由编程人员用软件在存储器中划出一块存储区作为堆栈。该存储区的一端是固定的,另一端是浮动的,所有信息的存取作为堆栈。该存储区的一端是固定的,另一端是浮动的,所有信息的存取都在浮动的一端进行,这是进栈与出栈操作的特点。浮动端的地址生长方都在浮动的一端进行,这是进栈与出栈操作的特点。浮动端的地址生长方向一般有两种方法:一为向高地址方向生长称为向上生长,另一种为向低向一般有两种方法:一为向高地址方向生长称为向上生长,另一种为向低地址方向生长,即为向下生长。地址方向生长,即为向下生长。8086/8088系列微机属于系列微机属于向下生长向下生
29、长的堆栈。的堆栈。3.4 堆栈堆栈 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第1818页页第第18页页 这个存储区最大地址的字存储单元为堆栈底部,称为这个存储区最大地址的字存储单元为堆栈底部,称为栈底栈底(Bottom)。)。在堆栈中存放的数据或断点信息从这里开始,逐渐向地址小在堆栈中存放的数据或断点信息从这里开始,逐渐向地址小的方向的方向“堆积堆积”。在任何时刻,存放最后一个信息的字存储单元为堆栈顶部,。在任何时刻,存放最后一个信息的字存储单元为堆栈顶部,称为栈顶(称为栈顶(Top)。栈顶是随着进出栈信息的多少而变的。而栈底是由软件)。栈顶是随着进出栈信息的多
30、少而变的。而栈底是由软件设定后固定不变的。设定后固定不变的。 堆栈指针堆栈指针SP始终指向堆栈顶部的地址始终指向堆栈顶部的地址。 8086/8088堆栈的组织堆栈的组织 在在8086/8088系列微机中,堆栈是由堆栈段寄存器(系列微机中,堆栈是由堆栈段寄存器(SS)指定的一段存)指定的一段存储区,通常,堆栈段中所包含的存储单元字节数即为堆栈深度或称为堆栈长储区,通常,堆栈段中所包含的存储单元字节数即为堆栈深度或称为堆栈长度。度。SP中始终包含段基址与栈顶之间的距离(字节数)。中始终包含段基址与栈顶之间的距离(字节数)。当当SP初始化时,初始化时,它的值就是这个它的值就是这个,由于由于SP是是1
31、6位的寄存器,而堆栈深度最大是位的寄存器,而堆栈深度最大是64KB,则至多可存放,则至多可存放32K个字数据。个字数据。 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第1919页页第第19页页 设设SP=2000H,把,把1234H进栈的示意图如下。进栈的示意图如下。 汇编语言程序设计汇编语言程序设计 第第3章章 存储器的分段存储器的分段第第2020页页第第20页页【例】【例】:已知:已知CPUCPU各段寄存器的内容为:各段寄存器的内容为: (CS)=3000H(CS)=3000H,(DS)=1060H(DS)=1060H, (ES)=1140H(ES)=1140H, (SS)=2200H(SS)=2200H,SP=0200HSP=0200H其其中代码段大小为中代码段大小为16KB16KB,数据段、附加段大小为,数据段、附加段大小为64KB64KB,试画出对应储存器,试画出对应储存器分段的示意图,要求标出首尾地址。分段的示意图,要求标出首尾地址。【分析】【分析】: 对于对于代码段代码段,大小为,大小为16KB16KB,即对应的偏移地址为:,即对应的偏移地址为:0H-3FFFH0H-3FFFH,且,且CSCS为为3000H3000H,则对应的物
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电子游戏行业虚拟现实游戏与电竞产业发展研究报告及未来发展趋势预测
- 2025年电子竞技行业电竞产业发展与赛事运营研究报告及未来发展趋势预测
- 2025年物流仓储行业物流仓储智能化应用研究报告及未来发展趋势预测
- 项目团队责任承诺书(5篇)
- 2025年区块链金融应用行业区块链金融应用与数字货币发展研究报告及未来发展趋势预测
- 技术培训与发展方案器
- 师生安全保障员考试题库及答案解析
- 电梯安全管理题库有必要及答案解析
- 联考近物素描真题及答案
- 二本食品安全与检测试题及答案解析
- 《活出最乐观的自己》读书笔记思维导图PPT模板下载
- 高中地理 人教版 选修二《资源、环境与区域发展》第五课时:玉门之变-玉门市的转型发展
- 催化加氢技术(药物合成技术课件)
- 近三年(2023-2023年)广西物理学业水平考试试题
- 建筑结构检测与加固课程复习考试试题及答案B
- 羧酸及其衍生物(习题)
- 摩尔斯电报码
- 猪圆环病毒病课件
- 三年级估算练习题
- 甘肃省庆阳市各县区乡镇行政村村庄村名明细及行政区划代码
- 弱电系统维护保养规程
评论
0/150
提交评论