ImageVerifierCode 换一换
格式:DOC , 页数:31 ,大小:315KB ,
资源ID:4708707      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4708707.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(C语言-INT10中断号.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C语言-INT10中断号.doc

1、附录B INT10中断号视频服务程序00H(设置视频模式)输入: AH=00H AL=视频模式输出: 无 说明:视频服务程序00H用来设置视频配置为表10-l中列出之一。AL寄存器给定所需视频模式。若设置了新视频模式,则清除屏幕。 视频服务程序0lH(设置光标大小)输入: AH=01H CH=光标开始扫描行 CL=光标结束扫描行输出: 无说明:该服务程序用于正文模式。在一个字符单元内由一行或几行组成的光标将在字符显示位置得闪烁。该服务程序定义光标的显示行数。对CGA模式,8扫描行(07)用于光标。对EGA模式,使用14行(013)。MCGA和VGA适配器,光标可具有16扫描行(015)高。缺省

2、设置如下: CGA: CH6,CL7 EGA: CHll,CL12 MCGA和VGA: CH量13,CL1 视频服务程序02H(设置光标位置)输入: AH=02H BH=光标页号 DH=光标行号 DL=光标列号输出: 无说明:该服务器序用于将光标移到指定行和列位置。该服务程序即可用于正文模式也可用于图形模式;然而,仅在正文模式下才显示光标。屏幕左上角为坐标系统的原点。对支持多页的正文和图形模式,则必须指定页号,以保证光标位置正确。视频服务程序03H(读光标位置)输入: AH=03H BH=页号输出: CH=光标开始行 CL=光标结束行 DH=行号 DL列号说明:该服务程序用于获取光标大小和位置

3、。BH给定了页号。CH中存放光标开始扫描行,而CL中为光标结束扫描行。DH中存放行位置,DL中为列位置。视频服务程序05H(设置活动显示页)输入: AH=05H AL=活动页号输出: 无 说明:该服务程序为正文和图形模式用来设置活动显示页号。AL指定所需页号。对多数正文模式,页号范围为0一7。对具有足够视频缓冲EGA和VGA适配器,可支持多页图形。对所有正文和图形模式,缺省为0页。视频服务程序06H(向上翻滚活动窗口)。输入:AH=06HAL=翻滚行数BH=空白行属性CH左上角行号CL=左上角列号 DH右下角行号 Dl右下角列号输出: 无 说明:该服务程序用来创建和翻滚一正文窗口。CH和CL中

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

5、H BH=活动页号输出: AH=字符属性 AL=字符码说明:该服务程序用于读取正文或视频模式下,光标所在处字符。在图形模式下,获取的字符同图形模式下使用的字符生成表有关。在正文模式下,将获得字符的ASCII码。字符属性存放在AH中,字符ASCII码存放在AL中。图形模式下,AH中内容无意义.视频服务程序09H(写字符和属性)输入: AH09H AL=写字符的ASCII码 BL=写字符的属性 BH=活动页号 CX=重复写字符和属性次数输出: 无 说明:该服务程序写一个字符到屏幕当前光标处。AL中指定字符码。正文模式下,BL中指定字符属性。图形模式下,BL指定背景颜色。字符可重复写。CX为写字符及

6、属性的次数。视频服务程序0FH(取当前视频模式)输入: AH0FH输出: AH每行字符数 AL当前显示模式 BH活动页号说明:该服务程序用来获取当前视频模式,屏幕宽(以字符计),以及活动显示页号;视频显示模式存放在AL中。屏幕宽度(以字符计)存放在AH中,活动页号存放在BH中。文件相关函数函数名: fopen功 能: 打开一个流用 法: FILE *fopen(char *filename, char *type);函数名: fclose功 能: 关闭一个流用 法: int fclose(FILE *stream); fopen()函数提供了几种打开文件的方式,这是由其字符指针参数type决定

7、的。以下给出打开方式列表:参数作用R只读W新建、可写,如果文件存在则覆盖A存在则在文件后附加,如果不存在则新建后写r+更新一个存在的文件(读和写)w+增加一个新的文件更新(读和写),如果文件存在则覆盖a+存在则在文件后附加(读和写),如果不存在则新建后更新(读和写)*以文本模式打开一个存在或新建的文件,附加”t”在参数后(rt, w+t, etc.)。*以二进制模式打开一个存在或者新建的文件,附加”b”在参数后(wb, a+b, etc.)。函数名: fseek功 能: 重定位流上的文件指针用 法: int fseek(FILE *stream,long offset,int fromwher

8、e); 读取文件函数:函数名: fread功 能: 从一个流中读数据用 法: int fread( void *ptr, int size, int nitems, FILE *stream ); 写入文件函数:函数名: fwrite功 能: 写内容到流中用 法: int fwrite( void *ptr, int size, int nitems, FILE *stream ); fseek()函数提供了文件指针的三个初始位置,这是由其参数fromwhere决定的,以下给出其列表:常量值文件定位SEEK_SET0从文件头开始寻找SEEK_CUR1从文件当前位置开始寻找SEEK_END2从文

9、件最后开始寻找函数名: fprintf功 能: 传送格式化输出到一个流中用 法: int fprintf( FILE *stream, char *format, argument,. );函数名: fscanf功 能: 从一个流中执行格式化输入用 法: int fscanf( FILE *stream, char *format,argument. );发声函数函数名: sound功 能: 以指定频率打开PC扬声器用 法: void sound(unsigned frequency);函数名: nosound功 能: 关闭PC扬声器用 法: void nosound(void);常规内存操作

10、函数申请函数:malloc(),farmalloc(),calloc(),farcalloc(),realloc(),farealloc()函数名: malloc功 能: 内存分配函数用 法: void *malloc(unsigned size);函数名: farmalloc功 能: 从远堆中分配存储块用 法: void far *farmalloc(unsigned long size);函数名: calloc功 能: 分配主存储器用 法: void *calloc(size_t nelem, size_t elsize);函数名: farcalloc功 能: 从远堆栈中申请空间用 法:

11、void far *farcalloc( unsigned long units, unsigned ling unitsz );函数名: realloc功 能: 重新分配主存用 法: void *realloc(void *ptr, unsigned newsize);函数名: farrealloc功 能: 调整远堆中的分配块用 法: void far *farrealloc( void far *block, unsigned long newsize );使用函数:memcpy(),memset(),memmove(),movedata()函数名: memcpy功 能: 从源source

12、中拷贝n个字节到目标destin中用 法: void *memcpy(void *destin,void *source,unsigned n);函数名: memset功 能: 设置s中的所有字节为ch, s数组的大小由n给定用 法: void *memset(void *s, char ch, unsigned n);函数名: memmove功 能: 移动一块字节用 法: void *memmove(void *destin,void *source,unsigned n);函数名: movedata功 能: 拷贝字节用 法: void movedata(int segsrc, int of

13、fsrc, int segdest, int offdest, unsigned numbytes);释放函数:free(),farfree()函数名: free功 能: 释放已分配的块用 法: void free(void *ptr);函数名: farfree功 能: 从远堆中释放一块用 法: void farfree(void);指针操作函数:MK_FP(),FP_OFF(),FP_SEG()函数名: MK_FP功 能: 设置一个远指针用 法: void far *MK_FP(unsigned seg, unsigned off);函数名: FP_OFF功 能: 获取远地址偏移量用 法:

14、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功能

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

16、0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS规范V2.0XMS功能调用函数1. 测试xms是否存在使用中断2fH的43H(AH)功能的00H(AL)子功能,可以获得是否安装了XMS驱动程序的信息,如果AL返回为80H则说明XMS安装了。以下给出具体函数:char test_xms() asm mov ax,0x4300int 0x2f if (_AL=0x80) XMS=1; return(XMS);2. 获取xms驱动程序入口地址使用中断2fH的43H(AH)功能的10H(AL)子功能,可以获得xms驱动程序入口地址,返回的ES:BX便是

17、具体的入口。以下给出具体函数:void get_driver_address() if (XMS) asm mov ax,0x4310 /功能号43H int 0x2f /调用中断2fH xms=(void (far *)()(long)(_ES)lock_count=_BH; handle_info-free_handle=_BL; /获取可用的句柄handle_info-size=_DX; /获取句柄分配的块的容量 return(error_code); 18. 为句柄重新分配内存使用功能0FH(AH)可以为句柄重新分配内存,DX给入句柄,BX给入新的块的容量(单位:K),AX返回0001

18、H表示成功、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给入块的大小(单位:节, 即pa

19、ragraphs, 为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-UM

20、B_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_co

21、de=_BL; return(error_code); 这里值得一提的是HIMEM.SYS需要至少为256字节的栈空间。此外给出错误时BL返回的错误代码及其含义:返回错误代码含义80h没有提供的功能81h检测到虚拟盘(Vdisk)82h发生A20地址线错误8Eh一般驱动程序错误8Fh致命的驱动程序错误90h高端内存(HMA)不存在91h高端内存(HMA)已被使用92hDX is less than the /HMAMIN= parameter93h高端内存(HMA)未被分配94hA20地址线已被激活A0h所有扩充内存已被分配A1h所有可用的句柄已被分配A2h无效的句柄A3h无效的源句柄A4h无

22、效的源偏移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的句柄数获取指定句柄所分配的逻辑页页数

23、获取所有句柄分配情况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_units8; far *dev; unsigned char

24、major,minor,c13; inregs.x.ax=0x3001;/dos中断功能30子功能01读取当前扩充内存是否有效 intdos(&inregs,&outregs);/DOS中断 major=outregs.h.al;/返回扩充内存状态 minor=outregs.h.ah; if (majorattributes & 0x8000) for (i=0;iname_of_number_of_unitsi; /取设备名称 if (!strcmp(c,EMMXXXX0) /将设备名称与扩充内存名字比较 EMS=1;/扩充内存存在 return(1); dev=dev-link; /指向

25、下一个设备 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返回物理映射页面的段地址。使用此功能可确定E

26、MS在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表示成功、否则返回错误

27、代码,BX返回未分配的页数,DX返回页的总数。以下给出具体函数:char get_number_of_pages(unsigned *avail,unsigned *total) char tmp=0xff; if (EMS) asm mov ah,0x42 int 0x67 mov tmp,ah *avail=_BX;/返回可用页数*total=_DX;/返回所有页数 return(tmp); 5. 分配句柄和内存使用中断67H功能43H(AH)可以分配句柄和内存,BX给入要求分配的逻辑页的页数(逻辑页每页的大小为16K),AH返回00H表示成功、否则返回错误代码,DX返回句柄。当程序退出运行时, 句柄将被非显式的关闭并无法回收。以下给出具体函数:char allocate_memory(unsigned *handle,unsigned page_numbers) char tmp=0xff; if (EMS) asm mov ah,0x43 mov bx,page_numbers int 0x67 mov tmp,ah*handle=_DX;/返回句柄 return(tmp); 6. 内存映射使用中断67H功能44H(AH)可以进行内存映射,AL给入物理页页号 (0-3),BX给入要求分配的逻辑页的页数(逻辑页每页的大小为16K),DX给入句柄,AH返回00H表

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服