网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月25日漏签0天
c语言吧 关注:798,853贴子:4,357,537
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 下一页 尾页
  • 22回复贴,共2页
  • ,跳到 页  
<<返回c语言吧
>0< 加载中...

INT10中断号

  • 只看楼主
  • 收藏

  • 回复
  • c闲人
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
视频服务程序00H(设置视频模式)
输入:
    AH=00H
    AL=视频模式
输出:
    无
    说明:视频服务程序00H用来设置视频配置为表10-l中列出之一。AL寄存器给定所需视频模式。若设置了新视频模式,则清除屏幕。
  
视频服务程序0lH(设置光标大小)
输入:
    AH=01H
    CH=光标开始扫描行
    CL=光标结束扫描行
输出:
    无
说明:该服务程序用于正文模式。在一个字符单元内由一行或几行组成的光标将在字符显示位置得闪烁。该服务程序定义光标的显示行数。对CGA模式,8扫描行(0~7)用于光标。对EGA模式,使用14行(0~13)。MCGA和VGA适配器,光标可具有16扫描行(0~15)高。缺省设置如下:
    CGA:    CH=6,CL=7
    EGA:    CH=ll,CL=12
    MCGA和VGA:    CH量13,CL=1  

视频服务程序02H(设置光标位置)
输入:
    AH=02H
    BH=光标页号
    DH=光标行号
    DL=光标列号
输出:
    无
说明:该服务器序用于将光标移到指定行和列位置。该服务程序即可用于正文模式也可用于图形模式;然而,仅在正文模式下才显示光标。屏幕左上角为坐标系统的原点。对支持多页的正文和图形模式,则必须指定页号,以保证光标位置正确。

视频服务程序03H(读光标位置)
输入:
    AH=03H
    BH=页号
输出:
    CH=光标开始行
    CL=光标结束行
    DH=行号    
    DL=列号
说明:该服务程序用于获取光标大小和位置。BH给定了页号。CH中存放光标开始扫描行,而CL中为光标结束扫描行。DH中存放行位置,DL中为列位置。

视频服务程序05H(设置活动显示页)
输入:
    AH=05H
    AL=活动页号
输出:
    无
     说明:该服务程序为正文和图形模式用来设置活动显示页号。AL指定所需页号。对多数正文模式,页号范围为0一7。对具有足够视频缓冲EGA和VGA适配器,可支持多页图形。对所有正文和图形模式,缺省为0页。

视频服务程序06H(向上翻滚活动窗口)。
输入:
AH=06H
AL=翻滚行数
BH=空白行属性
CH左上角行号
CL=左上角列号

    DH=右下角行号
    Dl=右下角列号
输出:
    无    
说明:该服务程序用来创建和翻滚一正文窗口。CH和CL中给出了正文窗口左上角坐标,DH和DL中给出了正文窗口右下角坐标。AL中定义了翻滚的行数。若AL=00H,则正文窗口为空白。当滚动窗口时,底部行是空白行,其属性由BH中指定。

视频服务程序07H(向下翻滚窗口)
输入:
AH=07H
AL=翻滚行数
BH=空白行属性
CH=左上角行号
CL=左上角列号
DH=右下角行号
DL=右下角列号
输出:
    无
说明:该服务程序用来创建和翻滚一正文窗口。CH和CL中给出了正文窗口左上角坐标,DH和DL中给出了正文窗口右下角坐标。AL中定义了翻滚的行数。若AL=00H,则正文窗口为空白。当滚动窗口时,顶部行为空白,其属性由BH中指定。

视频服务程序08H(读字符和属性)
输入:
    AH=08H
    BH=活动页号
输出:
    AH=字符属性
    AL=字符码
说明:该服务程序用于读取正文或视频模式下,光标所在处字符。在图形模式下,获取的字符同图形模式下使用的字符生成表有关。在正文模式下,将获得字符的ASCII码。字符属性存放在AH中,字符ASCII码存放在AL中。图形模式下,AH中内容无意义.

视频服务程序09H(写字符和属性)
输入:
    AH=09H
    AL=写字符的ASCII码
    BL=写字符的属性
    BH=活动页号
    CX=重复写字符和属性次数
输出:
    无  
说明:该服务程序写一个字符到屏幕当前光标处。AL中指定字符码。正文模式下,BL中指定字符属性。图形模式下,BL指定背景颜色。字符可重复写。CX为写字符及属性的次数。

