ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:38.01KB ,
资源ID:8523962      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8523962.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言实验指导书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言实验指导书.docx

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

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

3、:-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,有两种格式:1)逐条指令追踪: -T=地址 该命令从指定地址起

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

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

6、存器名 例如打入:-R AX 系统将响应如下: AX FIF4 : 表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如: -R BX BX 0369 :059F 则BX内容由0369改为059F3)显示和修改标志位状态,命令格式为: -RF 系统将给出响应,如 OV DN EI NG ZR AC PE CY- 这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如 OV DN EI NG ZR AC PE CY-PONZDINV(8) 命名命令N,格式为:-N 文件名此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W

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

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

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

10、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 INPUT HEXADECIMAL(4DIGITS):$HEXBUF DB 5,0,5 DUP(0)DISP

11、DB 0AH,0DHBCDBUF DB 6 DUP(0),$DATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDSCOSEG SEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACK1HEXBCD: MOV AX,DATA MOV DS,AX;输入14位十六进制数 LEA DX,PROMPT ;显示提示信息 MOV AH,09H INT 21H LEA DX,HEXBUF ;输入数据 MOV AH,0AH INT 21H;ASCII码转换为16位二进制数并存入BX中 LEA SI,HEXBUF+2 ;取十六

12、进制数ASCII码首址 MOV BX,0 ;暂存二进制数的寄存器清零 MOV CH,HEXBUF+1 ;取输入数据个数HEX1: MOV AL,SI ;取一个十六进制数字符 CMP AL,9 JBE NUMB ;小于等于9是数字符SUB AL,07H ;是字母符 NUMB: AND AL,0FH MOV CL,4 SAL BX,CL OR BL,AL INC SI DEC CH JNE HEX1;确定十进制数的符号 MOV BCDBUF,+ TEST BX,8000H JNS PLUS ;是正数 MOV BCDBUF,- ;是负数 NEG BX ;求补后变为原码;将二进制数转换为非组合型BCD

13、码,从二进制;数高位起,进行15次加和乘 PLUS: MOV CH,0FH ; “加乘”运算的次数LOP0: SHL BX,1 ;最高位二进制数送CF CALL ADDIT ;先加1位二进制数 CALL MULTI ;再乘2 DEC CH JNE LOP0 SHL BX,1 ;加最低位二进制数 CALL ADDIT;把非组合型BCD码转换为ASCII码形式 LEA DI,BCDBUF+1 MOV CX,5LOP1: OR BYTE PTR DI,30H INC DI LOOP LOP1;显示结果 LEA DX,DISP MOV AH,09H INT 21H MOV AH,4CH ;程序结束 I

14、NT 21H;多字节BCD码加1位二进制数子程序ADDIT PROC LEA DI,BCDBUF+5 ;从低位开始 MOV CL,5 ;取字节数ADD1: MOV AL,DI ;取BCD码 ADC AL,0 ;加二进制数位(CF) AAA ;十进制数运算校正 MOV DI,AL ;存BCD码 DEC DI DEC CL JNE ADD1 RETADDIT ENDP;多字节BCD码乘2子程序MULTI PROC LEA DI,BCDBUF+5 ;从低位开始 MOV CL,5 CLCMUL1: MOV AL,DI ;取BCD码 ADC AL,AL ;乘2 AAA ;十进制数运算校正 MOV DI,

15、AL ;存BCD码 DEC DI DEC CL JNE MUL1 RETMULTI ENDPCOSEG ENDS END HEXBCD四实验要求:实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等五实验报告:1、程序说明。说明程序的功能、结构。2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3、写出源程序清单和执行结果。 实验三 分支程序与循环程序设计一 实验目的1、 掌握分支程序的结构。2、 掌握分支程序的设计与调试方法。3、 掌握循环程序设计与调试方法4、 掌握正确分配与使用寄存

16、器。二实验内容编程实现:分别统计下列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、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3、画出

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

18、对齐,由于两个字符串缓冲区的长度相同,只需要将两个字符串向缓冲区后面靠齐,再调用H号DOS功能调用即可达到显示的右对齐。三实验要求:实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。四参考程序:Title 字符串右对齐显示DATA SEGMENTNUM EQU 25PROMPT1 DB 0AH, 0DH, STRING:, $PROMPT2 DB 0AH, 0DH, RIGHT-ADJUSTING OF STRING:, OAH, 0DH, $STRING1 DB NUM, 0, NUM DUP( ), 0AH, 0DH, $STRING2 DB NUM, 0

19、, NUM DUP( ), 0AH, 0DH, $DATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDSCOSEG SEGMENT ASSUME CS:COSEG, DS:DATA, SS:STACK1,ES:DATASTART: MOV AX, DATA MOV DS, AX MOV ES, AX MOV CX, 2 LEA BX, STRING1LOP: LEA DX, PROMPT1 ;显示输入字符串提示信息 MOV AH, 09H INT 21H MOV DX, BX ;输入两个字符串 MOV AH, 0AH INT 21

20、H LEA BX, SRING2 LOOP LOP;字符串右对齐处理LEA BX, STRING1+2 CALL MOVE LEA BX, STRING2+2 CALL MOVE;输出右对齐字符串LEA DX, PROMPT2 MOV AH, 09H INT 21H LEA DX, STRING1+2 MOV AH, 09H INT 21H LEA DX, STRING2+2 MOV AH, 09H INT 21H MOV AH, 4CH INT 21H;字符串右对齐处理子程序 MOVE PROC XOR CH, CH MOV CL, -1BX ;字符串传送字节数 MOV SI, CX ADD

21、 SI, BX ;传送源串末址 DEC SI MOV DI, BX ADD DI, NUM-1 ;传送目的末址 STD REP MOVSB ;字符串传送 MOV CX, NUM SUB CL, -1BX ; 剩余字节数 MOV AL, REP STOSB ;剩余字节填空格RET MOVE ENDP COSEG ENDS END START五实验报告:程序说明。说明程序的功能、结构。调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。画出程序框图。写出源程序清单和执行结果。电 子 科 技 大 学实 验 报 告学生姓名: 学 号:一、实验室名称:二、实验项目名称:三、实验原理:四、实验目的:五、实验内容:六、实验器材(设备、元器件):七、实验步骤及操作:八、实验数据及结果分析:九、实验结论:十、总结及心得体会:十一、对本实验过程及方法、手段的改进建议:报告评分: 指导教师签字:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1