微机原理与接口技术指导书-电子科技大学_第1页
微机原理与接口技术指导书-电子科技大学_第2页
微机原理与接口技术指导书-电子科技大学_第3页
免费预览已结束,剩余18页可下载查看

下载本文档

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

文档简介

1、汇编语言实验指导书电子科技大学计算机学院二OO六年八月实验一汇编源程序的上机调试操作基础训练 .2实验二 数制、码制和子程序的编程与调试 .6实验三分支程序与循环程序设计 10实验四串操作指令及其应用程序的设计与调试运行 12附录实验报告 15 实验一 汇编源程序的上机调试操作基础训练一实验目的:1. 掌握 DEBUG 的基本命令及其功能2. 学习数据传送和算术运算指令的用法3熟悉在 PC 机上编辑、汇编、连接、调试和运行汇编语言程序的过程。 二实验内容:(一) DEBUGS令的使用DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇 编语言程序员提供了非常有效的调试手

2、段。1、DEBU(程序的启动在DOS!示符下,可键入命令:C>DEBUGd:path 文件名 参数 1 参数 2其中文件名是被调试文件的名称,它须是执行文件( EXE,两个参数是运行被调试 文件时所需要的命令参数,在 DEBU程序调入后,出现提示符“-”,此时,可键入所需 的DEBU命令。在启动DEBU(时,如果输入了文件名,则 DEBU(程序把指定文件装入内存。用户可 以通过DEBUG勺命令对指定文件进行修改、显示和执行。如果没有文件名,则是以当前 内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用 DEBUG 的命令进行修改、显示和执行。2、DEBUG勺主要命令(

3、1) 汇编命令A,格式为:-A 地址 该命令从指定地址开始允许输入汇编语句, 把它们汇编成机器代码相继 存放在从指定地址开始的存储器中。(2) 反汇编命令U,有两种格式:1) -U 地址该命令从指定地址开始,反汇编 32个字节,若地址省略,则从上一个 U命 令的最后一条指令的下一个单元开始显示 32个字节。2) -U 范围该命令对指定范围的内存单元进行反汇编,例如:-U 04BA: 0100 0108 或 -U 04BA 0100 L9此二命令是等效的。(3) 运行命令G,格式为:-G =地址1地址2地址3。其中地址1规定了运行起始地址,后面的若干地址均为断点地址。(4) 追踪命令T,有两种格

4、式:1) 逐条指令追踪:-T=地址该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态 值。2) 多条指令追踪:-T=地址值该命令从指定地址起执行n条命令后停下来,n由值确定。(5) 显示内存单元内容的命令D,格式为:-D地址或-D范围(6) 修改内存单元内容的命令E,它有两种格式:1) 用给定的内容代替指定范围的单元内容:-E地址内容表例如:-E 2000 : 0100 F3 “XY才 8D其中F3, “X” “Y “Z”和8D各占一个字节,用这五个字节代替原内存单元 2000: 0100到0104的内容,“X” “ Y' “Z”将分别按它们的ASCII码值代入。2) 逐个单

5、元相继地修改:-E地址例如:-E 100 :18E4: 0100 89.78此命令是将原100号单元的内容89改为78。78是程序员键入的。(7) 检查和修改寄存器内容的命令 R,它有三种方式:1)显示CPU内部所有寄存器内容和标志位状态;格式为:-RR命令显示中标志位状态的含义如下表所示:标志名置位复位溢出Oveflow (是/否)OVNV方向Direction(减量/增量)DNUP中断Interrupt (允许/屏蔽)EIDI符号Sign (负/正)NGPL零Zero (是/否)ZRNZ辅助进位Auxiliary Carry(是/否)ACNA奇偶Parity (偶/奇)PEPO进位Carr

6、y (是/否)CYNC2)显示和修改某个指定寄存器内容,格式为:-R寄存器名例如打入:-R AX系统将响应如下:AX FIF4表示AX当前内容为F仆4,此时若不对其作修改,可按 ENTERS,否则,打 入修改后内容,如:-R BXBX 0369:059F贝U BX内容由0369改为059F3)显示和修改标志位状态,命令格式为:-RF系统将给出响应,如OV DN EI NG ZR AC PE CY-这时若不作修改可按ENTERS,否则在“-”号之后键入修改值,键入顺序 任意。如OV DN EI NG ZR AC PE CY-PONZDINV(8)命名命令N,格式为:-N文件名此命令将文件名格式化

