微机实验源程序.docx

上传人:夺命阿水 文档编号:948483 上传时间:2024-01-23 格式:DOCX 页数:116 大小:2.03MB
返回 下载 相关 举报
微机实验源程序.docx_第1页
第1页 / 共116页
微机实验源程序.docx_第2页
第2页 / 共116页
微机实验源程序.docx_第3页
第3页 / 共116页
微机实验源程序.docx_第4页
第4页 / 共116页
微机实验源程序.docx_第5页
第5页 / 共116页
点击查看更多>>
资源描述

《微机实验源程序.docx》由会员分享,可在线阅读,更多相关《微机实验源程序.docx(116页珍藏版)》请在课桌文档上搜索。

1、目录第一章TD-PIT+实验系统的硬件环境1一.概述1二.系统总线单元电路3第二章32位微机原理软件实验15实验一四那么运算15实验二均值滤波17实验三代码转换21实验四字符串冒泡排序25实验五描述符和描述符表实验28实验六局部描述符表实验32第三章32位微机接口硬件实验35实验一地址译码电路与I/O接口35实验二8254定时/计数器40实验三8259中断控制器45实验四8255并口控制器55实验五A/D与D/A转换实验63第四章32位微机接口课程设计71课程设计一数据采集系统一71课程设计二数据采集系统二(查询法)75课程设计三数据采集系统三(中断法)79课程设计四信号发生器84课程设计五交

2、通灯实时控制系统设计91课程设计六步进电机控制系统设计98附录1常用DOS系统功能(INT21H)104第一章TD-PIT+实验系统的硬件环境一.概述TD-PlT+实验系统硬件主要由PCl总线扩展卡和TD-PIT+实验平台构成,其硬件系统的连接接如图ITa所示。显卡1显示器AGP总图_IL 北桥芯片 ITPCI总电硬盘 H IED接口 PCI槽USB总线USB设备键盘鼠标Flash BIOS0PCI槽PCI卡 h 微机实验箱图ITa硬件系统的连接PCl总线扩展卡包括PCl总线接口电路和系统配置电路以及扩展总线插座。主要实现PCl总线接口以及将32位高速总线从PC机引出。PCI总线扩展卡结构如图

3、IT所zjso配置存,J日JPlPCl总线接口控制器插座2插座1图1-1PCl总线扩展卡结构TD-PIT+实验平台上的电路结构主要分两局部:系统总线单元电路和实验单元电路。是32位微机接口实验的主要操作平台。实验平台结构如图1-2所示。电源开关系蜕总线单元PWM转淡电路直流电机单元时钟耀温控单元FLASHROM单元32位IQ接口单元8259单元8237单元步进电机单元电子发声单元点阵LED单元32位存储器单元8255单元16550单元8254单元D/A转换单元A/D转换单元地址译码单元串行接口电位骞开关及LED显示单元扩展单元龄值及数码管显示单元单次歌冲单元面包徽图1-2实验平台结构二.系统总

4、线单元电路准系统总线单元实现了面向80x86微机系统的32位系统总线,符合80x86总线时序标的接口电路均可以直接连接到该总线上。总线信号说明如表IT所示。表IT总线信号信号名舞含义XD3kO32位数据总线XA31:232位地址总线XMERxXMEW.XIOR、XIOW存储器读与信号、DO读写信号IOYO、IOYKIoY2、IOY3DO空间片选信号MYOxMY1、MY2、MY3存储器空间片选信号BEO.BEKBE2、BE332位数据字节使能信号HOLDxHLDA总线保持请求和总线保持响应信号INTR中断请求信号(上升沿有效)CLK系统时钟CLK=1.041667MHzRST.RST#系统复位信

