黑龙江大学软件学院汇编实验报告实验六.docx
《黑龙江大学软件学院汇编实验报告实验六.docx》由会员分享,可在线阅读,更多相关《黑龙江大学软件学院汇编实验报告实验六.docx(13页珍藏版)》请在冰点文库上搜索。
![黑龙江大学软件学院汇编实验报告实验六.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/4cc387ad-a0d6-4c3e-97e3-407cdbee90c1/4cc387ad-a0d6-4c3e-97e3-407cdbee90c11.gif)
黑龙江大学软件学院汇编实验报告实验六
实验报告
课程名称
汇编语言
实验项目名称
汇编语言上机
实验时间
(日期及节次)
2012.5.7,两节
专业
软件工程
学生所在学院
软件学院
年级
大一
学号
20113311
姓名
杜常数
指导教师
史新奕
实验室名称
第三实验室
实验成绩
预习情况
操作技术
实验报告
附加:
综合创新能力
实验
综合成绩
教师签字
黑龙江大学教务处
汇编语言
实验报告
黑龙江大学软件学院
2012年4月
实验名称:
分支程序设计
实验目的
主要掌握汇编语言分支程序设计技术。
重点掌握分支程序设计中的条件判断和准备等技巧。
实验类型
实验环境
主要设计思想与算法
实验一的程序如下:
EXTRASEGMENT
BUFFERDW1F48H,-353CH,0F00H
EXTRAENDS
CODESEGMENT
ASSUMECS:
CODE,ES:
EXTRA
START:
MOVAX,EXTRA
MOVES,AX
MOVAX,BUFFER
MOVBX,BUFFER+2
MOVCX,BUFFER+4
CMPAX,BX
JNLENEXT_1
XCHGAX,BX
NEXT_1:
CMPAX,CX
JNLENEXT_2
XCHGAX,CX
NEXT_2:
CMPBX,CX
JNLEEXIT
XCHGBX,CX
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验二的程序如下:
DATASEGMENT
LISTDB?
DB?
DB'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,2AH
SUBDI,DI
ACTION:
CMPDI,2
JZPUTOUT
MOVCL,4
ROLAL,CL
MOVBL,AL
ANDBL,0FH
ADDBL,30H
CMPBL,3AH
JBNEXT
ADDBL,7
NEXT:
MOVLIST[DI],BL
INCDI
JMPACTION
PUTOUT:
MOVAH,9H
LEADX,LIST
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验结果(测试用例、实验结果)
实验一运行调试如下:
1.对HB61.ASM文件进行汇编连接
2.对生成后的HB61.EXE文件进行调试
反汇编查看所有命令
用-T分步执行
如下所示分别从附加段中读入数据AX=1F48,BX=CAC4,CX=0F00
最后AX=1F48,BX=0F00,CX=CAC4,即AX中的值最大然后依次为BX,CX
程序正常执行完毕,退出。
实验二的程序运行及调试如下:
先对源程序进行汇编及连接
运行HB62.EXE如下所示,在屏幕上出现六进制的数2A
反汇编查看所有命令
在程序中把要转换的十六进制ASCII码给AL寄存器,对DI寄存器清零
CL赋值为4,先将AL循环左移4位,再把AL值给BL,ANDBL,0FH只保留4位
将BL中的值加30H,跳转保存MOVLIST[DI],BL用的是寄存器相对寻址方式
以下是对低四位进行的一次重复操作,将其转换为对应的ASCII码
程序跳转至输出,将LIST中保存的ASCII码输出到屏幕上并退出。
实验总结