黑龙江大学软件学院汇编实验报告实验九.docx
《黑龙江大学软件学院汇编实验报告实验九.docx》由会员分享,可在线阅读,更多相关《黑龙江大学软件学院汇编实验报告实验九.docx(10页珍藏版)》请在冰豆网上搜索。
![黑龙江大学软件学院汇编实验报告实验九.docx](https://file1.bdocx.com/fileroot1/2023-1/26/104f7d82-bcd9-4219-823e-4c8c388d1ea7/104f7d82-bcd9-4219-823e-4c8c388d1ea71.gif)
黑龙江大学软件学院汇编实验报告实验九
实验报告
课程名称
汇编语言
实验项目名称
汇编语言上机
实验时间
(日期及节次)
2012.5.28,两节
专业
软件工程
学生所在学院
软件学院
年级
大一
学号
20113311
姓名
杜常数
指导教师
史新奕
实验室名称
第三实验室
实验成绩
预习情况
操作技术
实验报告
附加:
综合创新能力
实验
综合成绩
教师签字
黑龙江大学教务处
汇编语言
实验报告
黑龙江大学软件学院
2012年4月
实验名称:
子程序设计
实验目的
熟悉和掌握汇编语言中的子程序设计技术,并应用它解决实际问题。
实验类型
实验环境
硬件环境:
IBM-PC及其系列机
内存256KB以上
外存:
硬盘或至少一个软驱
CPU:
80586以上
显示器:
单色或彩色显示器
键盘:
标准ASCII码键盘
软件环境:
编缉器:
EDIT.COM或其它编缉器
汇编程序:
MASM.EXE
连接程序:
LINK.EXE
调试程序:
DEBUG.EXE
主要设计思想与算法
1用寄存器传递参数的程序设计如下所示:
;*****************************************************
CODESEGMENT
ASSUMECS:
CODE
MAINPROCFAR
REPEAT:
CALLDECBIN
CALLCRLF
CALLBINIHEX
CALLCRLF
JMPREPEAT
MAINENDP
;----------------------------------------------------------------------------------
DECBINPROCNEAR
MOVBX,0
NEWCHAR:
MOVAH,1H
INT21H
SUBAL,30H
JLEXIT
CMPAL,9D
JNLEEXIT
CBW
XCHGAX,BX
MOVCX,10D
MULCX
XCHGAX,BX
ADDBX,AX
JMPNEWCHAR
EXIT:
RET
DECBINENDP
;----------------------------------------------------------------------------------
BINIHEXPROCNEAR
MOVCH,4
ROTATE:
MOVCL,4
ROLBX,CL
MOVAL,BL
ANDAL,0FH
ADDAL,30H
CMPAL,3AH
JLPRINT
ADDAL,7H
PRINT:
MOVDL,AL
MOVAH,2H
INT21H
DECCH
JNZROTATE
RET
BINIHEXENDP
;----------------------------------------------------------------------------------
CRLFPROCNEAR
MOVDL,0DH
MOVAH,2H
INT21H
MOVDL,0AH
MOVAH,2H
INT21H
RET
CRLFENDP
CODEENDS
;****************************************************
ENDMAIN
2.用地址表传递参数的子程序设计如下所示:
;***********************************
CODESEGMENT
ASSUMECS:
CODE
MAINPROCFAR
REPEAT:
CALLDECBIN
CALLCRLF
CALLBINIHEX
CALLCRLF
JMPREPEAT
MAINENDP
;------------------------------------
DECBINPROCNEAR
MOVBX,0
NEWCHAR:
MOVAH,1H
INT21H
SUBAL,30H
JLEXIT
CMPAL,9D
JNLEEXIT
CBW
XCHGAX,BX
MOVCX,10D
MULCX
XCHGAX,BX
ADDBX,AX
JMPNEWCHAR
EXIT:
RET
DECBINENDP
;--------------------------------------
BINIHEXPROCNEAR
MOVCH,4
ROTATE:
MOVCL,4
ROLBX,CL
MOVAL,BL
ANDAL,0FH
ADDAL,30H
CMPAL,3AH
JLPRINT
ADDAL,7H
PRINT:
MOVDL,AL
MOVAH,2H
INT21H
DECCH
JNZROTATE
RET
BINIHEXENDP
;----------------------------------------
CRLFPROCNEAR
MOVDL,0DH
MOVAH,2H
INT21H
MOVDL,0AH
MOVAH,2H
INT21H
RET
CRLFENDP
CODEENDS
;*****************************************
ENDMAIN
实验结果(测试用例、实验结果)
对HB91.ASM文件进行汇编和连接,分别生成HB91.OBJ和HB91.EXE文件
运行HB91.EXE文件,并查看结果是否正确
但BX寄存器只能保存16位,即最大为FFFFH,故所输入的十进制数不能大于65535,否则就会溢出出现错误
2.对HB92.ASM进行汇编和连接,如下图所示
运行并检查结果
运行结果正确,与用寄存器传递参数一样,所输入的十进制数据范围应为0~65535D(即0000H~FFFFH),否则出现错误。
实验总结