微机原理及接口技术实验指导_第1页
微机原理及接口技术实验指导_第2页
微机原理及接口技术实验指导_第3页
微机原理及接口技术实验指导_第4页
微机原理及接口技术实验指导_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理及接口技术实验指导书第一章 系统介绍1.1系统特点 EI型微机实验系统的最大特点是采用了模块组合式设计,容8051、8086、80C198和80C196三位于一体。它由通用接口板、可选的CPU板和两块小面包板三部分组成,系统具有以下特点:1. CPU可选用80C31、8086、80C196中任一种CPU,系统功能齐全,涵盖了微机教学实验课 程的大部分内容。2. 系统采用开放式模块化结构设计,通过两组相对独立的总线最多可同时扩展2块应用实验板,用户可根据需要购置相应实验板,降低了成本,提高了灵活性,便于升级换代。3. 灵活的电源接口:配有PC机电源插座,可由PC提供电源。另外还配有外接开

2、关电源,提供所需的+5V,12V,其输入为220V的交流电。4. 系统的联机运行模式:配有系统调试软件,系统调试软件分DOS版和WINDOWS版两种,均为中文多窗口界面。调试程序时可以同时打开寄存器窗口、内存窗口、变量窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。该软件集源程序编辑、编译、链接、调试与一体,每项功能均为中文下拉菜单,简明易学。经常使用的功能均备有热键,这样可以提高程序的调试效率。调试软件不仅支持汇编语言,而且还支持C语言编辑调试。1) 系统的单机运行模式:系统在没有与计算机连接的情况下,自动运行在单机模式,在此模式下,用户可通过键盘输入运行程序(机器码),和操

3、作指令,同时将输入信息及操作的结果在LED数码管上显示出来。2)系统功能齐全,可扩展性强。本实验系统不仅完全能满足教学大纲规定的基本接口芯片实验,其灵活性和可扩展性(数据总线、地址总线、控制总线为用户开放)亦能轻松满足其课程设计、毕业设计使用等。1.2系统概述1.2.1 8086单元1)微处理器:80862)时钟频率:6MHz3)存储器6264 系统RAM,地址范围 03FFFH,奇地址有效62256 系统RAM,地址范围03FFFH,偶地址有效2764 系统ROM,地址范围 FFFFFFC000H,奇地址有效27256 系统ROM,地址范围 FFFFFFC000H,偶地址有效4)可提供的对8

4、086的基本实验(1)简单I/O扩展实验(2)存储器扩展实验(3)CPLD地址译码实验(4)8255可编程并口实验(5)8253定时/计数器实验(6)A/D0809实验(7)D/A0832实验(8)8250可编程串口实验(9)8279显示器接口实验(10)8279键盘扩展实验(11)8259可编程中断控制器实验(12)8237DMA控制器实验5)系统资源分配l 地址分配CS0 片选信号,地址04A004AF 偶地址有效CS1 片选信号,地址04B004BF 偶地址有效 CS2 片选信号,地址04C004CF 偶地址有效 CS3 片选信号,地址04D004DF 偶地址有效 CS4 片选信号,地址

5、04E004EF 偶地址有效 CS5 片选信号,地址04F004FF 偶地址有效CS6 片选信号,地址000001FF 偶地址有效CS7 片选信号,地址020003FF 偶地址有效8250 片选地址:0480048F,偶地址有效8279 片选地址:0490049F,偶地址有效l 硬件实验说明所有实验程序的起始地址为01100H,CS=0100H,IP=0100H,代码段、数据段、堆栈段在同一个64K的地址空间中。三.系统电源该系统的电源提供了两种解决方案:1)利用PC机的电源,可省去电源的费用,只需从PC机内引出一组电源,从CPU板的+5V、+12V、12V电源插座中引入。该电源具有短路保护。

6、2)外接开关电源,内置在实验箱里。第二章 基本电路介绍2.1 硬件介绍2.11 整机介绍1.EI型微机教学实验系统结构EI 型微机教学实验系统由电源、系统板、CPU板、可扩展的实验模板、微机串口通讯线、JTAG通讯线及通用连接线组成。系统板的结构简图见图2-1。图2-1 实验系统的结构2、EI型微机教学实验系统外形美观,具有优良的电特性、物理特性,便于安装,运行稳定,可扩展性强。2.1.2 硬件资源1、 可编程并口接口芯片8255一片。2、 串行接口两个:8250芯片一个,系统与主机通讯用,用户不可用。 单片机的串行口,可供用户使用。3、 键盘、LED显示芯片8279一片,其地址已被系统固定为

