1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。微机原理与接口技术课程实验指导书实验内容EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求 实验一 实验系统及仪器仪表使用与汇编环境 实验二 简单程序设计实验 实验三 存储器读/写实验 实验四 简单I/0口扩展实验 实验五 8259A中断控制器实验 实验六 8253定时器/计数器实验 实验七 8255并行口实验 实验八 DMA实验 实验九 8250串口实验 实验十 A/D实验 实验十一 D/A实验 实验十二 8279显示器接口实验EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求 EL-808
2、6-III微机原理与接口技术教学实验系统是为微机原理与接口技术课程的教学实验而研制的, 涵盖了当前流行教材的主要内容, 该系统采用开放接口, 并配有丰富的软硬件资源, 能够形象生动地向学生展示8086及其相关接口的工作原理, 其应用领域重点面向教学培训, 同时也可作为8086的开发系统使用。可供大学本科学习微机原理与接口技术( 8086) , 单片机应用技术等课程提供基本的实验条件, 同时也可供计算机其它课程的教学和培训使用。为配合使用EL型微机教学实验系统而开发的8086调试软件, 能够在WINDOWS /XP等多种操作系统下运行。在使用本软件系统调试程序时, 能够同时打开寄存器窗口、 内存
3、窗口、 反汇编窗口、 波形显示窗口等等, 极大地方便了用户的程序调试。该软件集源程序编辑、 编译、 链接、 调试与一体, 每项功能均为汉字下拉菜单, 简明易学。经常使用的功能均备有热键, 这样能够提高程序的调试效率。一、 基本特点EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求, 结合电子发展情况而研制的具有开发、 应用、 实验相结合的高科技实验设备。旨在尽快提高中国电子科技发展水平, 提高实验者的动手能力、 分析解决问题能力。系统具有以下特点: 1、 系统采用了模块化设计, 实验系统功能齐全, 涵盖了微机教学实验课程的大部分内容。2、 系统采用开放式结构设计
4、, 经过两组相对独立的总线最多可同时扩展2块应用实验板, 用户可根据需要购置相应实验板, 降低了成本, 提高了灵活性, 便于升级换代。3、 配有两块可编程器件EPM7064, 一块被系统占用。另一块供用户实验用。两块器件皆可经过JTAG接口在线编程。使用十分方便。4、 灵活的电源接口: 配有PC机电源插座, 可由PC提供电源。另外还配有外接开关电源, 提供所需的+5V, 12V, 其输入为220V的交流电。5、 系统功能齐全, 可扩展性强。本实验系统不但完全能满足教学大纲规定的基本接口芯片实验, 其灵活性和可扩展性( 数据总线、 地址总线、 控制总线为用户开放) 亦能轻松满足其课程设计、 毕业
5、设计使用等。二、 系统概述该系统采用开放接口, 并配有丰富的软硬件资源, 能够形象生动地向学生展示8086及其相关接口的工作原理, 其应用领域重点面向教学培训, 同时也可作为8086的开发系统使用。采用该系统能大大提高教学质量, 系统概述如下: 1、 微处理器: 80862、 时钟频率: 6MHz3、 可提供对8086的基本实验为了提高微机教学实验质量, 提高实验效率, 减轻主讲教师和实验教师的劳动强度, 在该系统的实验板上, 除微处理器、 程序存储器、 数据存储器外, 还扩展了8255并行接口、 8250串行控制器、 8279键盘、 显示控制器、 8253可编程定时器、 A/D、 D/A转换
6、、 单脉冲、 各种频率的脉冲发生器、 输入、 输出电路等模块, 各部分电路既相互独立、 又可灵活组合, 能满足各类学校, 不同层次微机实验与培训要求。能够完成微机原理与接口课程教学大纲中所规定的所有实验, 并增加了CPLD地址译码实验, 主要包括: 1、 简单I/O扩展实验2、 存储器扩展实验3、 CPLD地址译码实验4、 8255可编程并口实验5、 8255LED数码管显示实验6、 8255键盘实验7、 8253定时/计数器实验8、 A/D0809实验9、 D/A0832实验10、 8250可编程串口实验11、 8279显示器接口实验12、 8279键盘扩展实验13、 8259可编程中断控制
7、器实验14、 8237DMA控制器实验三、 系统资源分配本系统采用可编程逻辑器件( CPLD) EPM7064做地址的编译码工作, 可经过芯片的JTAG接口与PC机相连, 对芯片进行编程。此单元也分两部分: 一部分为系统CPLD, 完成系统器件, 如监控程序存储器、 用户程序存储器、 数据存储器、 系统显示控制器、 系统串行通讯控制器等的地址译码功能, 同时也由部分地址单元经译码后输出( 插孔CS0-CS6) 给用户使用, 她们的地址固定, 用户不可改变。具体的对应关系见表1-2。另一部分为用户CPLD, 它完全对用户开放, 用户可在一定的地址范围内, 进行译码, 输出为插孔LCS0-LCS7
8、, 用户可用的地址范围如下所示, 注意: 用户的地址不能与系统相冲突, 否则将导致错误。1、 地址分配6264 系统RAM, 地址范围 003FFF, 奇地址有效62256 系统RAM, 地址范围003FFF, 偶地址有效2764 系统ROM, 地址范围 FFFFFFC000, 奇地址有效27256 系统ROM, 地址范围 FFFFFFC000, 偶地址有效CS0 片选信号, 地址04A004AF 偶地址有效CS1 片选信号, 地址04B004BF 偶地址有效CS2 片选信号, 地址04C004CF 偶地址有效 CS3 片选信号, 地址04D004DF 偶地址有效 CS4 片选信号, 地址04
9、E004EF 偶地址有效 CS5 片选信号, 地址04F004FF 偶地址有效CS6 片选信号, 地址F000FFFF 偶地址有效8250片选地址: 0480048F, 偶地址有效8279片选地址: 0490049F, 偶地址有效2、 硬件实验说明所有实验程序的起始地址为01100H, CS=0100H, IP=0100H, 代码段、 数据段、 堆栈段在同一个64K的地址空间中。四、 硬件系统1、 EL型微机教学实验系统结构EL型微机教学实验系统由电源、 系统板、 可扩展的实验模板、 微机串口通讯线、 JTAG通讯线及通用连接线组成。系统板的结构简图见图1。图1 系统板的结构简图2、 硬件资源
10、微处理器模块: 8086CPU及其相关电路。存储器: 随机存储器RAM 40K字节, EPROM 40K字节。CPLD译码电路: 包括系统译码CPLD和用户CPLD两部分, 采用ALTERA 公司速度最快的高集成度可编程逻辑器件EPM7064SLC44-10。可编程并行接口: 采用8255A芯片。串行接口: 采用8250芯片, 用作与主机通讯或供用户编程实验。8279键盘、 显示控制器: 六位LED数码显示, LED和键盘可扩展。A/D转换电路: 采用ADC0809, 8位8通道逐次比较AD转换器, 典型转换时间100us。D/A转换电路: 采用DAC0832, 8位微处理器兼容D/A。825
11、3可编程定时/计数器8259可编程中断控制器8237 DMA控制电路脉冲产生电路: 采用74LS161计数器, 输出5路时钟信号。简单I/O口扩展电路: 缓冲驱动器74LS244和输出锁存器74LS273。开关量输入输出电路: 8位逻辑电平输入开关, 8位LED显示电路。一路可调模拟量( 电位器) ( 05V) 单脉冲发生器电路: 可产生正、 负脉冲。独立开关电源: 220V供电, +5V, 12V输出。独立的LED数码显示、 LCD显示电路。独立的4X6键盘电路。3、 整机测试当系统上电后, 数码管显示, RX、 TX发光二极管闪烁, 若没运行系统软件与上位机( PC) 连接则过会儿数码管显
12、示P-, 若与上位机建立连接则显示C-。此时系统监控单元( 2764、 27256) 、 通讯单元( 8250、 MAX232) 、 显示单元( 8279, 75451, 74LS244) 、 系统总线、 系统CPLD正常。若异常则按以下步骤进行排除: ( 1) 按复位按扭使系统复位, 测试各芯片是否复位; ( 2) 断电检查8086及上述单元电路芯片是否正确且接触良好; ( 3) 上电用示波器观察芯片的片选及数据总线信号是否正常。( 4) 若复位后RX、 TX发光二极管闪烁, 则显示单元有问题, 检查8279时钟信号, 断电调换显示单元芯片; 若复位后RX、 TX发光二极管不闪烁, 检查82
13、50晶振信号, 断电调换通讯单元芯片。五、 单元电路原理及测试1、 单脉冲发生器电路( 1) 电路原理该电路由一个按扭, 1片74LS132组成, 具有消颤功能, 正反相脉冲, 相应输出插孔P+、 P-。原理如图2: 图2 单脉冲发生器电路( 2) 电路测试常态P+为高电平, P-为低电平; 按扭按下时P+为低电平, P-为高电平。2、 脉冲产生电路( 1) 电路原理该电路由片74LS161、 片74LS04、 片74LS132组成。CLK0是6MHz, 输出时钟为该CLK0的2分频( CLK1) , 4分频( CLK2) , 分频( CLK3) , 分频( CLK4) , 相应输出插孔 (C
14、LK0CLK4)。如图3所示。图3 脉冲产生电路( 2) 电路测试电路正常时, 可经过示波器观察波形。若CLK0有波形而其它插孔无波形, 更换74LS161; 若都无波形, 74LS04、 74LS132或6M晶振有问题。3、 存储器电路( 1) 电路原理该电路由一片2764、 一片27256、 一片6264、 一片62256、 三片74LS373组成, 2764提供监控程序高8位, 27256提供监控程序低8位, 6264提供用户程序及数据存储高8位, 2764提供监控程序低8位, 74LS373提供地址信号。ABUS表示地址总线, DBUS是数据总线。D0D7是数据总线低八位, D8D15
15、是数据总线高八位。其它控制总线如: MEMR, MEMW和片选线均已接好。在8086系统中, 存储器分成两部分, 高位地址部分( 奇字节) 和低位地址部分( 偶字节) 。当A0=1时, 片选信号选中奇字节; 当A0=0时, 选中偶字节。原理如图4所示。图4 存储器电路4、 简单I/O口扩展电路( 1) 电路原理输入缓冲电路由74LS244组成, 输出锁存电路由上升沿锁存器74LS273组成。74LS244是一个扩展输入口, 74LS273是一个扩展输出口, 同时它们都是一个单向驱动器, 以减轻总线的负担。74LS244的输入信号由插孔IN0IN7输入, 插孔CS244是其选通信号, 其它信号线
16、已接好; 74LS273的输出信号由插孔O0O7输出, 插孔CS273是其选通信号, 其它信号线已接好。其原理如图5所示。( 2) 电路测试当74LS244的1, 19脚接低电平时, IN0IN7与DD0DD7对应引脚电平一致; 当74LS273的11脚接低电平再松开( 给11脚一上升沿) 后, O0O7与DD0DD7对应引脚电平一致。或用简单I/O口扩展实验测试: 程序执行完读开关量后, 74LS244的IN0IN7与DD0DD7对应引脚电平一致; 程序执行完输出开关量后, 74LS273 的O0O7与DD0DD7对应引脚电平一致。图5 简单I/O口扩展电路5、 8259中断控制电路( 1)
17、 、 电路原理CS8259是8259芯片的片选插孔, IR0IR7是8259的中断申请输入插孔。DDBUS是系统8位数据总线。INT插孔是8259向8086CPU的中断申请线, INTA是8086的中断应答信号。电路如图6所示。图6 8259中断控制电路6、 8253定时器/计数器电路( 1) 电路原理该电路由片8253组成, 8253的片选输入端插孔CS8253, 数据口, 地址, 读写线均已接好, T0、 T1、 T2时钟输入分别为8252CLK0、 8253CLK1、 8253CLK2。定时器输出,GATE控制孔对应如下: OUT0、 GATE0、 OUT1、 GATE1、 OUT2、
18、GATE2。原理如图7所示。注: GATE信号无输入时为高电平图7 8253定时器/计数器电路7、 8255并行接口电路( 1) 电路原理该电路由片8255组成, 8255的数据口, 地址, 读写线, 复位控制线均已接好, 片选输入端插孔为8255CS, A、 B、 C三端口的插孔分别为: PA0PA7,PB0PB7,PC0PC7.电路原理如图8所示。图8 8255并行接口电路8、 8237 DMA传输电路( 1) 电路原理该电路由一片8237、 一片74LS245、 一片74LS373、 一片74LS244组成, DRQ0, DRQ1是DMA请求插孔, DACK0、 DACK1是DMA响应信
19、号插孔。SN74LS373提供DMA期间高8位地址的锁存, 低8位地址由端口A0A7输出。74LS245提供高8位存储器的访问通道。DMA0DMA3是CPU对8237内部寄存器访问的通路。原理如图9所示。图9 8237 DMA传输电路9、 8250串行接口电路( 1) 电路原理该电路由一片8250, 一片MAX232组成, 该电路所有信号线均已接好。原理如图10所示。图10 8250串行接口电路10、 A/D、 D/A电路( 1) 电路原理八路八位A/D实验电路由一片ADC0809, 一片74LS04, 一片74LS32组成, 该电路中, ADIN0ADIN7是ADC0809的模拟量输入插孔,
20、 CS0809是0809的AD启动和片选的输入插孔, EOC是0809转换结束标志, 高电平表示转换结束。齐纳二极管LM336-5提供5V的参考电源, ADC0809的参考电压, 数据总线输出, 通道控制线均已接好, ; 八位双缓冲D/A实验电路由一片DAC0832。一片74LS00, 一片74LS04, 一片LM324组成, 该电路中除DAC0832的片选未接好外, 其它信号均已接好, 片选插孔标号CS0832。输出插孔标号DAOUT。该电路为非偏移二进制D/A转换电路, 经过调节RANG.ADJ, 可调节D/A转换器的满偏值, 调节ZERO.ADJ, 可调节D/A转换器的零偏值。如图11所
21、示。图11 A/D、 D/A电路11、 8279键盘、 显示电路( 1) 电路原理8279显示电路由6位共阴极数码管显示, 74LS244段驱动器, 75451位驱动器, 74LS138键盘译码电路。8279的数据口, 地址, 读写线, 复位, 时钟, 片选都已经接好, 键盘行列扫描线均有插孔输出。键盘行扫描线插孔号为KA0KA3; 列回复线插孔号为RL0RL7; 8279还引出CTRL、 SHIFT插孔。原理如图12所示。图12 8279键盘、 显示电路( 2) 电路测试六位数码管电路的测试: 除去数码管右侧的所有跳线, 系统加电, 用导线将插孔LED1接低电平( GND) , 再将插孔LE
22、D-A, LED-B, LED-C, LED-D, LED-E, LED-F, LED-G, LED-DP依次接高电平( VCC) , 则数码管SLED1的相应段应点亮, 如果所有的段都不亮, 则检查相应的芯片75451, 如果个别段不亮, 则检查该段的连线、 及数码管是否损坏。用同样的方法依次检查其它数码管。8279显示、 键盘控制芯片电路的测试: 将数码管右边的所有跳线短接, 复位系统, 应能正常显示。否则检查8279芯片、 74LS244芯片、 74LS138芯片是否正常。12、 4X6扫描键盘电路( 1) 电路原理: 键盘采用行列扫描的方式。如图13所示, 其中SHIFT、 CTRL两
23、键经过检查是否与GND相连来判断按键是否按下。( 2) 电路测试按照下图, 系统加电, 首先用万用表的电压档依次测试各个插孔的电压, 在无键按下的情况下, 共13个插孔的电压皆为VCC电压, 否则检查故障插孔相关的电路。上述检查无误后, 将插孔KA10与GND短路, 依次按键, 插孔RL10-RL17应有一个电压将为GND,而且每当一个按键按下时, 仅有一个对应插孔的电压降低。否则检查相应的按键是否正常。依次检查KA11、 K112。图13 4X6扫描键盘电路13、 开关量输入输出电路( 1) 电路原理开关量输入电路由8只开关组成, 每只开关有两个位置H和L, 一个位置代表高电平, 一个位置代
24、表低电平。对应的插孔是: K1K8。开关量输出电路由8只LED组成, 对应的插孔分别为LED1LED8, 当对应的插孔接低电平时LED点亮。原理如图14所示。图14 开关量输入输出电路( 2) 电路测试开关量输入电路可经过万用表测其插座电压的方法测试, 即开关的两种状态分别为低电平和高电平; 开关量输出电路可经过在其插孔上接低电平的方法测试, 当某插孔接低电平时相应二极管发光。14、 六位LED数码管驱动显示电路( 1) 电路原理该电路由六位LED数码管、 位驱动电路、 段输入电路组成, 数码管采用动态扫描的方式显示。具体见原理如图15所示。, 图中用75251作数码管的位驱动。跳线开关用于选
25、择数码管的显示源, 可外接, 也可选择8279芯片。图15 LED数码管驱动显示电路( 2) 电路测试: 去除短路线, 系统加电, 将插孔LED-1与GND短接, 用电源的VCC端依次碰触插孔LED-A-LED-DP, 观察最左边的数码管的显示段依次发亮, 则可断定此位数码管显示正常, 否则检查芯片75451、 及连线。依次检查其它各位数码管电路。 实验一 汇编环境与DEBUG工具的使用一、 实验目的: 了解汇编环境, 学习DEBUG工具。二、 实验内容: 调试程序DEBUG 为汇编语言设计的一种调试工具, 经过单步、 设置断点等方式为汇编语言程序员提供了非常有效的调试手段。 三、 实验原理:
26、 在DOS的提示符下, 可键入命令: CDEBUGd:pathfilename.exeparm1parm2 d: 是DEBUG将要调试的文件所在的磁盘驱动器。 path: 是查找DEBUG将要调试的文件所需的子目录路径, 若未指定, DOS使用当前目录。 filename.exe: 是DEBUG将要调试的文件名。如果用户键入文件名, 则DEBUG将指定的文件装入存储器中, 用户可对其进行调试, 如果未键入文件名, 则用户可用当前存储器的内容工作, 或者用DEBUG命令N和L将需要的文件装入存储器后再进行调试。 parm1和parm2: 是为运行被调试的程序( 或文件) 时所需的命令参数。 在D
27、EBUG程序调入后, 将出现提示符_, 此时就可用DEGUG命令来调试程序。1、 显示存储单元的命令 D _Daddress 或 _Drange例如, 按指定范围显示存储单元内容的方法为: -D100 120 067C:0100 C7 D7 0D 0A 32 33 33 34 - D5 C5 B4 C6 30 10 42 0C .2334.0.B.067C:0110 03 41 42 43 44 45 46 47 - 48 49 4A 4B 4C 4D 4E 4F .ABCDEFGHIJKLMNO067C:0120 8B 其中0100至0120是DEBUG显示的单元内容。 左边用十六进制表示每
28、个字节, 右边用ASCII字符表示每个字节。”.”表示不可显示的字符。 这里没有指定段地址, D命令自动显示DS段的内容。如果只指定首地址, 则显示从首地址开始的80个字节的内容; 如果完全没有指定地址, 则显示上一个D命令显示的最后一个单元后的内容。 2、 修改存储单元内容的命令有两种输入命令E( Enter) , 有两种格式如下: ( 1) 第一种格式能够用给定的内容表来替代指定范围的存储单元内容。命令格式为: -E address list 例如, -E DS(具体值):100 F3XYZ8D 其中F3, X, Y, Z和8D各占一个字节 该命令能够用这五个字节来替代存储单元DS: 01
29、00到0104的原先的内容。( 2) 第二种格式则是采用逐个单元相继修改的方法。命令格式为: -E address 例如, -E DS( 具体值) :100 则可能显示为: 18E4: 0100 89. 如果需要把该单元的内容修改为78, 则能够直接键入78, 再按空格键可接着显示下一个单元的内容, 如下: 18E4: 0100 89._78 1B._ 这样能够不断修改相继单元的内容, 直到Enter键结束该命令为止。 3、 填写命令F( Fill) 其格式为: -F range list 例如, -F 4BA:0100 0105 F3XYZ8D 使04BA: 0100-0104单元包含指定的
30、五个字节的内容, 如果list中的字节数超过指定的范围, 则忽略超过的项; 如果list的字节数小于指定范围, 则重复使用list填入, 直到填满指定的所有单元为止。4、 检查和修改寄存器内容的命令R( Register) 它有三种格式如下: ( 1) 显示CPU内所有寄存器内容和标志位状态, 其格式为: -R 例如, -r AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC18E4: 0100
31、 C MOV WORD PTR0204, 0138 DS:0204=0000标志位状态的含义 标志名标志为1标志为0 溢出( 是/否) OVNV 方向( 减量/增量) DNUP 中断( 允许/关闭) ETDT 符号( 负/正) NGPL 零( 是/否) ZRNZ 辅助进位( 是/否) ACNC 奇偶( 偶/奇) PEPO 进位( 是/否) CVNC( 2) 显示和修改某个寄存器内容, 其格式为: -R register name 例如, 键入 -r ax 系统将响应如下: AX F1F4即AX寄存器的当前内容为F1F4, 如不修改则按Enter键, 否则, 键入欲修改的内容 如: -r bx
32、BX 0369 : 059F 则把BX寄存器的当前内容修改为059F。 ( 3) 显示和修改标志位状态, 命令格式为: -RF 系统将响应, 如: OV DN EI NG ZR AC PE CY 此时如不修改其内容可按Enter键, 否则, 建入欲修改的内容, 如: OV DN EI NG ZR AC PE CY PONZDINV 即可, 键入的顺序是任意的。 5、 运行命令G( Go) 其格式为: -G =address1address2address3 . 其中, 地址1指定了运行的起始地址, 如不指定则从当前的CS:IP开始运行。 后面的地址均为断点地址, 当指令执行到断点时, 就停止执
33、行并显示当前所有寄存器及标志位的内容, 和下一条将要执行的指令。 6、 跟踪命令T( Trace) 有两种格式: ( 1) 逐条指令跟踪 -T=address 从指定地址起执行一条指令后停下来, 显示所有寄存器内容及标志位的值。如未指定则从当前的CS:IP开始执行。 ( 2) 多条指令跟踪 -T=addressvalue 从指定地址起执行n条指令后停下来, n由value指定。 若中断用T执行( 例 MOV AH, 4CH INT 21H) 则进入DOS, 执行BIOS的内容7、 汇编命令A( Assemble) 其格式为: -A address 该命令允许键入汇编语言语句, 并能把它们汇编成
34、机器代码, 相继地存放在从指定地址开始的存储区中。 必须注意: DEBUG把键入的数字均看成十六进制数, 因此如要键入十进制数, 则其后应加以说明, 如100D。 8、 反汇编命令U( Unassemble) 有两种格式: ( 1) 从指定地址开始, 反汇编32个字节, 其格式为: -Urange 例如: -u 100 18E4:0100 C MOV WORD PTR0204,0138 18E4:0106 C706060 2 MOV WORD PTR0206,0200 18E4:010C C MOV WORD PTR0208,0202 18E4:0112 BB0402 MOV BX,0204
35、18E4:0115 E80200 CALL 011A 18E4:0118 CD20 INT 20 18E4:011A 50 PUSH AX 18E4:011B 51 PUSH CX 18E4:011C 56 PUSH SI 18E4:011D 57 PUSH DI 18E4:011E 8B37 MOV SI,BX 如果地址被省略则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。( 2) 对指定范围内的存储单元进行反汇编, 格式为: -Urange 例如: -u 100 10C 18E4:0100 C MOV WORD PTR0204,0138 18E4:0106 C706060 2
36、 MOV WORD PTR0206,0200 18E4:010C C MOV WORD PTR0208,0202 或: -u 100 112 18E4:0100 C MOV WORD PTR0204,0138 18E4:0106 C706060 2 MOV WORD PTR0206,0200 18E4:010C C MOV WORD PTR0208,0202 这两种格式是等效的。用反汇编命令U来确定我们所要设定的断点地址。9、 命名命令N( Name) 其格式为: -N filespecs filespecs 命令把两个文件标识符格式化在CS: 5CH和CS: 6CH的两个文件控制块中, 以便
37、在其后用L或W命令把文件装入或存盘。 filespecs的格式能够是: d:path filename.exe 例如: -N myprog -L - 可把文件myprog装入存储器。10、 装入命令L( Load) 有两种功能: ( 1) 把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中 其格式为: -Laddress drive sector sector ( 2) 装入指定文件, 其格式为: -Laddress 此命令装入已在CS: 5CH中格式化了的文件控制块所指定的文件。如未指定地址, 则装入CS:0100开始的存储区中。11、 写命令W( Write) 有两种功能: (
38、1) 把数据写入磁盘的指定扇区。其格式为: -W address drive sector sector ( 2) 把数据写入指定的文件中。其格式为: -W address 此命令把指定的存储区中的数据写入由CS: 5CH处的文件控制块所指定的文件中。如未指定地址则数据从CS: 0100开始。要写入文件的字节数应先放入BX和CX中。 12、 退出DEBUG命令Q( Quit) 其格式为: -Q 它退出DEBUG, 返回DOS。本命令无存盘功能, 如需存盘应先使用W命令。 四、 调试实验程序及调试功能设置清单: -A MOV AX,1234 MOV BX,AX -T -T -A 0100 MOV
39、 DL, 35 MOV AH, 2 INT 21 调用DOS 21号中断2号功能, 用来逐个显示装入DL的字符 INT 20 调用DOS 20号中断, 终止程序, 将控制权交回给 DEBUG -G -A 0100 MOV CX, 0100 MOV DL, 00 MOV AH, 02 INT 21 INC DL LOOP 0105 INT 20 -G-A 0100 MOV DX, 109 MOV AH, 9 INT 21 INT 20 DB UNDERSTAND?$ -GSTACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT PROG
40、DB MOV AX,DATA,0DH,MOV DX,AX,0DH,MOV AX,0,0DH,MOV BX,2,0DH,MOV CX,10,0DH,ADD AX,BX,0DH DB . DB 1AH NUM DW 0 DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: MOV AX,DATA MOV DS,AX MOV AX,0 MOV SI,OFFSET PROG LOPA: CMP SI,BYTE PTR 1AH JE EXIT CMP SI,BYTE PTR M JNE NEXT CMP SI+1,BYTE PTR O
41、JNE NEXT CMP SI+2,BYTE PTR V JNE NEXT INC AX ADD SI,2 NEXT: INC SI JMP LOPA EXIT: MOV NUM,AX MOV AH,4CH INT 21H CODE ENDS END BEGIN 实验二 简单程序设计实验一、 实验目的: 熟悉汇编程序设计的基本过程。二、 实验内容: 1、 编写人机对话程序WHAT IS YOUR NAME? 输入: My name is . , 试编写程序。2、 在以BUF为首址的字节存储区中存放有N个无符号数X1, X2, Xn, 现需将它们按从小到大的顺序排列在BUF存储区中, 试编写程序
42、。3、 将变量A=10011010B的数据以二进制形式在显示器上输出, 试编写程序。4、 1+2+22+23+2n-1=255, 求N值并显示( 十进制数) 出来, 试编写程序。5、 已知在以BUF为首地地址的字节存储区中, 存放着一个以$作结束标志的字符串, 编写程序, 显示该字符串, 并要求将小写字母以大写字母形式显示出来。( 小写a为61H, 大写A为41H。) 三、 实验程序清单: 1、 DSEG SEGMENT DATA DB 0AH,0DH,WHAT IS YOUR NAME?$ BUF DB 81 DB ? DB 80 DUP(0) DSEG ENDS STACK1 SEGMENT DB 200 DUP(0) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG,SS:STACK1 START: MOV AX,DSEG MOV DS,AX LEA DX,DATA MOV AH,09H INT 21H LEA DX,BUF MOV AH,0AH INT 21H MOV AH,4CH INT 21H CODE ENDS END START2、 STACK1 SEGMENT