7、在 CS 5CH的文件控制块内,以便使用L或W命令把 文件装入内存进行调试或者存盘。(9)装入命令L,它有两种功能:1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为:-L地址驱动器扇区号扇区数2)装入指定文件,格式为:-L 地址此命令装入已在CS: 5CH中格式化的文件控制块所指定的文件。在用L命令前,BX和CX中应包含所读文件的字节数。(10)写命令 W有两种格式:1)把数据写入磁盘的指定扇区:-W地址驱动器扇区号扇区数2)把数据写入指定文件中:-W 地址此命令把指定内存区域中的数据写入由 CS 5CH处的FCB所规定的文件中 在用W命令前,BX和 CX中应包含要写入文件的字

8、节数。(11)退出DEBU命令Q,该命令格式为Q它退出DEBU程序,返回DOS但该命令本身并不把在内存中的文件存盘, 如需存盘,应在执行Q命令前先执行写命令W(二)程序的调试与运行编写程序计算以下表达式:Z=(5X+2Y-7)/2设X、Y的值放在字节变量 VARX VARY中,结果存放在字节单元 VARZ中。三实验要求:实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结 果的分析等。四调试步骤1 编辑源程序,建立一个以后缀为 ASM的文件.2. 汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。3. 连接目标程序,产生可执行程序。4.

9、用DEBUG程序调试可执行程序,记录数据段的内容。VARXVARYVARZ541052020实验二 数制、码制和子程序的编程与调试一实验目的 :1、熟练掌握编写汇编语言原程序的基本方法和基本框架。2、熟练使用 DEBUG 调试程序。3、掌握十六进制数与ASCII码之间,ASCII码与BCD码之间的转换。4、掌握用DOS功能调用,实现字符的输入和显示。5、掌握子程序的编程与调试方法。二实验内容:编程实现:从键盘输入 4位十六进制数(它对应的二进制数是补码表示的带符号数) , 把它们转换为带符号非组合型 BCD 码,并在屏幕上显示出来。三编程提示:1、从键盘输入 14 位十六进制数, 存放在以 H

10、EXBUF+2 为首址的 4个字节单元中。 其中 HEXBUF+1 单元中为输入的数据个数。2、将ASCII码表示的4位十六进制数转换为16位二进制数,并暂时存放在BX中;3、确定十进制数的符号,并把符号 (+或-)存放在 BCDBUF 单元中;4、对 BX 中的二进制数采用前述算法转换为十进制数(非组合型 BCD 码),转换 结果存放在以 BCDBUF+1 为首址的 5个字节单元中;5、把转换结果的 5 个非组合型 BCD 码形成相应的 ASCII 码6、显示结果。参考程序:TITLE CONVERT HEXADECIMAL TO BCDDATA SEGMENTPROMPT DB "

11、;INPUT HEXADECIMAL(4DIGITS):$'HEXBUF DB 5,0,5 DUP(0)DISPDB 0AH,0DHBCDBUF DB 6 DUP(0),'$'DATAENDSSTACK1 SEGMENT PARA STACKDW 20H DUP(0)STACK1 ENDSCOSEG SEGMENTASSUME CS:COSEG,DS:DA TA,SS:STACK1HEXBCD: MOV AX,DA TAMOV DS,AX;将二进制数转换为非组合型 PLUS: MOV CH,0FH LOP0: SHL BX,1 CALL CALLADDITMULTIBC

12、D 码,从二进制 ;数高位起 ,进行 15 次加和乘 ; 加“乘 ”运算的次数;最高位二进制数送 CF;先加 1 位二进制数; 再乘 2DECCH;输入 14 位十六进制数LEAMOVINTDX,PROMPTAH,09H21H;显示提示信息LEADX,HEXBUF;输入数据MOVAH,0AHINT21H;ASCII码转换为 16 位二进制数并存入 BX 中LEASI,HEXBUF+2;取十六进制数 ASCII 码首址MOVBX,0;暂存二进制数的寄存器清零MOVCH,HEXBUF+1;取输入数据个数HEX1:MOVAL,SI;取一个十六进制数字符CMPAL,'9'JBENUMB

