




已阅读5页,还剩98页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EI型微机实验系统毕业论文第一章 系统介绍1.1系统特点 EI型微机实验系统的最大特点是采用了模块组合式设计,容8051、8086、80C198和80C196三位于一体。它由通用接口板、可选的CPU板和两块小面包板三部分组成,系统具有以下特点:1. CPU可选用80C31、8086、80C196中任一种CPU,系统功能齐全,涵盖了微机教学实验课 程的大部分内容。2. 系统采用开放式模块化结构设计,通过两组相对独立的总线最多可同时扩展2块应用实验板,用户可根据需要购置相应实验板,降低了成本,提高了灵活性,便于升级换代。3. 灵活的电源接口:配有PC机电源插座,可由PC提供电源。另外还配有外接开关电源,提供所需的+5V,12V,其输入为220V的交流电。4. 系统的联机运行模式:配有系统调试软件,系统调试软件分DOS版和WINDOWS版两种,均为中文多窗口界面。调试程序时可以同时打开寄存器窗口、内存窗口、变量窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。该软件集源程序编辑、编译、链接、调试与一体,每项功能均为中文下拉菜单,简明易学。经常使用的功能均备有热键,这样可以提高程序的调试效率。调试软件不仅支持汇编语言,而且还支持C语言编辑调试。1) 系统的单机运行模式:系统在没有与计算机连接的情况下,自动运行在单机模式,在此模式下,用户可通过键盘输入运行程序(机器码),和操作指令,同时将输入信息及操作的结果在LED数码管上显示出来。2)系统功能齐全,可扩展性强。本实验系统不仅完全能满足教学大纲规定的基本接口芯片实验,其灵活性和可扩展性(数据总线、地址总线、控制总线为用户开放)亦能轻松满足其课程设计、毕业设计使用等。1.2系统概述1.2.1 8051单元1)微处理器:80C31,它的P1口、P3口皆对用户开放,供用户使用。2)时钟频率:6.0MHz3)存储器:程序存储器与数据存储器统一编址,最多可达64k,板载ROM(监控程序27C256)12k;RAM(程序存储器62256)8k供用户下载实验程序,可扩展达32k;RAM(数据存储器62256)8k供用户程序使用,可扩展达32k。(RAM程序存储器与数据存储器不可同时扩至32k,具体与厂家联系)。(见图1-1:存储器组织图)。在程序存储器中,0000H-2FFFH为监控程序存储器区,用户不可用,4000H-5FFFH为用户实验程序存储区,供用户下载实验程序。数据存储器的范围为:6000H-7FFFH,供用户实验程序使用。注意:因用户实验程序区位于4000H-5FFFH,用户在编写实验程序时要注意,程序的起始地址应为4000H,所用的中断入口地址均应在原地址的基础上,加上4000H。例如:外部中断0的原中断入口为0003H,用户实验程序的外部中断0的中断程序入口为4003H,其他类推,见表1-1。4)可提供的对8051的基本实验为了提高微机教学实验质量,提高实验效率,减轻主讲教师和实验教师的劳动强度,在该系统的实验板上,除微处理器外、程序存储器、数据存储器外,还增加了8255并行接口、8250串行控制器、8279键盘、显示控制器、8253可编程定时器、A/D、D/A转换、单脉冲、各种频率的脉冲发生器、输入、输出电路等模块,各部分电路既相互独立、又可灵活组合。可提供的实验如下:(1)8051P1口输入、输出实验(2)简单的扩展输入、输出实验(3)8051定时器/计数器实验(4)8051外中断实验(5)8279键盘扫描、LED显示实验(6)8255并行口输入、输出实验(7)8253定时器/计数器实验(8)8259中断实验(9)串行口通讯实验(10)ADC0809 A/D转换实验(11)DAC0832 D/A转换实验(12)存储器扩展实验(13)交通灯控制实验 图1:存储器系统组织图中断名称8051原中断程序入口用户实验程序响应程序入口外中断00003H4003H定时器0中断000BH400BH外中断10013H4013H定时器1中断001BH401BH串行口中断0023H4023H表1-1 用户中断程序入口表5)资源分配 EL8051CPU有用于系统扩展和更改配置的跳线、插孔,详述如下: J2为8051仿真头插座,它可以通过仿真电缆与目标相连,用于仿真调试。 J3为8051全部引脚的引出孔,可用来作面包板实验或与其他实验相连接。ZP15为8051通过地址锁存器锁存后的低八位地址。ZP16为8051的高八位地址。 CLOCK跳线用来设置仿真时用用户时钟还是用CPU板上的时钟,跳为SYSTEM时钟,使用系统时钟,跳为USER时使用用户时钟。8051的实验系统将PSEN与RD信号统一使用,系统内所有存储器都统一编址,既可以作数据存储器,也可作程序存储器,所有地址泽码均采用全地址译码。用户可用的地址范围见表1-2,注意,用户的地址不能与系统相冲突,否则将导致错误。 地址范围 输出孔/映射器件性质(系统/用户)0-3FFFH 监控程序存储器系统 *4000H-5FFFH用户程序存储器系统 *6000H-7FFFH 数据存储器 系统 *CFE0H-CFE7 PC机串行通讯芯片8250系统 *CFE8H-CFEFH 显示、键盘芯片8279 系统CFA0H-CFA7HCS0 芯片可用的通用片选CFA8H-CFAFH CS1芯片可用的通用片选CFB0H-CFB7HCS2芯片可用的通用片选CFB8H-CFBFHCS3 芯片可用的通用片选CFC0H-CFC7HCS4芯片可用的通用片选CFC8H-CFCFHCS5 芯片可用的通用片选CFD0H-CFD7HCS6芯片可用的通用片选CFD8H-FFFFHCS7芯片可用的通用片选表1-2 CPLD地址分配表注:系统地址中,除带“*”用户既不可用,也不可改外,其他系统地址用户可用但不可改。 1.2.2 8086单元1)微处理器:80862)时钟频率:6MHz3)存储器6264 系统RAM,地址范围 03FFFH,奇地址有效62256 系统RAM,地址范围03FFFH,偶地址有效2764 系统ROM,地址范围 FFFFFFC000H,奇地址有效27256 系统ROM,地址范围 FFFFFFC000H,偶地址有效4)可提供的对8086的基本实验(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 片选信号,地址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电源插座中引入。该电源具有短路保护。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一片,其地址已被系统固定为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-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)、系统总线、系统监控正常。若异常则按以下步骤进行排除:1、 按复位按键使系统复位,测试各芯片是否复位;2、 断电检查单片机及上述单元电路芯片是否正确且接触良好;3、 上电用示波器观察芯片片选及数据总线信号是否正常;4、 若复位后RX、TX发光二极管闪烁,则显示单元有问题,检查8279时钟信号,断电调换显示单元芯片;若复位后RX、TX发光二极管不闪烁,检查8250晶振信号,断电调换通讯单元芯片。22单元电路原理及测试22.1 单脉冲发生器电路(1)电路原理:该电路由一个按扭,1片74LS132组成,具有消颤功能,正反相脉冲,相应输出插孔P+、P-。原理图图1所示:图1 单脉冲发生器电路(2)电路测试:常态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只开关组成,每只开关有两个位置H和L,一个位置代表高电平,一个位置代表低电平。对应的插孔是:K1K8。开关量输出电路由8只LED组成,对应的插孔分别为LED1LED8,当对应的插孔接低电平时LED点亮。原理图如下:(2)电路测试开关量输入电路可通过万用表测其插座电压的方法测试,即开关的两种状态分别为低电平和高电平;开关量输出电路可通过在其插孔上接低电平的方法测试,当某插孔接低电平时相应二极管发光。图3 开关量输入输出电路2.4 简单I/O口扩展电路(1)电路原理输入缓冲电路由74LS244组成,输出锁存电路由上升沿锁存器74LS273组成。74LS244是一个扩展输入口,74LS273是一个扩展输出口,同时它们都是一个单向驱动器,以减轻总线的负担。74LS244的输入信号由插孔IN0IN7输入,插孔CS244是其选通信号,其它信号线已接好;74LS273的输出信号由插孔O0O7输出,插孔CS273是其选通信号,其它信号线已接好。其原理图(附图1)所示。(2)电路测试当74LS244的1,19脚接低电平时,IN0IN7与DD0DD7对应引脚电平一致;当74LS273的11脚接低电平再松开(给11脚一上升沿)后,O0O7与DD0DD7对应引脚电平一致。或用简单I/O口扩展实验测试:程序执行完读开关量后,74LS244的IN0IN7与DD0DD7对应引脚电平一致;程序执行完输出开关量后,74LS273 的O0O7与DD0DD7对应引脚电平一致。2.5 8279键盘、显示电路(1)电路原理8279显示电路由6位共阴极数码管显示,74LS244为段驱动器,75451为位驱动器,可编程键盘电路由片74LS138组成,8279的数据口,地址,读写线,复位,时钟,片选都已经接好,键盘行列扫描线均有插孔输出。键盘行扫描线插孔号为KA0KA3;列扫描线插孔号为RL0RL7;8279还引出CTRL、SHIFT插孔。六位数码管的位选、段选信号可以从8279引入,也可以有外部的其他电路引入。(2)电路测试见整机测试六位数码管电路的测试:除去电路板上数码管右侧的跳线,系统加点,用导线将插孔LED1接低电平(GND),再将插孔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)电路测试:见整机测试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是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实验,程序全速运行,观察片选、读、写、总线信号是否正常。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)电路原理CS8259是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提供地址信号。ABUS表示地址总线,DBUS是数据总线。D0D7是数据总线低八位,D8D15是数据总线高八位。其他控制总线如:MEMR,MEMW和片选线均已接好。在8086系统中,存储器分成两部分,高位地址部分(奇字节)和低位地址部分(偶字节)。当A0=1时,片选信号选中奇字节;当A0=0时,选中偶字节。原理图(附图5)所示。:(2)电路测试监控正常则2764、27256、74LS373没问题,用户程序可正常运行则6264、62256没问题。检查复位信号,通过存储器读写实验,程序全速运行,观察片选、读、写、总线信号是否正常。2.12 六位LED数码管驱动显示电路(1)电路原理该电路由六位LED数码管、位驱动电路、端输入电路组成,数码管采用动态扫描的方式显示。电路中用75251作数码管的位驱动。跳线开关用于选择数码管的显示源,可外接,也可选择8279芯片。(2)电路测试:去除短路线,系统加电,将插孔LED-1与GND短接,用电源的VCC端依次碰触插孔LED-A-LED-DP,观察最左边的数码管的显示段依次发亮,则可断定此位数码管显示正常,否则检查芯片75451、及连线。依次检查其他各位数码管电路。 第三章 微型计算机汇编语言及汇编程序 汇编语言和机器语言相比,使用汇编语言来编写程序的突出优点就是可以使用符号;具体地说,就是可以用助记符来表示指令的操作码和操作数,可以用标号和符号来代替地址、常量和变量。助记符一般都是表示一个操作的英文字母的缩写,很便于识别和记忆。不过,用汇编语言编写的程序不能由机器直接执行,而必须翻译成由机器代码组成的目标程序,这个翻译过程称为汇编。在微型机中,当前绝大多数情况下,汇编过程是通过软件自动完成的。用来把汇编语言编写的程序自动翻译成目的程序的软件叫汇编程序。汇编过程的含义如图3-1所示。 图3-1汇编程序的执行过程 用汇编语言编写的程序叫源程序。前面讲的指令系统中的每条指令都是构成源程序的基本语句。汇编语言的指令和机器语言的指令之间有一对应的关系。 所以,汇编语言是和机器密切相关的,是面向机器的语言,CPU不同的机器有不同的汇编语言。采用汇编语言进行程序设计时,我们可以充分利用机器的硬件功能和结构特点,从而可有效地加快程序的执行速度,减小目标程序所占用的存储空间。因此,与高级语言相比,汇编语言为我们提供了直接控制目标代码的手段,而且可以对输入输出端口进行控制,实时性能好,执行速度快和节省存储空间等明显优点。所以,汇编语言大量被用于编写计算机系统程序、实时通信程序、实时控制程序等。 8086和 80286,80386,80486系统的汇编程序完全相同,简称作ASM-86。在此基础上进一步扩展其功能,成为当前广泛使用的8086宏汇编程序,简称MASM-86。 31 宏汇编语言的基本语法311伪指令语句格式它与指令语句不同,伪指令语句(又叫命令语句)中的伪指令本身不产生对应的机器目标代码。它仅仅是告诉汇编程序,对后面的指令语句和伪指令语句的操作数应该如何产生机器目标代码。每一条伪指令语句共分4个字段,它的指令格式如图3-2所示。图3-2 伪指令语句格式 1标号名字段 这是一个任选字段。标号名后面不能用冒号“:”,这是它与指令语句的突出区别。不同的伪指令,标号名可以是常量名、变量名、过程名、结构名、记录名等。它们可以作为指令语句和伪指令语句的操作数,这时,标号名就表示一个常量或存储器地址。 2伪指令字段 这是伪指令语句不可省略的主要成分。伪指令种类很多,如定义数据伪指令DB,DW,DD;段定义伪指令SEGMENT;定义过程伪指令PROC;。它们是伪指令语句要求汇编程序完成的具体操作命令。 3操作数字段 本字段是否需要,需要几个,需要什么样的操作数等都由伪指令字段中伪指令来确定。操作数可以是一个常数(二进制、十进制、十六进制等)、字符串、常量名。变量名、标号、一些专用的符号(如BYTE,FAR,PARA等)。 4注释字段 这是一个任选字段,它必须以分号为开始,它的作用与指令语句的注释字段相同。312常数、变量和标号 常数、变量和标号是汇编语言能识别的数据项,它是指令和伪指令语句中操作数的基本组成部分。一个数据项包含有它的数值和属性两部分,这两部分对一条语句汇编成机器目标代码都有直接关系。 1常数 常数是没有任何属性的纯数值。在汇编期间,它的值已能完全确定,且在程序运行中,它也不会发生变化。它可以有以下几种类型: (1)二进制数:以字母B结尾的,由 0和 1组成的数字序列,如 01011010B。 (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部分组成,这是计算机中的浮点表示法。实数一般用十进制数形式给出,实数的格式如下: 土整数部分小数部分E士指数部分其中,整数和小数部分形成这个数的值,称作尾数,它可以是带符号的数。指数部分由指数标识符E开始,它表示了值的大小,如 5.213E-4。(6)字符串常数:用引号括起来的一个或多个字符。这些字符以ASC码形式存储在内存中。如“ AB”,在内存中就是41H,42H。在程序中,常数主要出现在:(1)指令语句中源操作数中作立即数,它应与目的操作数的位数相一致,可以是8位或 16位,例如:MOV AX,0A5F1HADC DL,12H(2)在指令语句的基址加变址的寻址方式中作位移量,例如:MOV BX,SI32H(3)在数据定义伪指令中,例如:DB 12H ;定义一个字节数据 DB 1234H ;定义一个字数据DD 12345678H ;定义一个双字数据DB A B C D ;定义4个字节的字符串数据 2变量 变量是代表存放在某些存储单元的数据,这些数据在程序运行期间随时可以修改。为了便于对变量的访问,它常常以变量名的形式出现在程序中,它可以认为是存放数据存储单元的符号地址。 (1)变量的定义与预置:定义变量就是给变量分配存储单元,且对这个存储单元赋于一个符号名变量名,同时将这些存储单元预置初值。 定义变量是用数据定义伪指令DB,DW,DD等。例如: VARDATA SEGMENT DATA1 DB 12H 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。上述段和偏移量两个属性就构成了变量的逻辑地址。 类型属性(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的内容为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码按地址递增的排列顺序依次存放。例如: 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表达式: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标号 标号是一条指令目标代码的符号地址,它常作为转移指令(含子程序调用指令)的操作数。例如: LOP1: LOOP: LOP1 JNE NEXT NEXT: 与变量类似,每个标号亦具有3个属性: (l)段属性(SEG):表示这条指令目标代码在哪个逻辑段中。 (2)偏移量属性(OFFSET):表示这条指令目标代码的首字节在段内离段起始点的字节数。 同样,上述两个属性构成了这条指令目标代码首字节的逻辑地址。 (3)距离属性:表示本标号可作为段内或段间的转移特性。距离属性分为两种:NEAR(近):本标号只能被标号所在段的转移和调用指令所访问(即段内转移); FAR(远):本标号可被其他段(不是标号所在段)的转移和调用指令访问(即投间转移)。313表达式与运算符 表达式由操作数和运算符组成,在汇编时一个表达式得到一个值。下面结合运算符讲述表达式。 用一个运算符可以对一个操作数或几个操作数进行运算,这就构成了一个表达式,从而得到一个新的值。ASM-86中分6类运算符,包括算术运算符、逻辑运算符、关系运算符、分析运算符、组合运算符和分离运算符,它们在汇编时完成相应运算。 1算术运算符 十,一,*,是加减乘除运算符。 MOD是除法取余运算符。例如,32 MOD 5=2。 SHL是左移操作符。例如,21H SHL 2=84H。 SHR是右移操作符。2逻辑运算符AND是逻辑“与”操作符。例如,24H AND OFH=04H。 OR是逻辑“或”操作符。例如,24H 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分析运算符 (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()定义的。 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 符号名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 HIGH,LOW4 *,MOD(求余数),SHL,SHR 5 ,一6 EQ,NE,LT,LE,GT,GE 7 NOT8 AND低级 9 OR,XOR10 SHORT 32 伪指令 伪指令没有对应的机器指令,它不是由86系列CPU来执行,而是由MASM-86识别,并完成相应的功能。它在很大程度上规定了MASM-86的性能,因此也可称之为汇编命令。MAS-86中允许使用的伪指令相当丰富,必须搞清楚这些伪指令的功能及其用法,才能编制出高质量的汇编语言源程序。MASM-86中使用的伪指令可分成14类,下面逐一进行介绍。 1符号定义伪指令(赋值语句) (1)名字 EQU(表达式 )(2)名字=(表达式)该语句把表达式的值赋给符号名,在同一程序中,用EQU语句赋值的符号名不能重新赋值,但用“一”号赋值的符号名可以被重新赋值。“()”号表示此项不能默认,仅符号不需要输入。 2内存数据定义伪指令(1)字节定义伪指令 名字 DB 表达式或数据项表 表达式值或项表中的每一项是一个字节数,它们从符号名地址开始按字节连续存直到表中数据项结束(地址递增方向)。方括号表示该项可以默认。 (2)字定义伪指令 名字 DW 表达式或数据项表 除表达式值或项表中的每一项是两个字节数之外,其它与DB伪指令相同。 (3)4字节定义伪指令 名字 DD 表达式或数据项表 表达式值或项表的每一项是4个字节数,该语句可以定义有小数点的十进制数或用科学表示法表示的数据,此时在汇编时被译成4字节浮点数,尾数在低地址一端,阶码在高地址一端。浮点数格式见3.1节中所述。 例如: N1 DD 25ABH, 0A002677H N2 DD 2.5, 3.2E+2 (4)8字节定义伪指令 名字 DQ 表达式或数据项表 表达式值或数据项表的每一项是8字节数,各项从小地址一端连续存放,允许浮点数形式,与DD伪指令相同。高4个字节填0。 (5) 10字节定义伪指令 名字 DT 表达式值或数据项表的每一项是 10字节数,允许浮点数形式,与 DQ伪指令相同;若项表中的数据项是十进制整数书写的,汇编程序按组合的BCD码格式存放,最低字节在高地址一端存放,数据的最高字节的最高位是符号位,“ 0”表示正,“ 1”表示负。 表达式或数据项表多于一项时,项与项之间用逗号“,”或空格分隔,表达式或数据项重复书写时,可用重复格式简写。例如: DI DB 12H, 12H, 12H DI DB 3 DUP(12H) 在指令中引用上述定义的符号名时,必须考虑符号名的类型,否则会出现错误提示。 例如: MOV AX,DI;DI类型错误 MOV AX,WORD PTR DI;正确 3段定义伪指令 存储器在逻辑上是分段的,各段的定义由伪指令实现。格式: SEGMENT 定位方式连接方式类别名 ENDS段定义伪指令为程序的汇编和连接说明可段名、分段的各种属性以及分段的开始和结束。段名是自定义符,开始的段名与结束的段名必须相同。段的长度不超过64KB。SEGMENT后面的参数是可选项。(1)定位方式(定位类型):定位方式指定段的起站地址边界,方式有4种。 PAGE指定起站地址的低 8位是0,即其值能被256整除(称为负边界) PARA指定起始地址的低 4位是0,即其值能被16整除(称为段边界)。这是系统隐含定位方式。 WORD指定起始地址的最低位是0,即其值能被2整除(称为字边界)。 BYTE一-指定起始地址是任意值。以上4种边界如下所示: XXXX XXXX XXXX 0000 0000 PRGE XXXX XXXX XXXX XXXX 0000 PARA XXXX XXXX XXXX XXXX XXX0 WORDXXXX XXXX XXXX XXXX XXXX BYTE (2)连接方式(组合类型):连接方式告诉连接程序本段与其他段可按某种方式连接,它有6种选择。 PUBLIC告诉连接程序把本段与其他同名同类别的段连接起来,公用一个段的起点地址,形成一个物理段。 STACK表示本段是堆栈段,连接方式同 PUBLIC,连接后的段起始地址在 SS寄存器中。连接程序要求源程序至少要有一个堆栈段,否则提示错误,此时,系统取约定堆栈段值。 空缺(NONE)表示本段不与任何段连接,这是系统隐含连接方式。 COMMON表示本段与同名同类别的段共用同一段起始地址,即同名同类段相重叠,段的长度是最长段的长度。 MEMORY表示本段在连接时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初二生物会考试题及答案
- 2025年新闻评论写作试题及答案
- 安康市中石油2025秋招笔试行测50题速记
- 国家能源锦州市2025秋招采矿工程类面试追问及参考回答
- 临汾市中石化2025秋招笔试模拟题含答案法律与合规岗
- 合肥市中石油2025秋招笔试提升练习题含答案
- 嘉兴市中石化2025秋招面试半结构化模拟题及答案电气仪控技术岗
- 衡水市中石化2025秋招面试半结构化模拟题及答案安全环保与HSE岗
- 金华市中石化2025秋招面试半结构化模拟题及答案安全环保与HSE岗
- 中国广电钦州市2025秋招行业解决方案岗位专业追问清单及参考回答
- 医学检验技术专业《有机化学》课程标准
- JT-T-1094-2016营运客车安全技术条件
- MOOC 理性思维实训-华南师范大学 中国大学慕课答案
- 《陆上风电场工程设计概算编制规定及费用标准》(NB-T 31011-2019)
- (高清版)TDT 1001-2012 地籍调查规程
- 内部审计管理系统建设需求
- 燃气输配课程设计说明书
- 如何进行模拟堂教学
- 监控扩容施工方案
- 轴的计算与校核、传动轴计算(无密码可修改)
- 《复旦大学介绍》
评论
0/150
提交评论