汇编实验报告五.doc_第1页
汇编实验报告五.doc_第2页
汇编实验报告五.doc_第3页
汇编实验报告五.doc_第4页
汇编实验报告五.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成与汇编语言实验报告姓名学号计分专业班级实验日期实验名称实验五 顺序程序设计实验实验目的 掌握顺序程序设计方法。 熟悉数据传送及算术和逻辑运算指令的用法。 学会用debug输入、运行小程序,并检查运行情况的方法。 学会在PC机上建立、汇编、连接、调试和运行80X86汇编语言程序的过程。 实验内容1.调试程序1:将存储单元DAT中的两个压缩的BCD码拆成2个非压缩的BCD码(高位BCD码放在DAT+1单元,低位BCD码放在DAT+2单元)。源程序如下:DATA SEGMENT DAT DB 0A5H,2 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,DAT ;取被操作数 MOV BL,AL ;备份操作数 MOV CL,4 ;设置准备移动的位数 MOV BL,CL ;取操作数的高4位 MOV DAT+1,BL ;将高BCD数存入DAT+1 AND AL,0FH ;取操作数的低4位 MOV DAT+2,AL ;将低BCD数存入DAT+2 MOV AH,4CH INT 21HCODE ENDS END START 程序运行结果如下:2.调试程序2,源程序如下:该程序实现了特殊符号的输出功能3.调试程序3:下面程序完成将HEX为起始地址的两位十六进制(ASCII码)转换成八位二进制数存入BIN单元,请阅读程序,找出其中的错误之处,并上机调试运行该程序。DATA SEGMENT ORG 1000H BIN DB ? HEX DB 6B ORG 1030H DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ORG 1040H DB 0AH,0BH,0CH,0DH,0EH,0FHDATA ENDSCODE SEGMENTSTART: MOV AX, DATA MOV DS, AX MOV AL, HEX MOV BX, OFFSET BIN SUB AH, AH ADD BX, AX MOV DL, BX MOV DL, 4 MOV AL, HEX+1 MOV BX, OFFSET BIN XOR AH, AH ADD BX, AX MOV AL, BX OR AL, DL MOV BIN, AL MOV AH, 4CH INT 21HCODE ENDS程序的错误如下:修改后程序如下:(红色为修改处)DATA SEGMENT ORG 1000HBIN DB ? ;存放转换后的二进制数HEX DB 6B ;待转换的十六进制数6BH ORG 1030H DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ;09对应的二进制数转换表 ORG 1041H DB 0AH,0BH,0CH,0DH,0EH,0FH ;AF对应的二进制数转换表DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX, DATA MOV DS, AX MOV AL, HEX ;十六进制高位36H-AL MOV BX, OFFSET BIN ;BIN的偏移地址1000H-BX SUB AH, AH ;AH清0 ADD BX, AX ;1036 H- BX形成转换表地址 MOV DL, BX ;DL=(1036H)=06H MOV CL, 4 ;将DL低4位左移至高4位 SHL DL, CL MOV AL, HEX+1 ;十六进制低位42H-AL MOV BX, OFFSET BIN ;BIN的偏移地址1000H-BXXOR AH, AH ;AH清0 ADD BX, AX ;1042H-BX形成转换表地址 MOV AL, BX ;AL=(1042H)=0BH OR AL, DL ;AL=0BH V60H=6BH MOV BIN, AL ;6BH-BIN单元 MOV AH, 4CH INT 21HCODE ENDS END START运行结果如下:4列出求262+182的小汇编程序清单。 -AXXXX:0100 MOV AL,1A ;26=1AHXXXX:0103 SHR AL,1 ;AL右移1位,相当于本身除以2XXXX:0105 MOV BL,AL ;结果转存BLXXXX:0107 MOV AL,12 ;18=12HXXXX:0109 SHL AL,1 ;AL左移1位,相当于本身乘以2XXXX:010B ADD AL,BL ;AL存放最后结果XXXX:010D HLTXXXX:010E5编写程序1,实现W=(3X+6Y)*4-8Z,设X=3,Z=19。将编写好的程序1输入、编译、连接并运行。程序1清单DSEG SEGMENT ;数据段定义X DB 5 ;加数变量X的定义及赋值Y DB 3 ;加数变量Y的定义及赋值Z DB 19 ;加数变量Z的定义及赋值W DW ? ;结果变量W的定义DSEG ENDS ;数据段定义结束CSEG SEGMENT ;代码段定义 ASSUME CS:CSEG, DS:DSEG ;呈现各个定义的段START: ;定义程序开始执行 MOV AX, DSEG ;获取数据段的段地址MOV DS, AX ;把数据段的段地址存入DS寄存器中BEGIN: MOV AL, X MOV BL, AL SHLAL, 1ADD AL,BL; AL=3XMOV BL,YSHLBL, 1MOV BH,BLSHLBL, 1 ADD BL,BH; BL=6YADD AL, BL; AL=(3X+6Y)MOV BL,4 MUL BL; AX=(3X+6Y)*4MOV BX, AX; BX=(3X+6Y)*4 MOV AL,Z MOV CL, 8 MUL CL; AX=8Z SUB BX, AX; BX=(3X+6Y)*4-8Z MOV W, BX MOV AH, 4CHINT 21HCSEG ENDS ;代码段结束 END START ;程序执行结束程序1运行结果: 实验情况与体会:通过本次上机实验,学习了数值转换。实验过程中,遇到很多问题,比如程序一的编写,基本上都是学习书本以及依靠书本多做题才编出来的,仅

温馨提示

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

评论

0/150

提交评论