7、CFE8H、CFE9H。硬件系统要求编码扫描显示。4、 六位LED显示。5、 ADC0809 A/D转换芯片一片,其地址、通道18输入对用户开放。6、 DAC0832 D/A转换芯片一片,其地址对用户开放,模拟输出可调7、 8位简单输入接口74LS244和8位简单输出接口74LS273各一个,其地址对用户开放。8、 配有逻辑电平开关,发光二极管显示电路。9、 配有一个可手动产生正、负脉冲的脉冲发生器10、配有一个可自动产生正、负脉冲的脉冲发生器,按基频6.0MHz进行1分频(CLK0)、二分频(CLK1)、四分频(CLK2)、八分频 (CLK3)、十六分频(CLK4)输出方波。11、配有一路0

8、-5V连续可调模拟量输出(AN0)。12、配有可编程定时器8253一个,其地址、三个定时器的门控输入、控制输出均对用户开放。13、2组总线扩展接口,最多可扩展2块应用实验板。14、灵活的电源接口:配有PC机电源插座,可与PC电源直接接驳。另外还配有外接开关电源,提供所需的+5V,12V,其输入为220V的交流电。2.1.3 整机测试当系统上电后,数码管显示,RX、TX发光二极管闪烁,若没运行系统软件与上位机(PC)连接则3秒后数码管显示P-,若与上位机建立连接则显示C-。此时系统监控单元(27256)、通讯单元(8250、MAX232)、显示单元(8279,75451,74LS244)、系统总

9、线、系统监控正常。若异常则按以下步骤进行排除:1、 按复位按键使系统复位,测试各芯片是否复位;2、 断电检查单片机及上述单元电路芯片是否正确且接触良好;3、 上电用示波器观察芯片片选及数据总线信号是否正常;4、 若复位后RX、TX发光二极管闪烁,则显示单元有问题,检查8279时钟信号,断电调换显示单元芯片;若复位后RX、TX发光二极管不闪烁,检查8250晶振信号,断电调换通讯单元芯片。22单元电路原理及测试22.1 单脉冲发生器电路(1)电路原理:该电路由一个按扭,1片74LS132组成,具有消颤功能,正反相脉冲,相应输出插孔P+、P-。原理图图1所示:图1 单脉冲发生器电路(2)电路测试:常

10、态P+为高电平,P-为低电平;按扭按下时P+为低电平,P-为高电平。若异常可更换74LS132。2.2脉冲产生电路(1)电路原理:该电路由片74LS161、片74LS04、片74LS132组成。CLK0是6MHz,输出时钟为该CLK0的2分频(CLK1),4分频(CLK2),分频(CLK3),分频(CLK4),相应输出插孔 (CLK0CLK4)。图2 脉冲产生电路(2)电路测试:电路正常时,可通过示波器观察波形。若CLK0有波形而其它插孔无波形,更换74LS161;若都无波形,74LS04、74LS132或6M晶振有问题。2.3 开关量输入输出电路(1)电路原理开关量输入电路由8只开关组成,每

11、只开关有两个位置H和L,一个位置代表高电平,一个位置代表低电平。对应的插孔是:K1K8。开关量输出电路由8只LED组成,对应的插孔分别为LED1LED8,当对应的插孔接低电平时LED点亮。原理图如下:(2)电路测试开关量输入电路可通过万用表测其插座电压的方法测试,即开关的两种状态分别为低电平和高电平;开关量输出电路可通过在其插孔上接低电平的方法测试,当某插孔接低电平时相应二极管发光。图3 开关量输入输出电路2.4 简单I/O口扩展电路(1)电路原理输入缓冲电路由74LS244组成,输出锁存电路由上升沿锁存器74LS273组成。74LS244是一个扩展输入口,74LS273是一个扩展输出口,同时

12、它们都是一个单向驱动器,以减轻总线的负担。74LS244的输入信号由插孔IN0IN7输入,插孔CS244是其选通信号,其它信号线已接好;74LS273的输出信号由插孔O0O7输出,插孔CS273是其选通信号,其它信号线已接好。其原理图(附图1)所示。(2)电路测试当74LS244的1,19脚接低电平时,IN0IN7与DD0DD7对应引脚电平一致;当74LS273的11脚接低电平再松开(给11脚一上升沿)后,O0O7与DD0DD7对应引脚电平一致。或用简单I/O口扩展实验测试:程序执行完读开关量后,74LS244的IN0IN7与DD0DD7对应引脚电平一致;程序执行完输出开关量后,74LS273