视频服务程序0FH(取当前视频模式)
输入:
    AH=0FH
输出:
    AH=每行字符数
    AL=当前显示模式
    BH=活动页号
说明:该服务程序用来获取当前视频模式,屏幕宽(以字符计),以及活动显示页号;视频显示模式存放在AL中。屏幕宽度(以字符计)存放在AH中,活动页号存放在BH中。



  • c闲人
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

功  能: 从远堆中释放一块

用  法: void farfree(void);


指针操作函数:MK_FP(),FP_OFF(),FP_SEG()


函数名: MK_FP
功  能: 设置一个远指针
用  法: void far *MK_FP(unsigned seg, unsigned off);


函数名: FP_OFF
功  能: 获取远地址偏移量
用  法: unsigned FP_OFF(void far *farptr);


函数名: FP_SEG
功  能: 获取远地址段值
用  法: unsigned FP_SEG(void far *farptr);

如果想知道还剩下多少常规内存,我们可以使用以下函数:

函数名: coreleft()
功  能: 获取空闲内存
用  法: unsigned coreleft(void);


函数名: farcoreleft()
功  能: 获取远堆空闲内存
用  法: unsigned long farcoreleft(void);

XMS功能调用索引表:
功能号 功能 版本
功能00H 功能01H 功能02H 功能03H 功能04H 功能05H 功能06H 功能07H 功能08H 功能09H 功能0AH 功能0BH 功能0CH 功能0DH 功能0EH 功能0FH 功能10H 功能11H 取XMS版本号 请求高内存区HMA 释放高内存区HMA 全程启用A20 全程停用A20 局部启用A20 局部停用A20 查询A20状态 查询自由扩展内存 分配扩展内存块 释放扩展内存块 移动扩展内存块 锁住扩展内存块 扩展内存块解锁 取EMB句柄信息 重新分配扩展内存块 请求上位存储块UMB 释放上位存储块UMB  XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0

XMS功能调用函数
1. 测试xms是否存在
使用中断2fH的43H(AH)功能的00H(AL)子功能,可以获得是否安装了XMS驱动程序的信息,如果AL返回为80H则说明XMS安装了。以下给出具体函数:
char test_xms(){
  asm {
mov ax,0x4300
int 0x2f }
  if (_AL==0x80) XMS=1;
  return(XMS);}
2. 获取xms驱动程序入口地址
使用中断2fH的43H(AH)功能的10H(AL)子功能,可以获得xms驱动程序入口地址,返回的ES:BX便是具体的入口。以下给出具体函数:
void get_driver_address(){
  if (XMS) {
asm {
  mov ax,0x4310 //功能号43H
  int 0x2f //调用中断2fH
} xms=(void (far *)())(((long)(_ES)<<16)+_BX);//取到指向xms服务函数的指针
  } }
3. 获取XMS版本号
在获得XMS驱动程序入口地址之后,我们可以根据XMS驱动程序提供的功能号来调用具体的XMS功能,使用功能00H(AH)可以获得XMS的版本信息,AX返回XMS版本号,BX返回内部修订版本,以下给出具体函数:
void get_xms_version(unsigned *xms_ver,unsigned *int_ver){
  if (XMS) {
asm mov ah,0x00//取得功能号
xms();//调用XMS驱动程序
*xms_ver=_AX;//返回xms版本号
*int_ver=_BX;//返回内部修订本
HMA=_DX; } }
4. 请求分配高端内存(High Memory Area)
使用功能01H(AH)可以请求分配高端内存,同时DX给入要分配的内存字节数,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char Request_HMA(unsigned size){
  char error_code=0xff;
  if (XMS) {
asm {
  mov ah,0x01
  mov dx,size
} xms();
error_code=_BL;
  } return(error_code); }
5. 释放高端内存
使用功能02H(AH)可以释放高端内存,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char Release_HMA(){
  char error_code=0xff;
  if (XMS) {
asm mov ah,0x02
xms();
error_code=_BL;
  } return(error_code); }
6. 全程激活A20地址线
使用功能03H(AH)可以全程激活A20地址线,用于使用HMA,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char global_enable_A20(){
  char error_code=0xff;



2025-07-25 02:59:14
广告
不感兴趣
开通SVIP免广告
  • c闲人
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  if (XMS) {
asm mov ah,0x03
xms();
error_code=_BL;
  } return(error_code); }
