课后习题---存储器管理

Part A
为什么要配置层次式存储器?

几乎每一条指令都会涉及对存储器的访问,因此要求对存储器的访问速度上能跟得上处理机的运行速度

可采用哪几种方式将程序装入内存?他们分别适用于何种场景?

绝对装入方式:当计算机系统很小,且仅能运行单道程序时【只能装入事先指定的位置】
可重定向装入方式:适用于多道程序,根据内存的具体情况装入模块装入到内存的适当位置【不允许程序运行时在内存中移动】
动态运行时的装入方式:适用于程序在内存中的移动

何谓静态链接?静态链接时需要解决两个什么问题?

静态链接:先将各目标模块及他们所需的库函数链接成一个完整的装配的模块,以后不再拆开
需要解决:1.对相对地址进行修改;2.变换外部调用符号

何谓装入时动态链接?装入时动态链接的优点?

装入时动态链接:将用户源程序编译后所得到的一组目标模块,装入内存,当需要的时候,动态调入内存
优点:便于修改和更新;便于实现对目标模块的共享

何谓运行时动态链接?运行时动态链接方式有何优点?

运行时动态链接:将对某些模块的链接推迟到程序执行时才进行
优点:在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上

在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?

在每个分区的起始部分设置一些用于控制分区分配的信息,以及用于链接各分区所用的前向指针,在分区尾部则设置一后向指针

为什么要引入动态重定位?如何实现?

因为在进行“紧凑”,就要对移动了的程序或数据的地址进行修改,而且还大大地影响到系统的效率

什么是基于顺序搜索的动态分区分配算法?它可分为哪几种?

依次搜索空闲分区链上的空闲分区,去寻找一个其大小能满足要求的分区
首次适应算法,循环首次适应算法,最佳适应算法,最坏适应算法

在采用首次适应算法回收内存时,可能出现哪几种情况?应该怎么解决?

低地址部分不断被划分,留下了许多难以利用的,很小的空闲分区
每次查找都是从低地址部分开始的,这增加了查找可用空闲分区的开销

什么是基于索引搜索的动态分区分配算法?它可以分为哪几种?

当系统很大时,系统中的内存分区可能会有很多,相应的空闲分区链也就可能很长,为了提高搜索空闲分区的速度,利用索引的方式来进行划分
快速适应算法,伙伴系统,哈希算法

令buddyk(x)为大小为2的k次方,地址为x的块的伙伴系统地址,试着写出buddyk(x)的通用表达式

buddyk(x)=x + 2的k次方(x mod 2的k+1次方 = 0)
buddyk(x)=x - 2的k次方(x mod 2的k+1次方 = 2的k次方)

分区存储管理中常用哪些分配策略?比较他们的优缺点

单一连续分配:将内存划分为系统区和用户区,系统开销大,资源利用不充分
固定分区分配:依据分区大小来划分,可等大小,也可不等大小,会造成一定程度的资源浪费
动态分区分配:依据进程的实际需求来分配

为什么要引入对换?对换可分为哪几种类型?

为了解决作业因内存空间不足而一直驻留在外存,导致系统吞吐量下降
对换:将内存中暂时不能运行的进程或者暂时不用的进程和数据换出到外存上
整体对换,页面(分段)对换

对文件区管理的目标和对对换空间管理的目标有何不同?

对文件区管理:采用离散分配的方式,因为文件通常是长时间驻留在外存上
对对换空间管理:采用连续分配的方式,因为对换区中驻留的时间是短暂的,而对换操作的频率较高

为实现对换,系统应具备哪些方面的功能?

在系统中配置相应的数据结构:用于记录外存对换区中的空闲盘块的使用情况
对换区的首地址及其大小,分别用盘块号和盘块数表示

在以进程为单位进行对换时,每次是否都将整个进程换出?为什么?

不一定,进程换出时,只能换出非共享的程序和数据段,而对于那些共享的,只要还有进程需要他,就不能被换出

