首页 监控程序与汇编语言程序设计实验

监控程序与汇编语言程序设计实验

举报
开通vip

监控程序与汇编语言程序设计实验实验一:监控程序与汇编语言程序设计实验实验目的(1)了解教学计算机的指令格式、指令编码、选择的寻址方式和具体功能。(2)了解汇编语言的语句与机器语言的指令之间的对应关系,了解伪指令在汇编过程中的作用,学习用汇编语言设计程序的过程和方法。(3)学习教学机监控程序的功能、监控命令的使用方法,体会软件系统在计算机组成中的地位和作用。实验内容1.学习联机使用TEC-XP教学实验系统和仿真终端软件PCEC.2.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;3.使用A命令写一小段汇编程序...

监控程序与汇编语言程序设计实验
实验一:监控程序与汇编语言程序设计实验实验目的(1)了解教学计算机的指令格式、指令编码、选择的寻址方式和具体功能。(2)了解汇编语言的语句与机器语言的指令之间的对应关系,了解伪指令在汇编过程中的作用,学习用汇编语言设计程序的过程和方法。(3)学习教学机监控程序的功能、监控命令的使用方法,体会软件系统在计算机组成中的地位和作用。实验内容1.学习联机使用TEC-XP教学实验系统和仿真终端软件PCEC.2.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;3.使用A命令写一小段汇编程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况;TEC-XP实验系统由3个功能子系统组成:1.利用中小规模电路设计实现的16位字长的教学计算机系统;2.用中小规模电路设计实现的8位字长的教学计算机系统;3.用FPGA门阵列器件设计实现的单芯片CPU组成的教学计算机系统。实验系统组成框图教学计算机的硬件组成框图教学计算机的硬件组成线路PLD器件实验系统的数字电路和逻辑设计的实验主要通过对PLD器件GAL20V8或CPLD器件MACH的编程来实现。这2类芯片输入引脚和8或16个手拨开关相连接,提供实验线路的输入信号,输出引脚和发光二极管指示灯相连接,显示实验线路的运行结果。GAL20V8器件既可实现组合逻辑的逻辑功能,也可以实现时序逻辑的逻辑功能。包括输入缓冲门、输出反馈缓冲门、与门阵列、输出逻辑宏单元等PLD器件教学计算机的控制器主要线路在MACH芯片内部实现。LATTICEMACH器件的性能特点:第一个使用0.25微米技术制造的CPLD;高性能、高密度、电可擦除CMOSCPLD;集成度1,250至20,000个PLD门,32至512个宏单元;具有可编程低功耗操作模式,可节省功耗;可提供高速度,可提供-5ns、-5.5ns、-6ns、-6.5ns、-7ns、-10ns、-12ns;教学实验系统的指令格式在字长为16位的教学计算机系统中,指令是16位的倍数,支持单字指令和双字指令,指令划分为基本指令和扩展指令两大类。指令格式:8位4位4位指令操作码由8位组成(IR15-IR8),各位控制作用不同:1.IR15、IR14区分指令组:0X表示A组,10表示B组,11表示C、D组;IR11区分C、D组:IRH11=0为C组,IRH11=1为D组。2.IR13区分基本和扩展指令:IRH13=0基本指令,IRH13=1扩展指令;3.IR12简化控制器实现,暂定该位的值均为0;4.IR11-IR8区分同一指令组中的不同指令。操作码DRSRIO端口地址/相对偏移量教学实验系统的指令系统依照指令的执行步骤,教学计算机的指令划为4组。A组:通用寄存器之间的数据运算或传送,或其它几项特殊的操作,在取指之后可一步完成。基本指令ADD、SUB、AND、OR、XOR、CMP、TEST、MVRR、DEC、INC、SHL、SHR、JR、JRC、JRNC、JRZ、JRNZ扩展指令ADC、SBB、RCL、RCR、ASR、NOT、CLC、STC、EI、CI、JRS、JRNS、JMPRB组:完成的是一次内存或I/O读、写操作,在取指之后可两步完成,第一步把要使用的地址传送到地址寄存器AR中,第二步执行内存或I/O读、写操作。基本指令JMPA、LDRR、STRR、PUSH、POP、PSHF、POPF、MVRD、IN、OUT、RET教学实验系统的指令系统C组:在取指之后可三步完成,其中CALR指令在用两步完成一次写内存之后,第三步执行寄存器之间的数据传送;而其它指令在第一步置地址寄存器AR,第二步读内存并传送到地址寄存器AR,第三步执行另外一次读、写内存的操作。扩展指令CALR、LDRA、STRA、LDRX、STRXD组:完成的是两次读、写内存操作,在取指之后可四步完成。基本指令CALA扩展指令IRET教学实验系统的指令系统ADDDR,SR;DR←DR+SRSUBDR,SR;DR←DR-SRANDDR,SR;DR←DRandSRORDR,SR;DR←DRorSRXORDR,SR;DR←DRxorSRCMPDR,SR;DR-SRTESTDR,SR;DRandSRMVRRDR,SR;DR←SRDECDR;DR←DR-1INCDR;DR←DR+1SHLDR;DR逻辑左移,最低位补0,最高位移入CSHRDR;DR逻辑右移,最高位补0,最低位移入CJRCADR;C=1时,跳转到ADRJRNCADR;C=0时,跳转到ADRJRZADR;Z=1时,跳转到ADRDECDR;DR教学实验系统的指令系统JRNZADR;Z=0时,跳转到ADRJMPAADR;无条件跳转到地址ADRLDRRDR,[SR];DR←[SR]STRR[DR],SR;[DR]←SRPUSHSR;SR入栈POPDR;弹出栈顶数据送DRPSHF;状态标志(C、Z、V、S、P1、P0)入栈POPF;弹出栈顶数据送状态标志寄存器MVRDDR,DATA;DR←DATAINI/OPORT;R0←[I/OPORT],从外设I/0PORT端口读入数据到R0OUTI/OPORT;[I/OPORT]←R0,将R0中的数据写入外设I/0PORT端口RET;子程序返回CALAADR;调用首地址在ADR的子程序汇编语言一个计算机系统的汇编语言是与硬件密切相关的。每个基本汇编语句与计算机的一条机器指令相对应,用户使用汇编语言设计程序,设计出的程序经过汇编器的系统程序“翻译”成机器指令二进制代码之后,才能在计算机上加以执行。汇编语言(AssemblyLanguage)是面向机器的程序设计语言。用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言 原文 少年中国说原文俱舍论原文大医精诚原文注音大学原文和译文对照归藏易原文 件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。教学计算机的监控程序教学机监控程序是用教学机的汇编语言实现的,运行在教学机硬件系统之上功能是支持计算机终端接入教学机系统,执行输入/输出操作,运行教学机的有关程序,提供教学机汇编语言的可用子程序。被固化在0000h-0A2F共2K多字的主存ROM区。教学机被正常设置并启动后,首先从内存0地址开始启动监控程序,使监控程序进入运行状态,此后便可以从键盘打入监控程序的命令并使其执行。监控程序提供类似PC机DOS系统下的Debug功能,支持A、U、G、P、T、R、D和E共8个监控命令。教学计算机的监控程序监控命令的格式为:单字母命令名后跟回车,或命令名后跟一个地址参数,或寄存器名参数。当命令名后可以跟地址参数但被省略时,给出命令名后直接回车,监控程序会从内存指定单元取一个默认的地址参数值,通常是在系统初始化时设置的,或者是该命令前一次运行后所生成的一个地址。从教学机终端向教学机送入地址、指令、数值时,均用不多于4位的16进制数字输入与显示,不能用字符h加以标志。命令名与它的参数之间也可以有一个空格字符,这个空格字符可有可无,用户按自己的日常习惯随意处理。教学计算机的监控程序监控程序说明监控程序是最简单的操作系统的雏形,被保存在ROM存储区。运行过程中需使用执行读、写操作的工作区,这个工作区必须被分配在存储器的RAM区域。教学机的RAM地址范围是2000h-27FFh,工作区安排在2600h-27FFh,因此用户可用RAM范围2000h-25FFh,RAM高单元是系统保留区,用户不能破环它。RAM存储区中的系统保留区保存A、U、D、E这4个命令的默认地址参数,系统启动时,赋值为2000h,即RAM存储区的起始地址。在使用这几个命令的过程中,系统会随时按照运行情况改变它们的值,保证不带参数的连续的同一个命令之间正确的输出信息的接续关系。汇编命令举例1.单条汇编命令A格式:A[adr]adr表示A命令的地址参数,[]表示此处adr为任选项,可有可无,无此参数时,系统将取默认值。该规则亦适用于下述对各命令的说明。功能:完成单条指令汇编操作,把产生出来的指令代码放入对应的内存单元中。命令名后的地址将是存放头一条汇编语句的指令码的内存单元地址。每条语句汇编完成之后,系统将相应修改地址值,以便正确处理下一条汇编语句。在应该输入汇编语句时,不给出汇编语句而直接回车,则结束A命令的运行过程。若汇编中发现语法错误,用^指明出错位置后请求重新输入正确的语句。汇编命令举例2.反汇编命令U格式:U[adr]功能:每次从指定的(或默认的)地址反汇编15条指令,并将结果显示在终端屏幕上。反汇编完成之后,已将该命令的默认地址修改好。接下来再键入不带参数的U命令,保证接着从上一次反汇编过的最后一条语句之后继续反汇编。注意,教学机不保存用A命令输入的汇编语句的源码,内存中保留的是经过汇编后得到的机器码指令,在需要检查输入的汇编语言程序时,就需要通过U命令对保存在内存中的指令码程序进行反汇编,重新得到汇编语言程序并显示在显示器屏幕上。在一项操作过程中,第一次运行的U命令需要给出地址参数,接下来的操作,只需要给出U命令名即可,不必给出地址参数,以保证连续的命令之间正确的衔接关系。汇编命令举例3.执行用户程序命令G格式;G[adr]功能:从指定的(或默认的)地址运行一个用户程序。为了使程序执行后能正确地返回监控程序,要求每个程序的最后一条指令一定为RET指令,以便通过该指令从堆栈中取得监控程序为运行用户程序而产生并保存的一个断点地址。每次执行后均显示所有通用寄存器和状态寄存器的内容,并反汇编出下一条将要执行的指令。汇编命令举例4、5.单指令执行程序命令T和P格式:P[adr]   T[adr]功能:从指定地址(或当前地址)开始单条指令方式执行用户程序。每执行一次T或P命令将只执行一条指令。T和P命令的区别是,T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成,避免反复地以单指令方式运行已经 证明 住所证明下载场所使用证明下载诊断证明下载住所证明下载爱问住所证明下载爱问 是正确的子程序的每一个语句。每次执行后均显示所有通用寄存器和状态寄存器的内容,并反汇编出下一条将要执行的指令。在一项操作过程中,第一次运行的T或P命令是要给出地址参数,接下来的操作,只需要给出T或P命令名即可,不必给出地址参数,以保证连续的命令之间正确的衔接关系。汇编命令举例6.显示/修改寄存器内容的命令R格式:R[reg],reg为一个寄存器名(R0-R15),是任选参数。功能:当R命令不带寄存器名参数时,显示全部寄存器和状态寄存器的值,并反汇编当前PC所指向的一条指令。当R命令带有寄存器名参数时,是要实现修改一个寄存器内容的操作,首先显示出该寄存器的现有值,若要修改这个值则打入新值并回车,不输入新的值就直接回车,该寄存器内容将保持不变。汇编命令举例7.显示存储器内容命令D格式:D[adr]功能:从指定(或默认)地址开始显示内存120个存储字的内容。显示的格式:最左一列4位的16进制数字,是本行中第一个字的内存地址;接下来的8列是4位的16进制的8个连续内存字的内容;最右一列是每个字节所对应的ASCII字符。当其值不为可显示字符的ASCII码值时,用一个“.”字符标记。D命令执行过程中,可以用键盘上的ESC终止其显示过程。打了其他键将会暂停显示过程,再一次敲击任一键则继续显示尚未显示完的剩余内容。汇编命令举例8.修改存储器内容命令E格式:E[adr]功能:从指定(或默认)地址逐字显示每个内存字的内容,并等待用户打入一个新的数值存回原内存单元。若用户未打入新值就打了空格键,则该内存单元内容保持不变。若在打入新值后跟空格键,则新值将被写入原内存单元。空格键用于连续修改一片内存区的内容,故接下来显示下一个内存单元的内容并等待修改。打回车键,则会结束E命令的执行过程,若回车前打入一个新值,相应内存单元的内容也将被修改。实验具体步骤1.取出通讯线,将通讯线的9芯插头接在TEC-XP实验箱上的串口“COM1”上,另一端接到PC机的串口上;2.将TEC-XP实验系统左下方的五个黑色的控制机器运行状态的开关置于00110(连续、内存读指令、组合逻辑、联机、16位);3.在PC机上运行PCEC16.EXE文件,设置不用改动,直接回车即可。4.按一下“RESET”按键,再按一下“START”按键,主机上显示:TEC-2000CRTMONITORVersion1.0April2001ComputerArchitecturLab.,TsinghuaUniversityProgrammedbyHeJia>注意:连接电源线和通讯线前TEC-XP实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP实验系统上的芯片和PC机的串口造成损害监控软件操作步骤在PC机上运行PCEC16.EXE文件:系统默认选择串口1,按回车:图中是系统设定一些传输参数,不要改动直接回车。按一下“RESET”按钮放开后再按一下“START”按钮,出现界面如图所示:此时表明TEC-XP机器联机通讯正常。实验实例1.用R命令查看寄存器内容或修改寄存器的内容1)在命令行提示符状态下输入:R↙;显示寄存器的内容注:寄存器的内容在运行程序或执行命令后会发生变化。2)在命令行提示符状态下输入:RR0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格主机显示:寄存器原值:_在该提示符下输入新的值0036再用R命令显示寄存器内容,则R0的内容变为0036。实验实例2.用D命令显示存储器内容在命令行提示符状态下输入:D2000↙会显示从2000H地址开始的连续多个字的内容;连续使用不带参数的D命令,起始地址会自动加128(即80H)。3.用E命令修改存储器内容在命令行提示符状态下输入:E2000↙屏幕显示:2000地址单元的原有内容:光标闪烁等待输入输入0000依次改变地址单元2001-2005的内容为:11112222333344445555注意:用E命令连续修改内存单元的值时,每修改完一个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改;按回车键则退出E命令。用D命令显示这几个单元的内容D2000↙可以看到这六个地址单元内容变为000011112222333344445555。实验实例4.用A命令键入一段汇编源程序,向累加器送入数据和进行运算,执行程序并观察运行结果。1)在命令行提示符状态下输入:A2000↙;表示程序从2000H(内存RAM起始地址)开始屏幕将显示:2000:输入如下形式的程序:2000:MVRDR0,AAAA;MVRD与R0之间有且只有一个空格2002:MVRDR1,55552004:ADDR0,R12005:ANDR0,R12006:RET;程序的最后一个语句,必须为RET指令2007:(直接敲回车键,结束A命令输入程序的操作过程)若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。2)用U命令反汇编刚输入的程序在命令行提示符状态下输入:U2000↙在相应的地址会得到输入的指令及其操作码实验实例3)用G命令运行前面键入的源程序G2000↙程序运行结束后,可以看到程序的运行结果,屏幕显示各寄存器的值,其中R0和R1的值均为5555H,说明程序运行正确。4)用P或T命令,单步执行这段程序,观察指令执行结果在命令行提示符状态下输入:T2000↙寄存器R0被赋值为AAAAHT↙寄存器R1被赋值为5555HT↙做加法运算,和放在R0,R0的值变为FFFFHT↙做与运算,结果放在R0,R0的值变为5555H用P命令执行过程同上。注:T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成。T、P命令每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。汇编程序举例1:设计一个小程序,从键盘上接收一个字符并在屏幕上输出显示该字符。<1>在命令行提示符状态下输入:A2000↙;屏幕将显示:2000:输入如下形式的程序:2000:IN81;判键盘上是否按了一个键2001:SHRR0;串行口是否输入字符,无输入时R0=FF85,否则FF872002:SHRR02003:JRNC2000;未输入完则循环测试2004:IN80;接收该字符2005:OUT80↙;在屏幕上输出显示字符‘6’2006:RET↙;每个用户程序都必须用RET指令结束2007:↙;(按回车键即结束输入过程)注:在十六位机中,基本I/O接口的地址是确定的,数据口的地址为80,状态口的地址为81。<2>用“G”命令运行程序在命令行提示符状态下输入:G2000↙执行上面输入的程序光标闪烁等待输入,用户从键盘键入字符后,屏幕会显示该字符。该例建立了一个从主存2000H地址开始的小程序。在这种方式下,所有的数字都约定使用16进制数,故数字后不用跟字符H。汇编程序举例2:在终端屏幕上输出'0'到'9'十个数字符。<1>在命令行提示符状态下输入:A2020↙屏幕将显示:2020:从地址2020H开始输入下列程序:2020:MVRDR2,00OA;送入输出字符个数2022:MVRDR0,0030;“0”字符的ASCII码送寄存器R02024:OUT80;输出保存在R0低位字节的字符2025:DECR2;输出字符个数减12026:JRZ202E;判10个字符输出完否,已完,则转到程序结束处2027:PUSHR0;未完,保存R0的值到堆栈中2028:IN81;串行输出完成否,完成输出R0=FF81,否则FF802029:SHRR0;202A:JRNC2028;未完成,则循环等待202B:POPR0;已完成,准备输出下一字符并从堆栈恢复R0的值202C:INCR0;得到下一个要输出的字符202D:JR2024;转去输出字符202E:RET202F:↙<2>用“G”命令运行程序在命令行提示符状态下输入:G2020↙执行结果为:0123456789汇编程序举例3:从键盘上连续打入多个属于‘0’到‘9’的数字符并在屏幕上显示,遇到非数字字符结束输入过程。<1>在命令行提示符状态下输入:A2040↙屏幕将显示:2040:从地址2040H开始输入下列程序:(2040)MVRDR2,0030;用于判数字符的下界值MVRDR3,0039;用于判数字符的上界值(2044)IN81;判键盘上是否按了一个键,SHRR0;即串行口是否有了输入的字符SHRR0JRNC2044;没有输入则循环测试IN80;输入字符到R0MVRDR1,00FFANDR0,R1;清零R0的高位字节内容CMPR0,R2;判输入字符≥字符'0'否JRNC2053;为否,则转到程序结束处CMPR3,R0;判输入字符≤字符'9'否JRNC2053;为否,则转到程序结束处OUT80;输出刚输入的数字符JMPA2044;转去程序前边2044处等待输入下一个字符(2053)RET<2>在命令行提示符状态下输入:G2040↙光标闪烁等待键盘输入,若输入0-9十个数字符,则在屏幕上回显;若输入非数字符,则屏幕不再显示该字符,出现命令提示符,等待新命令。汇编程序举例4:计算1到10的累加和。<1>在命令行提示符状态下输入:A2060↙屏幕将显示:2060:从地址2060H开始输入下列程序:(2060)MVRDR1,0000;置累加和的初值为0MVRDR2,00OA;最大的加数MVRDR3,0000(2066)INCR3;得到下一个参加累加的数ADDR1,R3;累加计算CMPR3,R2;判是否累加完JRNZ2066;未完,开始下一轮累加RET<2>在命令行提示符状态下输入:G2060↙运行过后,可以用R命令观察累加器的内容。R1的内容为累加和。结果为:R1=0037R2=00OAR3=00OA思考题1.例2中若把IN81,SHRR0,JRNC2028三个语句换成4个MVRRR0,R0语句,该程序执行过程会出现什么现象?试分析并实际执行一次。2.写一段小程序,要求在终端屏幕上输出‘A’到‘Z’共26个英文字母。(提示:A-Zascii码对应16进制数为0041-005A)3.设计一个有读写内存和子程序调用指令的程序,功能是读出内存中的字符(A-F),将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域。(提示:小写字母ascii码对应16进制数为大写字母ascii码对应16进制数+20)4.设计一个程序在显示器屏幕上循环显示95个(不包括空格字符)可打印字符。5.设计一个有子程序调用指令和转移指令的程序,功能是从键盘输入字符并送到显示器屏幕显示,在子程序中可以完成变大写英文字母为小写字母并将其显示出来。(提示:小写字母ascii码是大写字母ascii码+20H)
本文档为【监控程序与汇编语言程序设计实验】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
旋律
几年的财务工作经验,现认财务主管一职!精通各种财务管理软件
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:
上传时间:2018-05-20
浏览量:23