7. 全程关闭A20地址线
使用功能04H(AH)可以全程关闭A20地址线,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char global_disable_A20(){
  char error_code=0xff;
  if (XMS) {
asm mov ah,0x04
xms();
error_code=_BL;
  } return(error_code); }
8. 局部激活A20地址线
使用功能05H(AH)可以局部激活A20地址线, 用于直接访问扩充内存,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char local_enable_A20(){
  char error_code=0xff;
  if (XMS) {
asm mov ah,0x05
xms();
error_code=_BL;
  } return(error_code); }
9. 局部关闭A20地址线
使用功能06H(AH)可以局部关闭A20地址线,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char local_disable_A20(){
  char error_code=0xff;
  if (XMS) {
asm mov ah,0x06
xms();
error_code=_BL;
  } return(error_code); }
10. 查询A20地址线状态
使用功能07H(AH)可以查询A20地址线当前处于激活还是关闭状态,AX返回0001H表示激活、0000H表示关闭,失败时BL返回错误代码,以下给出具体函数:
char query_A20_state(unsigned *state){
  char error_code=0xff;
  if (XMS) {
asm mov ah,0x07
xms();
*state=_AX;//返回a20地址线状态
error_code=_BL;
  } return(error_code); }
11. 查询空闲的扩充内存空间
使用功能08H(AH)可以查询空闲的扩充内存空间, 不包括HMA,AX返回最大的扩充内存块的大小(单位:K),DX返回总的扩充内存块的大小(单位:K),失败时BL返回错误代码,以下给出具体函数:
char query_free_xms(unsigned *max_block,unsigned *total) {
  char error_code=0xff;
  if (XMS) {
asm mov ah,0x08
xms();
*max_block=_AX;//返回最大的扩充内存块的大小
*total=_DX;// 返回总的扩充内存块的大小
error_code=_BL;
  } return(error_code); }
12. 分配扩充内存
使用功能09H(AH)可以分配扩充内存,DX给入要求分配的内存块大小(单位:K),AX返回0001H表示成功、0000H表示失败,DX返回内存块的句柄,失败时BL返回错误代码,以下给出具体函数:
char allocate_xms(unsigned size,unsigned *handle){
  char error_code=0xff;
  if (XMS) {
asm {
  mov ah,0x09
  mov dx,size
} xms();
*handle=_DX;//返回句柄
error_code=_BL;
  } return(error_code); }
13. 释放指定句柄所分配的扩充内存
使用功能0AH(AH)可以释放指定句柄所分配的扩充内存,DX给入内存块的句柄,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char free_xms(unsigned handle){
  char error_code=0xff;
  if (XMS) {
asm {
  mov ah,0x0a
  mov dx,handle
} xms();
error_code=_BL;
  } return(error_code); }
14. 移动扩充内存块
使用功能0BH(AH)可以移动扩充内存块,DS:SI给入xms_mov结构,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
typedef struct xms_mov {
  unsigned long byte_count; //移动的字节数
  unsigned source_handle;  //源句柄
  unsigned long source_offset;  //源偏移量
  unsigned destination_handle;  //目的句柄
  unsigned long destination_offset; //目的偏移量
} xmm;
char move_xms(xmm *xmm_ptr){
  char error_code=0xff;
  if (XMS) {
unsigned xseg=FP_SEG(xmm_ptr),xoff=FP_OFF(xmm_ptr);
asm {
  mov ah,0x0b
  mov si,xoff
  mov ds,xseg
} xms();
error_code=_BL;
  } return(error_code); }



  • c闲人
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
15. 锁定指定的句柄所分配的扩充内存块
使用功能0CH(AH)可以锁定指定的句柄所分配的扩充内存块,DX给入句柄,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char lock_XMS_block(unsigned handle){
  char error_code=0xff;
  if (XMS) {
asm {
  mov ah,0x0c
  mov dx,handle
} xms();
error_code=_BL;
  } return(error_code); }
16. 解锁指定的句柄所分配的扩充内存块
使用功能0DH(AH)可以解锁指定的句柄所分配的扩充内存块,DX给入句柄,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char unlock_XMS_block(unsigned handle){
  char error_code=0xff;
  if (XMS) {
asm {
  mov ah,0x0d
  mov dx,handle
} xms();
error_code=_BL;
  } return(error_code); }