基于离散分配时所用的基本单位不同,可将离散分配分为哪几种?

分页存储管理方式,分段存储管理方式,段页式存储管理方式

什么是页?什么是物理块?什么是页面大小?

页:将进程的逻辑地址空间分成若干个页
物理块:相应也把没内存的物理地址空间分成若干个块
页面大小:页面太小,会造成页表过长;页面太大,会增加内部碎片

什么是页表?页表的作用是什么?

页表项:存放页号和偏移量
页表:在内存中找到每个页面所对应的物理块(页面映像表)

为了实现分页存储管理,需要哪些硬件支持?

页表寄存器#存放页表在内存的始地址和页表长度
联想寄存器#苦逼表

在分页系统中,如何实现地址变换?

逻辑地址中的页号根据页面映射表,来定位胆物理块号,进而进行转换

具有快表时如何实现地址变换?

先在快表中进行查找,看是否有缓存逻辑地址中的页号
有则直接匹配获得物理块号
否则在页表中进行查找,找到后并将物理块号存储到快表中

详细描述说明引入分段存储管理是为了满足用户哪些方面的需求?

方便编程,信息共享,信息保护,动态增长,动态链接

在具有快表的段页式存储管理方式中,如何实现地址变换?

以段号为索引,去检索段表,从中得到该段的基地址和长度,将基址和段内地址相加得到物理地址

分页和分段存储管理有何区别?

页 # 信息的物理单位,分页是为了提高内存的利用率;段 # 信息的逻辑单位,能更好的满足用户需求
页的大小是固定的且由系统决定;段的长度不固定,且由用户所编写的程序决定
分页的地址空间是一维;分段的地址空间是二维

试全面比较连续分配和离散分配?

连续分配:大批量数据的存储速度【较快】,机制的复杂性【较简单】,内存的碎片【较大】,实现虚拟技术【较难】,实现动态链接【较难】
离散分配:大批量数据的存储速度【较慢】,机制的复杂性【较复杂】,内存的碎片【较小】,实现虚拟技术【较易】,实现动态链接【较易】