13、 的O0O7与DD0DD7对应引脚电平一致。2.5 8279键盘、显示电路(1)电路原理8279显示电路由6位共阴极数码管显示,74LS244为段驱动器,75451为位驱动器,可编程键盘电路由片74LS138组成,8279的数据口,地址,读写线,复位,时钟,片选都已经接好,键盘行列扫描线均有插孔输出。键盘行扫描线插孔号为KA0KA3;列扫描线插孔号为RL0RL7;8279还引出CTRL、SHIFT插孔。六位数码管的位选、段选信号可以从8279引入,也可以有外部的其他电路引入。(2)电路测试见整机测试六位数码管电路的测试:除去电路板上数码管右侧的跳线,系统加点,用导线将插孔LED1接低电平(GN

14、D),再将插孔LED-A,LED-B,LED-C,LED-D,LED-E,LED-F,LED-G,LED-DP依次接高电平(VCC),则数码管SLED1的相应段应点亮,如果所有的段都不亮,则检查相应的芯片75451,如果个别段不亮,则检查该段的连线、及数码管是否损坏。用同样的方法依次检查其它数码管。8279显示、键盘控制芯片电路的测试:加上数码管右边的所有短路线,复位系统,应能正常显示。否则检查8279芯片、244芯片、138芯片是否正常。2.6 8250串行接口电路(1)电路原理该电路由一片8250,一片MAX232组成,该电路所有信号线均已接好。电路原理图(附图2)所示。 (2)电路测试:

15、见整机测试2.7 8255并行接口电路(1)电路原理该电路由片8255组成,8255的数据口,地址,读写线,复位控制线均已接好,片选输入端插孔为8255CS,A,B,C三端口的插孔分别为:PA0PA7,PB0PB7,PC0PC7。电路原理图(附图3)所示。(2)电路测试检查复位信号,通过8255并行口实验,程序全速运行,观察片选、读、写、总线信号是否正常。28 A/D、D/A电路(1)电路原理八路八位A/D实验电路由一片ADC0809,一片74LS04,一片74LS32组成,该电路中,ADIN0ADIN7是ADC0809的模拟量输入插孔,CS0809是0809的AD启动和片选的输入插孔,EOC

16、是0809转换结束标志,高电平表示转换结束。齐纳二极管LM336-5提供5V的参考电源,ADC0809的参考电压,数据总线输出,通道控制线均已接好,八位双缓冲D/A实验电路由一片DAC0832。一片74LS00,一片74LS04,一片LM324组成,该电路中除DAC0832的片选未接好外,其他信号均已接好,片选插孔标号CS0832。输出插孔标号DAOUT。该电路为非偏移二进制D/A转换电路,通过调节POT3,可调节D/A转换器的满偏值,调节POT2,可调节D/A转换器的零偏值。电路原理图(附图4)所示。(2)电路测试检查复位信号,通过A/D、D/A实验,程序全速运行,观察片选、读、写、总线信号

17、是否正常。2.9 8253定时器/计数器电路(1)电路原理该电路是由片8253组成,8253的片选输入端插孔CS8253,数据口,地址,读写线均需学生独立连接,T0、T1、T2时钟输入分别为8252CLK0、8253CLK1、8253CLK2。定时器输出,GATE控制孔对应如下:OUT0、GATE0、OUT1、GATE1、OUT2、GATE2、CLK2。电路原理图如图4所示。注:GATE信号无输入时为高电平图4 8253定时器/计数器电路(2)电路测试 检查复位信号,通过8253定时器/计数器接口实验,程序全速运行,观察片选、读、总线信号是否正常。2.10 8259中断控制电路(1)电路原理C

18、S8259是8259芯片的片选插孔,IR0IR7是8259的中断申请输入插孔。DDBUS是系统8位数据总线。INT插孔是8259向8086CPU的中断申请线,INTA是8086的中断应答信号。原理图(附图5)所示。:(2)电路测试检查复位信号,通过8259中断控制器实验,程序全速运行,观察片选、读、写、总线信号是否正常。2.11 存储器电路(1)电路原理该电路由一片2764、一片27256、一片6264、一片62256、三片74LS373组成,2764提供监控程序高8位,27256提供监控程序低8位,6264提供用户程序及数据存储高8位,2764提供监控程序低8位,74LS373提供地址信号。