17. 获取描写句柄的信息
使用功能0EH(AH)可以获取描写句柄的信息,DX给入句柄,AX返回0001H表示成功、0000H表示失败,BH返回块锁定计数值,BL返回可用的句柄,DX返回句柄分配的块的容量(单位:K),失败时BL返回错误代码,以下给出具体函数:
typedef struct XMS_handle_info {
  unsigned char lock_count;  //块锁定计数值
  unsigned char free_handle; //可用的句柄
  unsigned size;//句柄分配的块的容量(单位:K)
} xhi;
char get_handle_info(unsigned handle,xhi *handle_info){
  char error_code=0xff;
  if (XMS)
  {
asm {
  mov ah,0x0e
  mov dx,handle
} xms();
error_code=_BL;
handle_info->lock_count=_BH; 
handle_info->free_handle=_BL; //获取可用的句柄
handle_info->size=_DX; //获取句柄分配的块的容量
  } return(error_code); }
18. 为句柄重新分配内存
使用功能0FH(AH)可以为句柄重新分配内存,DX给入句柄,BX给入新的块的容量(单位:K),AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char reallocate_xms_block(unsigned handle,unsigned size){
  char error_code=0xff;
  if (XMS) {
asm {
  mov ah,0x0f
  mov dx,handle
  mov bx,size
} xms();
error_code=_BL;
  } return(error_code); }
19. 请求分配UMB
使用功能10H(AH)可以请求分配UMB(upper memory block,即上位内存, 640K以上的非EMS内存),DX给入块的大小(单位:节, 即paragraphs, 为16个字节),AX返回0001H表示成功、0000H表示失败,BX返回分配UMB的段地址,DX返回块的实际容量actual size of block,失败时BL返回错误代码,以下给出具体函数:
typedef struct UMB_info {
  unsigned UMB_segment;
  unsigned size;
} ui;
char request_UMB(unsigned size,ui *info){
  char error_code=0xff;
  if (XMS) {
asm {
  mov ah,0x10
  mov dx,size
} xms();
error_code=_BL;
info->UMB_segment=_BX;//返回umb段地址
info->size=_DX;//返回容量
  } return(error_code); }
20. 释放UMB
使用功能11H(AH)可以释放UMB(upper memory block),640K以上的非EMS内存),DX给入要释放的UMB内存的段地址,AX返回0001H表示成功、0000H表示失败,失败时BL返回错误代码,以下给出具体函数:
char release_UMB(unsigned segment){
  char error_code=0xff;
  if (XMS) {
asm {
  mov ah,0x10
  mov dx,segment
} xms();
error_code=_BL;
  } return(error_code); }

这里值得一提的是HIMEM.SYS需要至少为256字节的栈空间。此外给出错误时BL返回的错误代码及其含义:
返回错误代码 含义
80h 没有提供的功能
 81h 检测到虚拟盘(Vdisk)
 82h 发生A20地址线错误
 8Eh 一般驱动程序错误
 8Fh 致命的驱动程序错误
 90h 高端内存(HMA)不存在
 91h 高端内存(HMA)已被使用



  • c闲人
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
 92h DX is less than the /HMAMIN= parameter
 93h 高端内存(HMA)未被分配
 94h A20地址线已被激活
 A0h 所有扩充内存已被分配
 A1h 所有可用的句柄已被分配
 A2h 无效的句柄
 A3h 无效的源句柄
 A4h 无效的源偏移
 A5h 无效的目的句柄
 A6h 无效的目的偏移
 A7h 无效的长度
 A8h 移动有非法的重叠
 A9h 发生奇偶校验错误
 AAh 块未加锁
 ABh 块已被锁定
 ACh 块锁定计数溢出
 ADh 锁定失败
 B0h 只有更小一些的UMB空间
 B1h 没有可用的UMB空间