5、号实验系统向PC机申请了接口实验所需的配置资源。其中包括16MB的存储地址空间、255字节的I/O地址空间和一个中断请求线。中断请求线是映射到PC机内15个中断线中的一个。系统总线单元将地址空间进行了译码,各提供4个片选信号,片选信号同偏移地址空间对应关系如表1-2所示。表1-2片选信号同偏移地址空间对应关系片逸信号偏移地址范围H选信号偏移地址范围IOYO0Q-3FHMYOOOoOoQ-3FFFFFHIOYl4(卜TFHMYl40000“TFFFFFHIOY280BFHMY2800000BFFFFFHIOY3CO-FFHMY3Cooooq-FFFFEFH用PC机分配的I/O或存储器空间始地址加

6、上这个偏移地址,就是实验系统中端口占用的实际地址,I/O和或存储器地址电原理如图1-2A所示。PC机分配的起始地址可以在TdPit软件中查看或由实验系统附带的配置资源检查程序CHECK.EXE获得。74139AIOYO (00H-3FH)A6 2AYOg-5j-IOYl (40H-7FH) 已IOY2 (80H-0BFH)3BYlA7U-Y2E Y3|_IOY3 (OCOH-OFFH)A22A2314 T3*74139BYOBYl,MY0(00H-3FFFFFH) -t-MYl (400000H-7FFFFT0-Y2E Y3g-A2-MY2 (80000014-OB FFFF LMY 3 (0

7、COOoOoH-OFFFF1474245BEO BElBE2BE3=XIORXIOW1312H1615 XMERXMEW图1-2A I/O和存储器地址电原理图1. 地址译码单元该单元提供一片开放的译码器74LS138,用于学习地址译码方法。其线路连接如图1-3所示。图1-3地址译码单元2. 32位I/O接口单元该单元通过4片三态缓冲器和4片锁存器组成32位的I/O接口,并根据32位总线时序设计了译码电路,可以8/16/32位不同字节宽度来访问该接口。用于学习8位和32位I/O接口设计及编程。其线路连接如图1-4所示。图1-4 32位I/O接口单元3. 32位存储器单元该单元提供32位存储器及其

8、连接电路,并针对32位系统总线提供了存储器译码电路,可以任意完成8位、16位及32位不同字节宽度的存储器操作。其线路连接如图1-5所示。图1-5 32位存储器单元4. FLASHROM单元该单元提供一片开放的FLASH存储器,用于学习FLASH存储器的编程操作方法。其线路连接如图1-6所示。铠卷*AJ6A7猾A1A11A12A13A14A15A1AT29COlO01234567 BBBCCDdddddddOEWECEN-CNC图1-6FLASHROM单元5. 8259单元该单元提供中断控制器8259的连接电路,用于学习中断控制器的操作方法。其线路连接如图1-7所示。mD0DSmmmmDO佻gm

9、图1-78259单元6. 8237单元该单元提供DMA控制器8237的连接电路,用于学习DMA传送应用编程方法。其线路连接如图1-8所示。71774I5117IESETDACKO DACX DACK2 DACE3. csI MHMI 4 MffMW Xa 1O123457 Qqqqqqq 01334567BEDddddddd QU Hg7 HLiyX +5V11 ERAEN ADSTHMEMR MEMWIi1Oll POW HBQ hi5a IEADYEOP图1-88237单元7. 8255单元该单元提供一片开放的并口控制器8255,用于学习并行接口8255的编程方法。其线路连接如图1-9所示

10、。cccccc Cccccccc Cccc8. 8251单元该单元提供串行控制器8251的连接电路,用于学习串行通讯编程方法。其线路连接如图ITo所示。图1-1016550单元9. 串行接口单元该单元提供用来将串行通讯信号引出到实验箱体后侧的接口插座,包含USB和RS232接口。使用USB接口插座时将VDD、D-.D+和GND四个信号连接到标有USB的插座上。使用RS232串口时将TXD、RXD信号连接到标有RS-232的插座上。其电路结构如图ITl所zjso图16550单元10. 8254单元该单元提供一片开放的定时/计数器8254,用于学习定时/计数器的应用编程方法。其线路连接如图1-12

11、所示。D7;D62V D53i IM4( D35( D2614DOI;Al20( AO19I WR23 ,RD22 :( CS21 rD7CLKOD6OUTOD5GATEOD4D3D2CLKlDl8254 OUTlDOGAIElAlAOWRCLK2RDOUT2CSGATC29CLKO10OUTOK11GATEOHCLKL13OUTl14GATElIBCLK217OuT216GAIE25图1-128254单元11.A/D转换单元该单元提供模/数转换器ADCo809的连接电路,用于学习A/D转换原理及编程操作方法。其线路连如图1T3所示。Oooocooom2-l2-2IN-OTKT 1O A 、O

12、 S2-6 2.7TM ,1JLW-J2-STXT JJLN-4TXT IN-JAD-ATKiJLN-OADD-BTKT rTAJJlJ-CIW- /Y PPSIAKJLADCO8O9QQQQQQQQOOA图1-13A/D转换单元12 .D/A转换单元该单元提供数/模转换器DAeO832的连接电路,用于学习D/A转换原理及编程操作方法。其线路连接1T4所示。0800000 ODA0832图1-14 D/A转换单元Ioutl IOUt2Rf)VrefDLE WR2 WRl13 .电子发声单元该单元提供一个微型扬声器,控制和驱动电路已经连接好。在控制输入端输入一定频率的波形信号即可发声。其线路连接

13、电路如图1T5所示。图1T5电子发声单元14 .键盘及数码管显示单元该单元提供4X4的小键盘矩阵及6位七段数码管,电路连接为扫描电路形式。其线路连接如图1T6所示。图1-16键盘及数码管显示单元15 .点阵LED显示单元该单元使用4片8X8的点阵LED构成了一个16X16点阵显示模块,点阵LED的行列控制已经连接好。1C2C3C祀3cc7cc B2B器SBaB7B其线路连接如图1-17所示。1C2C3C祀5C6C7C者K0RJB2装温R7SK2髭髭K73Z532332图1T7点阵LED显示单元38 Os16 .驱动电路和直流电机单元这两个单元由ULN2803驱动芯片、台DC12V直流电机及霍尔

14、测速电路构成,N为组反相驱动信号输入端。其线路连接如图1T8所示。图1-18 驱动电路和直流电机单元OUTA. OUTB CXJTC OUTO OUTE OUIF OUTG OUTHCQM17 .温度控制单元该单元由7805芯片产生+5V的稳定电压和一个24欧的电阻构成回路。其线路图连接如图1T9所示。图卜19温度控制单元18 .步进电机单元该单元提供个四项八拍的步进电机,如图1-20所示。图1-20 步进电机单元19 .开关及LED显示单元该单元包括十六组拨动开关及LED显示灯,用于输出和指示逻辑电平(正逻辑)。当显示灯亮时表示逻辑高电平,灭时表示逻辑低电平。其电路连接如图1-21所示。图1

15、-21开关及LED显示单元20 .时钟源单元该单元提供一个1.8432MHZ的晶振电路,主要作为16550时钟输入。另外还有两个十分频电路,将L8432MHz分频得到路4.32KHZ和分.432KHz,如图1-22所示。图1-22 时钟源单元21 .PWM转换电路该单元提供了一个PWM脉冲产生电路,在IN端输入05V电压,OUT输出脉冲的占空比会跟随产生相应的变化。其线路如图1-23所示。图1-23 PWM转换电路22 .扩展单元该单元由假设干组排针、单股导线插座和电源引出插座组成,用于将排针形式的电路引脚和单股导线形式的引脚相互转换。从而为各实验单元的相互配合使用提供方便。另外,还提供了一块

16、面包板,用户可以自己在上面搭接电路,通过小圆孔和排针与实验平台上的单元连接,扩展灵活。23 .LCD显示单元(选件)在实验平台上的LED显示单元区域可以插接扩展板。其中一个可选的扩展板就是LCD显示单元。该单元采用型号为MSC-G12864-5W,一种128X64的图形点阵液晶,LCD类型为STN,内置控制器,配置有LED背光。板上微调电位器可以调节液晶的比照度。其连接电路如图1-24所示。B7B6B5B4B3B2B1BO DdddddddVOVSSE CSl CS2 RS RTWMSC-Gl2864 VDD LCD SLA图1-24LCD显示单元第二章32位微机原理软件实验实验一四那么运算一

17、.实验目的1 .熟悉汇编语言上机操作过程。2 .熟悉Tddebug调试环境和TUrboDebugger的使用。3 .熟悉汇编语言程序的框架结构,掌握顺序结构的编程方法。二.实验内容无符号数的32位加法,32位减法,16位乘以16位,32位除以16位除法的四那么运算练习。三.实验源程序ADVV1234H,5678H;被加数BDVVOFEDCH,123AH;加数CDW2DUP(?):预留和ADDVVOFEDCH,0BA98H;被减数BDDVV1234H,789AH;减数CDDVV2DUP(?);预留差AlDVV0D678H;被乘数BlDVV0012H;乘数ClDVV2DUP(?);预留积A2DVV

18、5678H,0234H;被除数B2DW0F234H;除数C2DVV2DUP(?);预留商,余数DATASTACKlSTACKlCODESTARTENDSSEGMENTSTACKDB100DUP(?)ENDSSEGMENTASSUMECSCODE,DS:DATA,PROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATASSSTACK11标准序DATASEGMENTMOVDS,AXMOVAX,A、ADDAX,BMOVC,AXMOVAX,a+2rADCAX,B+2MOVC+2,AXJMOVAX,AD、SUBAX,BDMOVCD,AXMOVAX,A1)+2SBBAX,BD+2MOVCD

19、+2,AXMOVAX,W、MULBlMOVCl,AXMOVC1+2,DXJMOVAX,A2、MOVDX,A2+2DIVB2MOVC2,AXMOVC2+2,DX;32位加32位;32位减32位;16位乘16位;32位除16位RETSTARTENDPCODEENDSENDSTART四.实验步骤1翻开实验箱电源开关,实验箱电源指示灯亮。2输入源程序:单击文件新建,在光标处输入源程序,输完源程序后,单击工具栏口或文件另存为,选择存放路径,输入文件名.ASM。3编译程序:单击工具栏圜,链接程序,在屏幕下方的信息栏窗口显示编译信息,假设有语法错误,逐双击该行,系统将自动定位错误行,或有红色的箭头指向错误行

20、,逐一修改后存盘,再编译,直到错误为零。4连接程序:单击工具栏淞i,在屏幕下方的信息栏窗口显示连接信息。5调试程序:单击工具栏圆,单击ViewCpu,在代码显示区单击右键点击MixedBoth,为MixedNo,按F7单步:执行,当执行完MOVDS,AX后,单击VieWCpu,使屏幕下方的数据显示区为DS的内容:(1)单步执行:按F7,观察调试过程中,指令执行后各存放器及数据区的内容变化。(2)执行到光标处:将光标移到所需处或单击,使之成为兰底白字的光带,按F4,观察执行最后一条指令执行后存放器及数据区的内容。(3)连续执行:按F9,观察最后一条指令执行后存放器及数据区的内容。五.实验报告内容

21、1 .实验目的和实验内容。2 .记录数据段存放的原始数据,和程序执行结束后的数据。DS100OODS:0008DS:0010DS:0018DS:0020DS:00283 .写出和、差、积、商、余数运算结果。如:56781234H+123AFEDCH=0BA98FEDCH-789A1234H=0D687H0012H=02345678H0F234H=4 .心得体会和建议。实验二均值滤波一.实验目的1 .掌握在数据表中找最大、最小数的方法。2 .学会子程序的使用方法,参数传递的方法,掌握分支程序,循环程序的设计方法。3 .熟悉TddebUg调试环境和TUrbODebugger的使用。二.实验内容均值

22、滤波算法:对N(2N;N数之和ADCAH,OINCSILOOPNEXT)MOVBH,OMOVBL,MAXNUML;减去最大值SUBAX,BXMOVBL,MINNUM;减去最小值SUBAX,BXMOVCL,L_NUMSUBCL,2A;求均值DIVCLMOVAVERAGE,AL;平均值存放在AVERAGE中RETSTARTENDPSMAXPROCMOVAL,ONEXTl:CMPAL,SIJNCNEXT2MOVAL,SI,;求最大数子程序NEXT2:INCSILOOPNEXTlMOVDI,ALRETSMAXENDP7SMINPROCMOVAL,OFFHNEXT3:CMPAL,SIJCNEXT4MOV

23、AL,SI;求最小数子程序NEXT4:INCSILOOPNEXT3MOVDI,ALRETSMINENDPCODEENDSENDSTART五.实验步骤1同实验i实验步=骤14。2调试程序:单击工具栏包,单击ViewCpu,在代码显示区单击右键点击MixedBoth,为MixedNo,按F7单步执行,当执行完MOVDS,AX后,单击VieWCpu,使屏幕下方的数据显示区为DS的内容:(1)用单步和执行到光标处相结合,调试求最大值子程序,观察指令执行后各存放器及数据区的内容。(2)用执行到光标处,调试求最小值子程序,观察指令执行后数据区最小值的内容。(3)用连续执行方式调试求平均值。3修改源程序,用

24、同一个子程序求出最大值、最小值。六.实验报告1、实验目的和实验内容。2、记录主程序、子程序SMAX、子程序SMIN的起始地址和结束地址。Ml址主程序子程序SMAX子程序SMIN起始地址结束地址3、记录数据段中存放的的10个原始数据、最大数、最小数及平均数。DS100OODS:00084、记录刚进入SMAX时,压入堆栈的内容,它就是从子程序SMAX返回主程序的地址。执行CALLSMAX前IP=SP执行CALLSMAX后IP=SP执行RET前IP=SP执行RET后IP=SP执行CALLSMAX前IP=SP执行CALLSMAX前IP=SP执行RET前IP=SP执行RET后IP=SP5、最大值二?最大

25、值=?平均值=?6、心得体会和建议。实验三代码转换一.实验目的1 .掌握代码转换的根本方法。2 .学会INT21功能调用,掌握人机对话的设计方法。3 .进一步熟悉Tddebug调试环境和TurboDebugger的使用。二.实验内容从键盘输入小写字母(最多20个),以号作为结束标志,在屏幕上输出相应的大写字母。用INT21中的09H号功能实现输出对话,0AH号功能实现输入对话。输入小写字母用INT21的OAH号功能,将读入的数据存放在缓冲区SMALL中,其中SMALL的笫一个字节指出缓冲区能容纳的字符数,不能为0(程序暂定为50),第二个字节保存,以用作存放实际键入的输入字符的个数;从笫三个字

26、节开始存放从键盘上接受的字符,所以转换时要从SMALL的笫三个字节,即SMALL+2开始。SMALL中存放的是小写字母的ASSII码,将此值减去20H,即为大写字母的ASSH码,将其依次存放在名为CAPrrAL的数据段中,然后用INT21中的09H功能输出。三.程序流程图主程序流程图如下图231。图2-3-1主程序流程图四.源程序CRLFMACROMOVDL,ODHMOVAH,02HDATASEGMENTMESlDBTLKASEINPUTTHESMALLLETTER,ENDEDWITHMES2DB,THECAPTALLETTERIS:$*SMALLlDB50;预留键盘输入缓冲区长度为50个DB

27、9;预留实际键盘输入字符的个数DB50DUP(?)CAPITALDB50DUP(?);预留大写字母缓冲区长度为50个DATAENDSINT21HMOVDL, OAHMOVAH, 02HINT21HENDM;宏定义了回车,换行的ASCII码STACKlSEGMENTSTACKDB100DUP(?)STACKlENDSCODESEGMENTSTARTPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXMOVAH,9、MOVDX,OFFSETMESl;输出提示信息EMSlINT21HCRLF;宏调用MOVAH,OAHMOVDX,OffsetsmalliA;接收小写

28、字符串INT21HCRLFMOVBX,OFFSETSMALL1MOVDbOFFSETCAPITALMOVCX,20NEXT:MOVAL,BX+2JMOVAH,ALCMPAL,2EH;小写字母ASCu码字符串JEKE;转换成大写字母ASCn码字符串SUBAL,20HMOVDI,ALINCBXINCDILOOPNEXTKE:INCDIMOVAL,$I;大写字符串后加“$MOVDI,ALMOVDX,SEGMES2MOVDS,DXMOVDX,OFFSETMES2L;输出提示信息EMS2MOVAH,9INT21HCRLFMOVDX,OFFSETCAPITALMOVAH,9/输出大写字符串INT21HRE

29、TSTARTENDPCODEENDSENDSTART五.实验步骤1同实验一实验步骤14;注意:(1)本程序在结构上不完整,需自行修改源程序后才能汇编通过;(2)程序正确运行应是根据屏幕提示信息,从键盘输入小写字母,且号作为结束标志,然后在屏幕上输出大写字母提示信息和相应的大写字母,但源程序不能按这种方式运行,需自行修改源程序后才能正确运行。2调试程序:单击工具栏到,单击ViewCpu,在代码显示区单击右键点击MixedBoth,为MixedNo,按F7单步执行,当执行完MOVDS,AX后,单击VieWCpu,使屏幕下方的数据显示区为DS的内容:3 .分别用执行到光标处,连续执行二种方法调试,观

30、察调试过程中,指令执行后各存放器及数据区的内容。4 .修改源程序,对输入的非法字符进行处理。六.实验报告1、实验目的和实验内容。2、显示MESl的信息修改后的局部源程序。3、数据段存放的键盘输入的小写字母的ASCII码和转换成大写字母的ASCII码。DS:040DS:048DS:050DS:058DS:078DS:080DS:088DS:0904、在屏幕显示相应的大写字母。5、心得体会和建议。实验四字符串冒泡排序一.实验目的1 .进一步掌握主、子程序设计方法。2 .掌握人机对话的设计方法。3 .进一步熟悉Tddebug调试环境和TurboDebugger的使用。4 .掌握冒泡排序的一种方法。二

31、.实验内容试设计名为“TITLEBOBBLESORT冒泡程序,当屏幕上显示一行“PLESAEENTRYSTRNG提示信息,屏幕上立即在下一行输入字符串;程序用冒泡法对字符串以ASCIl码的值按升序来排序,屏幕在下一行显示这个排序好的字符串。三.程序思路冒泡法排序有多种算法,本程序采用的是循环次数固定法,设有N个元素串,首先把笫一个元素送入AL,或设定其为“当前最小值单元,然后和剩下的(NT)个元素值比拟,假设有一个元素比它小,那么两个元素互换,经(NT)次比拟,“当前最小值单元是N个元素的最小值,之后再把它写回到笫一个元素的位置,即冒出了一个最轻的泡,如此下去,顺序冒出(NT)个泡后,N个元素

32、就排序好了。四.程序清单;TITLEBUBBLFSORTMOV CL, CHARNSTACKlSEGMENTSTACKDB64DUP(O)STACKlENDSDATASEGMENTPROMPTDBODH,OAH,TLEASEENTRYSTRING*,ODH,OAH,*$,;显示提示信息CRLFDBODHQAH,$;回车,换行,显示数据CHARLABELBYTE?输入缓冲区结构CHARHDB60;缓冲区大小CHARNDB?;字符记数CHARFDB60DUP(?);缓冲区空间DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SSiSTACKlBEGINPROCFAR

33、PUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXAGAIN:LEADX,PROMPTMOVAH,9卜9号功能调用,显示提示信息INT21HJLEADX,CHARMOVAH,OAH卜OAH号功能调用INT21HJ;输入字符数送CLORCL,CL;假设字符数为O,那么退回DOS系统JZDONECALLSORT;否那么,排序或显示JMPAGAINDONE:RETBEGINENDPSORTPROC;冒泡法排序子程序XORCH,CH;字符串长度为CL值MOVBX,CXMOVSI,OFFSETCHARFMOVCLDBYTEPTRSI+BX,*S;在输入缓冲区的串后参加一个$BIG

34、LOOP:MOVAL,SI;以AL为“当前最小值单元DECCX;CX为比拟计数JCXZEXIT;假设CX为0,表示已排好序PUSHCX;保存CXINCSI;取下一单元地址PUSHSISMALLOOPrCMPAL,SI;取一个元素与“当前最小值”单元比拟JBENEXT;假设该元素值小,那么交换位置XCHGAL,SINEXT:INCSILOOPSmalloop;循环,使“当前最小值”确实为最小POPSI;Sl为余下的第一个字符MOVSI-1,AL;冒出一个泡,写回队列中POPCX;CX为余丈的字符个数JMPBIGLOOP;继续求余下字符中的最小值EXIT:MOVDX,OFFSETCRLF;巳排好序

35、冼回车换行MOVAH,9INT21HMOVDX,OFFSETCHARF;显示排好序的字符串MOVAH,9INTRET21HSORTENDPCODEENDSENDBEGIN五.实验要求1、同实验一实验步骤14。2、对实验程序进行汇编、连接。3、调试程序,分别用执行到光标处,连续执行二种方法调试,观察调试过程中,指令执行后数据区的内容。4、连续执行程序,观察运行结果。六.实验报告1、实验目的和实验内容。2、数据段存放的键盘输入的ASCn码和屏幕显示的字符串。3、在屏幕显示排好序的字符串。4、心得体会和建议。实验五描述符和描述符表实验一.实验目的(1)熟悉保护模式的编程格式。(2)掌握描述符的声明方

36、法。(3)掌握使用选择符访问段的寻址方法。二.实验内容实现在一个0级代码段中将源数据段中的一段数据复制到目标数据段中。其中所有段的段描述符均放置在GDT中。1.实验分析为了实现在0级代码段中完成数据传输,实验程序中需要安排一个0级代码段和两个O级数据段(可以是03级任级别的数据段)。在程序开始声明一个数据段DSEG,来描述这三个段的描述符,其中有代码段描述符SCode,源数据段描述符DataS和目标数据段描述符DataD,将它们相应的选择子分别定义为SCode_SeLDataS_Sel,DataD_SeL按照实验程序编写格式的约定及描述符的格式定义,为这三个段分别定义描述符:(1)代码段描述符

37、:ScodeDesc;段属性说明:G:O;以字节为段界限粒度D:O;是16位的段P:1;描述符对地址转换有效/该描述符对应的段存在DPL:O;0级段DT:1;描述符描述的是存储段TYPE:0x8;只执行段段基地址说明:定义代码段的标号为CSEG,那么在段基地址处填写CSEG,为调试器提供重定位信息。段界限说明:段界限定义为CIen.源数据段描述符:DataSDesc;段属性说明:G:O;以字节为段界限粒度D:O;是16位的段P:1;描述符对地址转换有效/该描述符对应的段存在DPL:O;O级段DT:1;描述符描述的是存储段TYPE:0x2段基地址说明:定义源数据段标号为DSEGl,那么在段基地址处填写CSEG,为调试器提供重定位信息。段界限说明:定义段界限为DLE

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号