19、ABUS表示地址总线,DBUS是数据总线。D0D7是数据总线低八位,D8D15是数据总线高八位。其他控制总线如:MEMR,MEMW和片选线均已接好。在8086系统中,存储器分成两部分,高位地址部分(奇字节)和低位地址部分(偶字节)。当A0=1时,片选信号选中奇字节;当A0=0时,选中偶字节。原理图(附图5)所示。:(2)电路测试监控正常则2764、27256、74LS373没问题,用户程序可正常运行则6264、62256没问题。检查复位信号,通过存储器读写实验,程序全速运行,观察片选、读、写、总线信号是否正常。2.12 六位LED数码管驱动显示电路(1)电路原理该电路由六位LED数码管、位驱动

20、电路、端输入电路组成,数码管采用动态扫描的方式显示。电路中用75251作数码管的位驱动。跳线开关用于选择数码管的显示源,可外接,也可选择8279芯片。(2)电路测试:去除短路线,系统加电,将插孔LED-1与GND短接,用电源的VCC端依次碰触插孔LED-A-LED-DP,观察最左边的数码管的显示段依次发亮,则可断定此位数码管显示正常,否则检查芯片75451、及连线。依次检查其他各位数码管电路。 第三章 微型计算机汇编语言及汇编程序 汇编语言和机器语言相比,使用汇编语言来编写程序的突出优点就是可以使用符号;具体地说,就是可以用助记符来表示指令的操作码和操作数,可以用标号和符号来代替地址、常量和变

21、量。助记符一般都是表示一个操作的英文字母的缩写,很便于识别和记忆。不过,用汇编语言编写的程序不能由机器直接执行,而必须翻译成由机器代码组成的目标程序,这个翻译过程称为汇编。在微型机中,当前绝大多数情况下,汇编过程是通过软件自动完成的。用来把汇编语言编写的程序自动翻译成目的程序的软件叫汇编程序。汇编过程的含义如图3-1所示。 图3-1汇编程序的执行过程 用汇编语言编写的程序叫源程序。前面讲的指令系统中的每条指令都是构成源程序的基本语句。汇编语言的指令和机器语言的指令之间有一对应的关系。 所以,汇编语言是和机器密切相关的,是面向机器的语言,CPU不同的机器有不同的汇编语言。采用汇编语言进行程序设计

22、时,我们可以充分利用机器的硬件功能和结构特点,从而可有效地加快程序的执行速度,减小目标程序所占用的存储空间。因此,与高级语言相比,汇编语言为我们提供了直接控制目标代码的手段,而且可以对输入输出端口进行控制,实时性能好,执行速度快和节省存储空间等明显优点。所以,汇编语言大量被用于编写计算机系统程序、实时通信程序、实时控制程序等。 8086和 80286,80386,80486系统的汇编程序完全相同,简称作ASM-86。在此基础上进一步扩展其功能,成为当前广泛使用的8086宏汇编程序,简称MASM-86。 31 宏汇编语言的基本语法311伪指令语句格式它与指令语句不同,伪指令语句(又叫命令语句)中

23、的伪指令本身不产生对应的机器目标代码。它仅仅是告诉汇编程序,对后面的指令语句和伪指令语句的操作数应该如何产生机器目标代码。每一条伪指令语句共分4个字段,它的指令格式如图3-2所示。图3-2 伪指令语句格式 1标号名字段 这是一个任选字段。标号名后面不能用冒号“:”,这是它与指令语句的突出区别。不同的伪指令,标号名可以是常量名、变量名、过程名、结构名、记录名等。它们可以作为指令语句和伪指令语句的操作数,这时,标号名就表示一个常量或存储器地址。 2伪指令字段 这是伪指令语句不可省略的主要成分。伪指令种类很多,如定义数据伪指令DB,DW,DD;段定义伪指令SEGMENT;定义过程伪指令PROC;。它

24、们是伪指令语句要求汇编程序完成的具体操作命令。 3操作数字段 本字段是否需要,需要几个,需要什么样的操作数等都由伪指令字段中伪指令来确定。操作数可以是一个常数(二进制、十进制、十六进制等)、字符串、常量名。变量名、标号、一些专用的符号(如BYTE,FAR,PARA等)。 4注释字段 这是一个任选字段,它必须以分号为开始,它的作用与指令语句的注释字段相同。312常数、变量和标号 常数、变量和标号是汇编语言能识别的数据项,它是指令和伪指令语句中操作数的基本组成部分。一个数据项包含有它的数值和属性两部分,这两部分对一条语句汇编成机器目标代码都有直接关系。 1常数 常数是没有任何属性的纯数值。在汇编期