EMS功能调用索引
EMS功能调用索引:
功能号 功能
功能40H 功能41H 功能42H 功能43H 功能44H 功能45H 功能46H 功能47H 功能48H 功能4BH 功能4CH 功能4DH 取得EMS程序状态 取得物理映射页面的段地址 获取逻辑页页数信息 分配句柄和内存 内存映射 释放句柄和内存 获取EMM的版本号 保存指定句柄映射关系 恢复指定句柄映射关系 获取EMM的句柄数 获取指定句柄所分配的逻辑页页数 获取所有句柄分配情况
1. 测试EMS管理程序
测试EMS管理程序, 找到返回1, 否则返回0,以下给出具体函数:
char test_ems() {
  int i;
  union REGS inregs,outregs;
  struct SREGS segs;
  struct DeviceHeader {
struct DeviceHeader far *link;
unsigned attributes;
unsigned strategy_offset;
unsigned interrupt_offset;
char name_of_number_of_units[8];
  } far *dev;
  unsigned char major,minor,c[13];
  inregs.x.ax=0x3001;//dos中断功能30子功能01读取当前扩充内存是否有效
  intdos(&inregs,&outregs);//DOS中断
  major=outregs.h.al;//返回扩充内存状态
  minor=outregs.h.ah;
  if (major<2) return(0);//扩充内存无效
  else {
 inregs.h.ah=0x52;//dos中断功能52返回计算机内存中启用服务设备名称链表
 intdosx(&inregs,&outregs,&segs);//dos中断
 if (major==2)//获得设备起始地址
   dev=(struct DeviceHeader far *)MK_FP(segs.es+1,outregs.x.bx+7);
 else
   if ((major==3) && (minor==0))
 dev=(struct DeviceHeader far *)MK_FP(segs.es+2,outregs.x.bx+8);
   else
 dev=(struct DeviceHeader far *)MK_FP(segs.es+2,outregs.x.bx+2);
 c[8]=NULL;
 while (FP_OFF(dev)!=0xffff) {//直到设备全部被检测
   if (dev->attributes & 0x8000) {
 for (i=0;i<8;i++)//名称长度8位
   c[i]=dev->name_of_number_of_units[i]; }//取设备名称
   if (!strcmp(c,"EMMXXXX0")) {//将设备名称与扩充内存名字比较
 EMS=1;//扩充内存存在
 return(1); }
   dev=dev->link; }//指向下一个设备
  } return(0); }
2. 取得管理程序状态
在确认EMS存在时,使用中断67H功能40H(AH)可以取得管理程序状态,AH返回00H表示成功、否则返回错误代码。以下给出具体函数:
char get_EMS_status(){
  char tmp=0xff;
  if (EMS) {
asm {
  mov ah,0x40//功能号40h
  int 0x67//调用中断67h
  mov tmp,ah//返回值
} } return(tmp); }
3. 取得物理映射页面的段地址
使用中断67H功能41H(AH)可以取得物理映射页面的段地址,AH返回00H表示成功、否则返回错误代码,BX返回物理映射页面的段地址。使用此功能可确定EMS在1Mb常规内存中的映射位置,此物理映射页面的大小为64K, 分为0-3页, 每页为16K,因为EMS逻辑页的大小为16K, 也就是说我们最多可同时将4 个EMS逻辑页映射到物理页上。以下给出具体函数:
char get_page_frame_segment(unsigned *segment){
  char tmp=0xff;
  if (EMS) {
asm {
  mov ah,0x41
  int 0x67
  mov tmp,ah
}
*segment=_BX;//取得段地址
  } return(tmp); }
4. 获取逻辑页页数信息
使用中断67H功能42H(AH)可以获取逻辑页页数信息,AH返回00H表示成功、否则返回错误代码,BX返回未分配的页数,DX返回页的总数。以下给出具体函数:



快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
向c闲人的贡献致


  • 无效昵称
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
好学者小晖 ,不是汇编吧吧主吗?

你好你好!
可惜汇编吧日渐冷清,哎~~~

欢迎来到C吧!

无效敬上


  • 无效昵称
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
汗~~~

怎么是2004-10-23??

我以为是他顶上来的~~~

既然没有顶怎么会浮上来?
奇怪~~


2025-07-25 02:53:14
广告
不感兴趣
开通SVIP免广告
  • 60.176.146.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这篇帖子真是太好了,我到处找过今天终于找到了.只是有没有所有中断的资料?INT10的功能太少了,我还想看看其它的.


  • Leeroy
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
怎么又被顶上来了……
寒一下各位挖坟强人啊


  • 218.18.13.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
忍不住又顶,各位别打我哦


  • 努力飞的菜鸟
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
闲人大哥,谢谢你了!谢谢了!


  • fklkj1216
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
当然要顶了 这么好的帖~~~~


  • 58.48.159.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
正愁找不到关于使用扩展内存的资料呢!


2025-07-25 02:47:14
广告
不感兴趣
开通SVIP免广告
  • wzw我未出名
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
C闲人,久仰大名


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 22回复贴,共2页
  • ,跳到 页  
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示