Part B

  • 下列正确的是

     即使在多道程序设计的环境下,用户也能设计出用物理地址直接访问内存的程序【错的】
     内存分配最基本的任务是为每道程序分配内存空间,其所追求的主要目标是提高存储空间的利用率【对的】
     为了提高内存保护的灵活性,内存保护通常由软件实现【错,还需要硬件的】
     交换技术已不是现代操作系统中常用的技术【错,交换技术依旧使用中】
     地址映射是指将程序空间中的逻辑地址变为内存空间的物理地址【对】
     虚拟存储器是物理上扩充内存容量【错】
    
  • 使每道程序能在不受干扰的环境下运行,主要是通过【内存保护】功能实现的;使分配到与其地址空间不一致的内存空间的程序,依旧正常运行则主要是通过【地址映射】功能实现

  • 静态重定位是在作业的【装入过程】中进行的,动态重定位是在作业【执行过程】中进行的

  • 在进程的地址空间中,有一条将第1000单元中的数据装入寄存器R1的指令“LOAD R1, 1000”,采用静态重定位技术时,装入内存后,该指令的第二个操作系统【修改为1000和装入该进程的内存启始地址之和】;采用动态重定位技术时,则【任然为1000】

  • 静态链接是在【装入程序之前】进行的;而动态链接是在【装入某段程序时】或【调用某段程序时】进行的,其中在【调用某段程序时】进行链接,可提高内存利用率;适用于动态链接的存储方式是【分段存储管理】

  • 要保证进程在主存中被改变了位置后依然能正常执行,则对主存空间应当采用【动态重定位】

  • 由连续分配方式发展为分页存储管理方式的主要推动力是【提高内存利用率】;由分页系统发展为分段系统,进而又发展为段页式系统的主要动力是【满足用户需要】和【既满足用户要求,又提高内存利用率】

  • 在动态分区式内存管理中,倾向于优先使用低地址部分空闲区的算法是【首次适应算法】;能使内存空间中空闲分区分布得较均匀的算法是【循环首次适应算法】;每次分配时,把既满足要求,又是最小的空闲区分配给进程的算法时【最佳适应算法】

  • 在首次适应算法中农,要求空闲分区按【空闲区起始地址递增】的顺序形成空闲分区链;在最佳适应算法中是按【空闲区大小递增】的顺序形成空闲分区链;最坏适应算法时按【空闲区大小递减】的顺序形成空闲分区链

  • 在动态分区式内存管理中,若某一时刻,系统内存的分配情况如:0-60已分配,110-200已分配,230-270已分配,295-390已分配,520-640已分配。当一进城要申请20k内存空间时,首次适应算法选中的起始地址为【60k】的空闲分区,最佳适应算法选中的是起始地址为【270k】的空闲分区,最坏适应算法选中的是起始地址为【390k】的空闲空间

  • 采用动态分区存储管理系统中,主存总容量为55MB,初始状态全空,采用最佳适应算法,内存的分配和回收顺序为:分配15MB,分配30MB,回收15MB,分配8MB,分配6MB,此时主存中最大的空闲分区大小是【9MB】;若采用的是首次适应算法,则应该是【10MB】

  • 在伙伴系统中,一对空闲分区为伙伴是指【两个大小均为2kB的相邻空闲分区,且前一个分区的起始地址是2k+1B的倍数】

  • 在回收内存时可能出现下述四种情况:

     1.释放区与插入点前一分区F1相邻接,此时应【以F1分区的表项作为新表项,但修改新表项的大小】;
     2.释放区与插入点后一个分区F2相邻接,此时应【以F2分区的表项作为新表项,同时修改新表项的大小和起始】;
     3.释放区不与F1和F2相邻接,此时应【为回收区建立一分区表项,填上分区的大小和起始地址】;
     4.释放区既与F1相邻接,又与F2相邻接,此时应【以F1分区的表项作为新表项,但修改新表项的大小且还要删除F2所对应的表项】
    
  • 对重定位存储管理方式,应【在整个系统中设置一个重定位寄存器】,当程序执行时,是由【有效地址】与【在整个系统中设置一个重定位寄存器】中的【起始地址】相加得到【物理地址】,用【物理地址】来访问内存

  • 对外存对换区的管理应以【提高换入换出的速度】为主要目标,对外存文件区的管理应以【提高存储空间的利用率】

  • 分页系统中,主存分配系统的单位是【物理块】,而地址转换工作是由【硬件】完成的

  • 在页式存储管理中,其虚拟地址空间是【一维】的,在段式存储管理中,其虚拟地址空间是【二维】的,在段页式存储管理中,其虚拟地址空间是【三维】的

  • 在没有快表的情况下,分页系统每访问一次数据,要访问【2】次内存,分段系统每访问一次数据,要访问【2】次内存,段页式系统每访问一次数据,要访问【3】次内存

  • 在段页式存储管理中,用于地址映射的映射表是【每个进程一张段表,每个段一张页表】

  • 通常情况下,在下列存储管理方式中,【固定分区】支持多道程序设计,管理最简单,但存储碎片多,【页式】使内存碎片尽可能少,而且使内存利用率最高

  • 下述存储管理方式中,会产生内部碎片的是【页式和段页式】,会产生外部碎片的是【动态分区方式和段式】