25、间,它的值已能完全确定,且在程序运行中,它也不会发生变化。它可以有以下几种类型: (1)二进制数:以字母B结尾的,由 0和 1组成的数字序列,如 B。 (2)八进制数:以字母O或Q结尾的07数字序列,如 723Q,35O。 (3)十进制数:09数字序列,可以用字母D结尾,也可以没有结尾字母,如 129,129D。 (4)十六进制数:以字母 H结尾,由数字09和字母 AF(或a一f)组成的序列如3A5BH,OFH。为了区别由AF组成的是一个十六进制数还是一个标识符,凡以字母A F为起始的一个十六进制数,必须在前面冠以数字“0”,否则汇编程序认作标识符。 (5)实数:它由整数、小数和指数3部分组成

26、,这是计算机中的浮点表示法。实数一般用十进制数形式给出,实数的格式如下: 土整数部分小数部分E士指数部分其中,整数和小数部分形成这个数的值,称作尾数,它可以是带符号的数。指数部分由指数标识符E开始,它表示了值的大小,如 5.213E-4。(6)字符串常数:用引号括起来的一个或多个字符。这些字符以ASC码形式存储在内存中。如“ AB”,在内存中就是41H,42H。在程序中,常数主要出现在:(1)指令语句中源操作数中作立即数,它应与目的操作数的位数相一致,可以是8位或 16位,例如:MOV AX,0A5F1HADC DL,12H(2)在指令语句的基址加变址的寻址方式中作位移量,例如:MOV BX,

27、SI32H(3)在数据定义伪指令中,例如:DB 12H ;定义一个字节数据 DB 1234H ;定义一个字数据DD H ;定义一个双字数据DB A B C D ;定义4个字节的字符串数据 2变量 变量是代表存放在某些存储单元的数据,这些数据在程序运行期间随时可以修改。为了便于对变量的访问,它常常以变量名的形式出现在程序中,它可以认为是存放数据存储单元的符号地址。 (1)变量的定义与预置:定义变量就是给变量分配存储单元,且对这个存储单元赋于一个符号名变量名,同时将这些存储单元预置初值。 定义变量是用数据定义伪指令DB,DW,DD等。例如: VARDATA SEGMENT DATA1 DB 12H