13、;小于等于 9是'数字符SUBAL,07H;是字母符NUMB:ANDAL,0FHMOVCL,4SALBX,CLORBL,ALINCSIDECCHJNEHEX1;确定十进制数的符号MOVBCDBUF,'+'TESTBX,8000HJNSPLUS;是正数MOVBCDBUF,'-'是负数NEGBX;求补后变为原码;加最低位二进制数JNE LOP0SHL BX,1码形式CALL ADDIT;把非组合型 BCD 码转换为 ASCIILEA DI,BCDBUF+1MOV CX,5LOP1: OR BYTE PTR DI,30H INC DILOOP LOP1;显示结

14、果LEA DX,DISPMOV AH,09HINT 21HMOV AH,4CH ; 程序结束INT 21H;多字节 BCD 码加 1 位二进制数子程序ADDITPROCLEA DI,BCDBUF+5; 从低位开始MOV CL,5;取字节数ADD1:MOV AL,DI;取 BCD 码ADC AL,0; 加二进制数位 (CF)AAA;十进制数运算校正MOV DI,ALDEC DIDEC CLJNE ADD1 RET;存 BCD 码ADDITENDP多字节 BCD 码乘 2 子程序MULTIPROCLEA DI,BCDBUF+5MOV CL,5CLC;从低位开始MUL1:MOV AL,DI; 取 B

15、CD 码ADC AL,AL;乘 2AAA;十进制数运算校正MOV DI,ALDEC DIDEC CLJNE MUL1 RET;存 BCD 码MULTIENDPCOSEGENDSEND HEXBCD四实验要求:实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结 果的分析等五实验报告:1、程序说明。说明程序的功能、结构。2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析3、写出源程序清单和执行结果实验三分支程序与循环程序设计实验目的1、掌握分支程序的结构。2、掌握分支程序的设计与调试方法。3、掌握循环

16、程序设计与调试方法4、掌握正确分配与使用寄存器。二实验内容编程实现:分别统计下列20个数中大于5、小于零和大于零且小于等于 5的数据 个数,分别存入字节单元 RES1、RES2和RES3中。BUFF DB -1,20, 3, 30, -5, 15, 100, -54, 0, 4, 78, 99, -12, 32, 3, 23, -7, 24, 60,-51 三实验要求:实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结 果的分析等。四程序框图结束五实验报告:1、程序说明。说明程序的功能、结构。2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解 决的,

17、并对调试过程中的问题进行分析,对执行结果进行分析。3、画出程序框图。5、写出源程序清单和执行结果。实验四 串操作指令及其应用程序的设计与调试运行实验目的1熟悉串操作指令的基本格式和使用方法。2掌握常用的串操作程序的设计方法。3熟悉串操作程序的调试运行过程实验内容编制一程序,从键盘输入两个长度不同的字符串,设字符串长度小于2 5个字 符。要求在屏幕上以右边对齐的形式显示出来。编程要点:1 在数据段中设置两个存放提示信息的字符串,一个是提示用户输入,另一个是 指示显示信息位置;2在数据段中设置两个存放输入字符串的缓冲区;3 输入字符串采用OAH号DOS功能调用,字符串存入缓冲区时,第2个字节为 实

18、际输入字符串的长度,从第3个字节开始为字符串的 ASCII码。4为了实现显示的右对齐,由于两个字符串缓冲区的长度相同,只需要将两个字 符串向缓冲区后面靠齐,再调用0 9 H号DOS功能调用即可达到显示的右对齐。 三实验要求:实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结 果的分析等。四参考程序:Title 字符串右对齐显示PROMPT1DBOAH, ODH, STRING: ',$'PROMPT2DBOAH, ODH, RIGHT-ADJUSTING OF STRINGSTRING1DBNUM, O, NUM DUP( ), OAH, ODH,$

19、9;STRING2DBNUM, O, NUM DUP( ), OAH, ODH,$'DATAENDSSTACK1SEGMENT PARA STACKDATASEGMENTNUMEQU 25', OAH, ODH, $'DW 2OH DUP(O)STACK1COSEGENDSSEGMENTASSUME CS:COSEG, DS:DA TA, SS:STACK1,ES:DA TASTART:MOVAX, DATAMOVDS, AXMOVES, AXMOVCX, 2LEABX, STRING1LOP:LEA DX, PROMPT1MOVAH, 09HINT 21HMOVDX, BXMOVAH, 0AHINT21HLEABX, SRING2LOOPLOP;字符串右对齐处理LEA BX, STRING1+2CALL

温馨提示

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

评论

0/150

提交评论