Part C

  • 使每一道程序能在内存中“各得其所”是通过【内存分配】功能实现的;保证每道程序在不受干扰的环境下运行,是通过【内存保护】功能实现的;为了缓和内存紧张的情况而将内存中暂时不能运行的进程调至外存,是【对换】功能实现的;能让较大的用户程序在较小的内存空间中运行,是通过【虚拟】功能实现的
  • 程序装入方式有【绝对装入方式】,【可重定位装入方式】,【运行时动态装入方式】三种方式
  • 程序的链接方式有【装入时动态链接】,【静态链接】,【运行时动态链接】三种方式
  • 把作业装入内存中随即进行地址变换的方式称为【静态重定位】;而在作业执行期间,当访问到指令和数据时,才进行地址变换的方式称为【动态重定位】
  • 地址变换机构的基本任务是将【地址空间】中的【逻辑地址】变换为【内存空间】中的【物理地址】
  • 通常,用户程序使用【逻辑】地址,处理机执行程序时则必须用【物理】地址
  • 在首次适应算法中,空闲分区以【地址递增】的次序拉链;在最佳适应算法中,空闲分区以【空闲分区大小递增】的次序拉链
  • 在连续分配方式中可以通过【紧凑】来减少内存零头,它必须得到【动态重定位】技术的支持
  • 在伙伴系统中,利用buddyk(x)表示大小为2的k次方,起始地址为x的块的伙伴的地址,则buddyk(x)的通用表达式【buddyk(x) = x + 2k- [(x / 2k%2)] * 2k+1
  • 实现进程对换应具备【对换空间的管理】,【进程换入】和【进程换出】三方面的功能
  • 分页系统中若页面较小,虽有利于【减少块内碎片】,但会引发【页表太长】;而页面较大,虽然可以减少【页表长度】,但会引起【块内碎片增大】
  • 分页系统中,页表的作用是实现【页号】和【物理块号】的转换
  • 在分页系统中为实现地址变换而设置了页表寄存器,其中存放了处于【执行】状态进程的【页表长度】和【页表起始地址】;而其他进程的上述信息则被保存在【他们的PCB】中
  • 引入分段主要是满足用户需要,具体包括【方便编程】,【分段共享】,【分段保护】,【动态链接】等方面
  • 在页表中最基本的数据项是【物理块号】,而在段表中则是【段的内存基址】和【段长】
  • 把逻辑地址分成页号和页内地址是由【机器硬件】进行的,故分页系统的作业地址空间是【一】维的;把逻辑地址分成段号和段内地址是由【程序员】进行的,故分段系统的作业地址空间是【二】维的
  • 在段页式系统中,为了获得一条指令或数据,都需要三次访存。第一次从内存中取得【页表的起始地址】;第二次从内存中取得【块号】;第三次从内存中取得【指令或数据】
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《IBM—PC汇编语言程序设计》习题参考答案 第 一 章. 习 题 1.1 用降幂法和除法将下列十进制数转换为二进制数和十六进制数: (1) 369 (2) 10000 (3) 4095 (4) 32767 答:(1) 369=1 0111 0001B=171H (2) 10000=10 0111 0001 0000B=2710H (3) 4095=1111 1111 1111B=FFFH (4) 32767=111 1111 1111 1111B=7FFFH 1.2 将下列二进制数转换为十六进制数和十进制数: (1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111 答:(1) 10 1101B=2DH=45 (2) 1000 0000B=80H=128 (3) 1111 1111 1111 1111B=FFFFH=65535 (4) 1111 1111B=FFH=255 1.3 将下列十六进制数转换为二进制数和十进制数: (1) FA (2) 5B (3) FFFE (4) 1234 答:(1) FAH=1111 1010B=250 (2) 5BH=101 1011B=91 (3) FFFEH=1111 1111 1111 1110B=65534 (4) 1234H=1 0010 0011 0100B=4660 1.4 完成下列十六进制数的运算,并转换为十进制数进行校核: (1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F 答:(1) 3A+B7H=F1H=241 (2) 1234+AFH=12E3H=4835 (3) ABCD-FEH=AACFH=43727 (4) 7AB×6FH=35325H=217893 1.5 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。 (1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76) 答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0 (2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0 (3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0 (4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1 (5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1 (6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=0 1.6 下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么? (1) D8 (2) FF 答:(1) D8H表示的带符号数为 -40,D8H表示的无符号数为216; (2) FFH表示的带符号数为 -1, FFH表示的无符号数为255。 1.7 下列各数均为用十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字符的ASCII码时,它们所表示的十进制数及字符是什么? (1) 4F (2) 2B (3) 73 (4) 59 答:(1) 4FH表示的十进制数为 79,4FH表示的字符为O; (2) 2BH表示的十进制数为 43,2BH表示的字符为 +; (3) 73H表示的十进制数为115,73H表示的字符为s; (4) 59H表示的十进制数为89,59H表示的字符为Y。 1.8 请写出下列字符串的ASCII码值。 For example, This is a number 3692. 答:46H 6FH 72H 20H 65H 78H 61H 6DH 70H 6CH 65H 2CH 0AH 0DH 54H 68H 69H 73H 20H 69H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H 72H 20H 33H 36H 39H 32H 2EH 0AH 0DH 第 二 章. 习 题 2.1 在80x86微机的输入/输出指令,I/O端口号通常是由DX寄存器提供的,但有时也可以在指令直接指定00~FFH的端口号。试问可直接由指令指定的I/O端口数。 答:可直接由指令指定的I/O端口数为256个。 2.2 有两个16位字1EE5H和2A3CH分别存放在80x86微机的存储器的000B0H和000B3H单元,请用图表示出它们在存储器里的存放情况。 答:存储器里的存放情况如右上图所示。 2.3 在IBM PC机的存储存放信息如右下图所示。试读出30022H和30024H字节单元的内容,以及30021H和30022H字单元的内容。 答:30022H字节单元的内容为ABH;30024H字节单元的内容为EFH。30021H字单元的内容为AB34H;30022H字单元的内容为CDABH。 2.4 在实模式下,段地址和偏移地址为3017:000A的存储单元的物理地址是什么?如果段地址和偏移地址是3015:002A和3010:007A呢? 答:3017:000A、3015:002A和3010:007A的存储单元的物理地址都是3017AH。 2.5 如果在一个程序开始执行以前(CS)=0A7F0H,(如16进制数的最高位为字母,则应在其前加一个0) (IP)=2B40H,试问该程序的第一个字的物理地址是多少? 答:该程序的第一个字的物理地址是0AAA40H。 2.6 在实模式下,存储每一段最多可有10000H个字节。如果用调试程序DEBUG的r命令在终端上显示出当前各寄存器的内容如下,请画出此时存储器分段的示意图,以及条件标志OF、SF、ZF、CF的值。 C>debug -r AX=0000 BX=0000 CX=0079 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL NZ NA PO NC 答:此时存储器分段的示意图如右图所示。OF、SF、ZF、CF的值都为0。 2.7 下列操作可使用那些寄存器? (1) 加法和减法 数据寄存器等 (2) 循环计数 CX (3) 乘法和除法 AX、DX,乘数和除数用其他寄存器或存储器 (4) 保存段地址 段寄存器 (5) 表示运算结果为0 ZF=1 (6) 将要执行的指令地址 CS:IP (7) 将要从堆栈取出数据的地址 SS:SP
### 回答1: 数字系统设计与Verilog HDL课后习题主要是通过解答一系列与数字系统设计和Verilog HDL相关的问题,来巩固和加深对该课程的理解和掌握。以下是对该类习题的回答。 数字系统设计是一门研究数字信号处理和计算机硬件体系结构的学科,而Verilog HDL是一种硬件描述语言,用于描述和模拟数字电子电路。课后习题对于学生们来说是巩固知识、提高理解的重要环节。这些习题可能涉及到多种主题,包括逻辑门、组合逻辑电路、时序逻辑电路、状态机以及存储器等。 为了解答这些习题,我们需要首先深入理解相关的概念和原理。然后,我们可以利用Verilog HDL来完成相应的电路设计、仿真和验证。在设计过程,需要用到逻辑门、模块和端口的定义、数据类型的声明和赋值、时序的控制和状态的转换等。通过编写Verilog代码并进行仿真和验证,可以验证电路的功能和性能。 完成习题后,我们应该进行详细的检查和讨论,确保我们的解答正确,并且能够清楚地解释我们的思路和过程。如果有错误或不确定的地方,我们可以寻求教师或同学们的帮助。 总的来说,数字系统设计与Verilog HDL课后习题是一个重要的学习环节,通过解答这些习题,我们可以加深对数字系统设计和Verilog HDL的理解和应用,并且提高自己的设计和解决问题的能力。通过不断的练习和实践,我们可以逐渐掌握这门学科的核心知识和技能。 ### 回答2: 数字系统设计是一门涉及到电子数字系统的设计与实现的课程,而Verilog HDL则是一种硬件描述语言,广泛应用于数字系统设计。在学习数字系统设计与Verilog HDL课程后,我们需要进行一些习题来巩固所学的知识。 这些课后习题通常包括以下内容: 1. 门电路设计:设计各种逻辑门电路,如与门、或门、非门等,可以通过Verilog HDL编写代码,完成门电路的设计实现,并通过仿真验证其功能正确性。 2. 组合逻辑电路设计:设计复杂的组合逻辑电路,如加法器、多路选择器、镜像电路等。同样使用Verilog HDL编写代码,并通过仿真验证其正确性。 3. 时序逻辑电路设计:设计时序逻辑电路,如触发器、计数器、状态机等。通过学习时序逻辑电路的设计原理和方法,我们可以通过编写Verilog HDL代码来实现这些电路,并通过仿真验证其正确性。 4. FPGA设计:了解FPGA(现场可编程门阵列)的基本工作原理和使用方法,通过Verilog HDL编写代码,将设计好的数字电路实现在FPGA芯片上,通过实际验证其正确性。 5. RTL综合和时序约束:学习如何使用RTL(寄存器传输级)综合工具将Verilog代码综合为逻辑门级的网表,以及如何设置时序约束以确保设计的性能和正确性。 通过完成这些习题,我们能够更加熟练地掌握数字系统设计和Verilog HDL的基本原理和应用技巧,提高我们的设计和仿真能力,为我们在实际工程设计与实现数字系统打下坚实的基础。 ### 回答3: 数字系统设计与Verilog HDL是一门涉及硬件描述语言Verilog及数字系统设计的课程。以下是这门课后习题的回答: 1. Verilog是一种硬件描述语言,用于设计和描述数字系统。它是一种用于建模和模拟电子系统的语言,可用于设计电路和电子系统,并在FPGA等可编程逻辑器件上实现。 2. 了解数字系统设计原理对于使用Verilog进行硬件描述至关重要。在数字系统设计,我们需要考虑到时钟、寄存器、组合逻辑等元件的设计与实现。 3. Verilog HDL语言分为结构化和行为化两种描述方式。结构化描述方法将电路看作是由各种逻辑门和触发器构成的组合,行为化描述方法则注重电路的功能行为,以逻辑表达式和时序关系描述。 4. 在Verilog HDL,可以使用模块实例化的方式实现复杂电路组合。模块可以嵌套实例化,并通过端口连接进行通信。模块之间的通信是通过信号(wire)或寄存器(reg)进行的。 5. 在数字系统设计,时序逻辑是一种基本的设计模块。时序逻辑使用触发器(flip-flop)或寄存器来存储和传输数据,这使得系统能够跟踪时间和状态。 6. 使用Verilog HDL进行数字系统设计时,需要注意时序逻辑电路的时序延迟问题。时序延迟可能导致信号到达目标电路的时间差,对系统性能产生影响,因此需要合理设计电路以满足时序约束。 7. Verilog HDL具有高度的可重用性和可扩展性。通过模块化设计,我们可以将复杂电路划分为多个子模块,并通过端口通信,提高代码的可维护性和可复用性。 总而言之,数字系统设计与Verilog HDL课后习题涉及到了数字系统设计原理、Verilog HDL语言及其应用、模块化设计和时序约束等内容。通过完成这些习题,我们可以进一步掌握数字系统设计和Verilog HDL语言的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值