28、 DATA2 DB 34H DATA3 DW 5678H VARDATA ENDS 经过定义的变量,每个变量均有3个属性: 段属性(SEG):表示变量存放在哪一个逻辑中(即变量所在段的段基值。例如,变量名为DATA1,DATA2,DATA3的3个变量都存放在VAR_DATA逻辑段中(用SEGMENTENDS伪指令定义一个逻辑段)。当在指令中要对这些变量进行存取操作时,事先要把它们所在段的段基值存放在某一个段寄存器(如DS)中。 偏移量属性(OFFSET):表示变量在逻辑段中离段起始点的字节数。仅很,变量DATA1的偏移量为0,而 DATA2的偏移量为1, DATA3的偏移量为2。上述段和偏移量

29、两个属性就构成了变量的逻辑地址。 类型属性(TYPE):表示变量占用存储单元的字节数。这一属性是由数据定义伪指令DB,DW,DD来规定的。变量DATA1,DATA2是用DB定义的,它的类型属性为字节;而DATA3是用DW定义的,类型属性为字;如果用DD定义,类型属性为双字。 (2)数据定义伪指令:这种伪指令主要为数据项分配存储单元并预置初值。由这种伪指令构成的语句格式是: 变量名表达式1,表达式2,其中表达式1,表达式2,是给变量赋予的初值。表达式可以有如下几种情况: 数值表达式。例如: DA BYTE DB 50H, 50 DA WORD DW OA3F1H, 4981H变量 DA_BYTE

30、的内容为50H,它的下一个字节为32H(即 DA_BYTEl字节单元的内容为十进制50)。DA_WORD字单元内容为OA3FIH(低字节为F1H,高字节为OA3H)它的下一字单元内容为4981H(即DA_WORD+2字单元)。 ?表达式:不带引号的?表示可预置任何内容。例如: DA_B DB ?,? DA_W DW ?,?第1条语句是要求汇编程序分配两个字节单位,第2条语句是要求分配两个字单元。这些单元里现在可以是任意值。 字符串表达式:对于DB伪指令,为字符串中每一个字符分配一个字节单元。字符串必须是用引号括起来且不超过255个字符。字符率自左至右以字符的ASC码按地址递增的排列顺序依次存放

31、。例如: STRING2 DB ABCDEF在存储器中存放的情况如图3-3(a)所示。对于DW伪指令,可以给两个字符组成的字符串分配两个字节存储单元,而且这两个字符ASC码的存储顺序是前一字符在高字节,后一字符在低字节,每一个数据项不能多于两个字符。例如: STRINGZ DW AB, CD, EF在存储器中存放的情况如图 3-3(b)所示。对于 DD伪指令,仅可给两个字符组成的字符串分配4个字节单元,且这两个字符ASC码是存储在两个低字节(存储顺序与DW伪指令相同)中,两个高字节均存放00H。例如: STRING3 DD AB,CD 在图3-3(c)显示了它们存储器中的存放情况。带DUP表达

32、式:DUP是定义重复数据操作符。在表达式中,使用DUP操作符格式是:图3-3 DB,DW,DD伪指令中字符串表达式的存放情况变量名表达式1,DUP(表达式2)其中表达式1是重复的次数,表达式2是重复的内容。例如: D_B1 DB 20 H DUP(?)D_B2 DB 10H DUP( ABCD)D_B3 DW 10H DUP( 4)第 1语句表示保留 20H个字节,每个字节可预置任意内容。第 2语句是重复 10H个字符串“ABCD”,共占有40 H个字节、第3语句是重复10 H个字单元,每个单元预置为4,共占有20H个字节。 3标号 标号是一条指令目标代码的符号地址,它常作为转移指令(含子程序

33、调用指令)的操作数。例如: LOP1: LOOP: LOP1 JNE NEXT NEXT: 与变量类似,每个标号亦具有3个属性: (l)段属性(SEG):表示这条指令目标代码在哪个逻辑段中。 (2)偏移量属性(OFFSET):表示这条指令目标代码的首字节在段内离段起始点的字节数。 同样,上述两个属性构成了这条指令目标代码首字节的逻辑地址。 (3)距离属性:表示本标号可作为段内或段间的转移特性。距离属性分为两种:NEAR(近):本标号只能被标号所在段的转移和调用指令所访问(即段内转移); FAR(远):本标号可被其他段(不是标号所在段)的转移和调用指令访问(即投间转移)。313表达式与运算符 表

34、达式由操作数和运算符组成,在汇编时一个表达式得到一个值。下面结合运算符讲述表达式。 用一个运算符可以对一个操作数或几个操作数进行运算,这就构成了一个表达式,从而得到一个新的值。ASM-86中分6类运算符,包括算术运算符、逻辑运算符、关系运算符、分析运算符、组合运算符和分离运算符,它们在汇编时完成相应运算。 1算术运算符 十,一,*,是加减乘除运算符。 MOD是除法取余运算符。例如,32 MOD 5=2。 SHL是左移操作符。例如,21H SHL 2=84H。 SHR是右移操作符。2逻辑运算符AND是逻辑“与”操作符。例如,24H AND OFH=04H。 OR是逻辑“或”操作符。例如,24H

35、OR OFH=2FH。 XOR是“异或”操作符。例如,24 H XOR OFH=2BH。 NOT是逻辑“非”操作符。例如,NOT 24H=ODBH。 3关系运算符 关系运算是逻辑判定式的,当为“真”时结果取OFFFFH,当为“假”时结果取0。关系运算是数值型的。 EQ 等于。例如,已赋给符号PP为25,则 25 EQ PP=OFFFFH。 NE 不等于。例如, 25 NE PP=0。 LT小于。例如, 251T。 26=OFFFFH。 LE刁。于等于。例如,25 LE PP=OFFFFH。 GT大于。例如, 26 GT 25=OFFFFH。 GE大干等于。例如, 24 GE PP=0。 4分析

36、运算符 (1)SEG 求段基址 格式: SEG (2)OFFSET 求偏移地址 格式: OFFSET (3)TYPE 求符号名类型值 格式: TYPE 符号名类型值见表3-1所列。 表3-1符号名类型值类型 1字节 2字节 四字节 8字节 10字节 近程 远程BYTE WORD DWORD QWORD TBYTE NEAR FAR类型值 1 2 4 8 10 1 2 (4)SIZE 求为符号名分配的字节数 格式: SIZE 为符号名定义的数据项必须是用重复格式DUP()定义的。 (5)LENGTH 求为符号名分配的项数 格式: LENGTH 为符号名定义的数据项必须是用重复格式 DUP()定义

37、的。 SIZE =(LENGTH)*( TYPE) 5组合运算符 组合运算符是用来改变或建立符号名的新类型。 (1)定义符号名为新类型 格式: PTR 例如,设内存变量D1是字节属性,把它的两个字节内容送到AX中。属性符号见表3-1所列。 MOV AX, WORD PTR D1 这里的符号名可以是间址、变址寻址、基址加变址寻址表示的存储器操作数。 (2)指定新类型 与PTR类似,可为某个符号名建立新类型。 格式:THIS 例如: LABC EQU THIS BYTE LABD DW 4321H,2255H MOV AL,LABC ;AL=21H MOV AX,LABD ;AX4321H 符号名

38、LABC与LABD有相同的段地址和偏移地址,但LABC是字节类型,而LABD是字类型。 6分离运算符 (1) LOW取低字节 格式:LOW (2) HIGH取高字节 格式:HIGH ;例如:设 SSY2050H MOV AL,LOW 3080H ;AL=80H MOV AH,HIGH SSY ;AH 20H MOV CL,LOW 3A4BH ;CL=4BH 7汇编运算符的优先级(见表3-2所示) 表3-2运算符的优先级别优先级别 运 算 符 0 括号中的表达式高级 1 ILENGTH,SIZE,WIDTH,MASK2 PTR,OFFSET,SEG,TYPE,THIS,段前缀(段寄存器名:)3

39、HIGH,LOW4 *,MOD(求余数),SHL,SHR 5 ,一6 EQ,NE,LT,LE,GT,GE 7 NOT8 AND低级 9 OR,XOR10 SHORT 3.2 系统功能调用 为给编写汇编语言源程序提供方便,MS-DOS系统中设置了几十个内部子程序,它们可完成IO设备管理、存储管理、文件管理和作业管理等功能。对我们来说,它们是几十个独立中断服务程序,它们的人口已由系统置入中断人口地址表中,在汇编语言源程序中可用软中断指令调用它们。一般我们常用的软中断指令有8条,系统规定它们的中断类型码为20H27H,它们各自的功能及入口出口参数如表3-3所示。 表3-3常用软中断功能及参数软中断指

40、令 功能 入口参数 出口参数INT 20H 程序正常退出INT 21H 系统功能调用 AH=功能号相应人口号数 相应出口号数INT 22H 结束退出INT 23H CTRLBreak处理INT 24H 出错退出AL=驱动器号INT 25H 读盘 CX=读人扇区数: CF=DX=起始逻辑扇区号DS:BX=内存缓冲区地址AL=驱动器号CX=写盘扇区数软中断指令 功能 入口参数 出口参数INT 26H 写盘 DX=起始逻辑扇区号 CF=DS:BX=内存缓冲区地址INT 27H 驻留退出 从表3-3中可看出,这些软中断完全隐蔽了设备的物理特性和接口方式,调用它们时只需要先设置好入口参数,随后安排一条款

41、中断指令“INT n”(n=2027H),即可转去执行相应的子程序。其中“21H”是系统功能调用,它本身包含 80多个子程序,每个子程序对应一个功能号,其编号从057H。 系统功能调用中的几十个子程序成为汇编语言程序员的重要工具,程序员不必了解所使用设备的物理特性、接口方式及内存分配等,不必编写繁锁的控制程序。调用它们时,采用统一的格式,只需使用以下3个语句: (1)传送入口参数到指定寄存器中; (2)功能号送入 AH寄存器中; (3) INT 21H。 有的子程序无入口参数,则只需安排后两个语句,调用结束后,系统将出口参数送到指定寄存器中或从屏幕显示出来。例如: 2号系统功能调用可用如下指令

42、: MOV DL,要求打印的字符 MOV AH,1 INT 21H 调用结果是将DL寄存器中的可打印字符通过屏幕显示输出(或打印机打印输出)。 下面选择一部分常用的系统功能调用作简要说明: 1键盘输入单字符 这是1号系统功能调用,使用格式如下所示: MOV AH,1 INT 21H它没有入口参数,执行1号系统功能调用时,系统等待键盘输入,待程序员按下任何一键,系统先检查是否Ctrl-Break键,如果是则退出,否则将键人字符的ASC码置入AL寄存器中,并在屏幕上显示该字符。 2键盘输入字符串 这是OAH号系统功能调用,其功能是将键盘输入的字符串写入到内存缓冲区中,因此必须事先在内存储器中定义一

43、个缓冲区。其第1字节给定该缓冲区中能存放的字节个数,第2字节留给系统填写实际键入的字符个数,从第3个字节开始用来存放键入的字符率,最后键入回车()键表示字符串结束。如果实际键入的字符数不足填满缓冲区时,则其余字节填“ 0”;如果实际键入的字符数超过缓冲区的容量,则超出的字符将被丢失,而且响铃,表示向程序员发出警告。OAH号系统功能调用的使用格式如下所示: BUF DB 20 定义缓冲区 DB ? DB 20 DUP(?) MOV DX,OFFSET BUF MOV AH,OAH OAH号系统功能调用 INT 21H 以上程序中,由变量定义语句定义了一个可存放20个字节的缓冲区,执行到INTZI

44、H指令时,系统等待用户键入字符串。程序员每键入一个字符,其相应的ASC码将被写入缓冲区中,待程序员最后键人回车()键时,由系统输出实际键入的字符数,并将其写入缓冲区的第2字节中。 3输出单字符 这是2号系统功能调用,使用格式如下所示:MOV DL,A MOV AH,2 INT 21H 执行2号系统功能调用时,将置入DL寄存器中的字符从屏幕上显示输出(或打印机打印输出)。 4输出字符串 这是9号系统功能调用,其功能是将指定的内存缓冲区中的字符率从屏幕显示输出(或从打印机打印输出)。缓冲区中的字符串以“”字符作为结束标志。9号系统功能调用的使用格式如下所示: BUF DB good bye MOV

45、 DX, OFFSET BUF MOV AH,9 INT 21H 执行 9号系统功能调用时,将内存缓冲区 BUF中存放的字符串(以“”字符为结束)送屏幕显示输出(或送打印机打印输出)。 5直接控制台输入输出单字符 这是 6号系统功能调用,如果(DL)=OFFH,则表示是从键盘输入单字符送AL寄存器中;如果(DL)OFFH,则表示是将 DL寄存器中内容送屏幕显示输出。它们的使用格式如下: MOV DL,OFFH MOV AH,6 ;键盘输入单字符送 AL中 INT 21H MOV DLA MOV AH,6 ;将 DL中的字符“ A”送屏幕显示 INT 21H 6.无回显直接控制台输入单字符 这是

46、7号系统功能调用,等待从标准输入设备输入单字符置入AL寄存器中,但不送屏幕显示。其使用格式如下: MOV AH,7 INT 21H它没有入口参数,系统等待从控制台标准输入设备输入单字符后,将其ASC码置入AL寄存器中。 7无回显键盘输入单字符 这是8号系统功能调用,等待从键盘输入单字符,将其ASC码置入AL寄存器中。但不送屏幕显示,其使用格式如下: MOV AH,8 INT 21H它没有入口参数,与1号系统功能调用的区别仅在于键入的字符不送屏幕显示。 8从串回输入单字符 这是3号系统功能调用,其使用格式如下: MOV AH,3 INT 21H它没有入口参数,系统将从异步通信口串行输入的字符置入

47、AL寄存器中。 9向串口输出单字符 这是4号系统功能调用,其使用格式如下: MOV DL, MOV AH,4 INT 21H执行结果将DL寄存器中的字符通过异步通信口单行输出。 10返回操作系统 这是4CH号系统功能调用,其使用格式如下: MOV AH, 4CH INT 21H它没有入口参数,执行结果是结束当前正在执行的程序,并返回操作系统。屏幕显示操作系统提示符( N), N为当前使用的驱动器名。 11设置日用 这是2BH号系统功能调用,其功能是设置有效日期。例如,当前需要设置的日期是1990年12月2 6日,那么应将年号1990以装配型 BCD码形式置人CX寄存器中,将月号12置入 DH寄

48、存器中,将日期26装入DL寄存器中。其使用格式如下: MOV CX,1990H MOV DH,12H MOV DL,26H MOV AH,2BH INT 21H执行的结果是将有效日期设置为 1990年 12月 26日,如果设置成功,则 0AL寄存器,否则 OFFHAL寄存器。从此以后日期会自动修改。 12取得日期 这是2AH号系统功能调用,其功能是将当前有效日期取到CX和DX寄存器中,存放格式与设置日期时相同,其使用格式如下: MOV AH,2AH INT 21H它没有入口参数,执行结果是将年号置入CX寄存器中,月份和日期置入DX寄存器中。 13设置时间 这是2DH号系统功能调用,其功能是设置有效时间。例如,当前有效时间是8点15分20 .5秒,那么应将小时数8置入CH寄存器中、分钟数15置入 CL寄存器中,秒数20置入DH寄存器中,百分之一秒数50置入DL寄存器中。其使用格式如下: MOV CX

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论