汇编语言实验报告
Assembly Language Programming Lab Reports
______________________________________________________________________________
班级: _________ 姓名:___________ 学号:___________ 实验日期:_____________
学院: _____计算机与通信工程学院____ 专业:_______计算机科学与技术___________
实验顺序:___实验四____ 实验名称:____________分支程序设计________________ 实验分数:_______ 考评日期:________ 指导教师:
______________________________________________________________________________
一.实验目的
1.掌握主要的转移指令和位操作指令。
(1)无条件转移指令。
Jmp理解掌握段内寻址和段间寻址方式。
(2)条件转移指令,无符号数比较转移,带符号数比较转移,cx为0转移指令(jcxz)这
些都为短转移指令,当代码过长超出-128-127的的转移范围,学会使用无条件指令
作为中间桥梁完成相应的功能。
(3)Test指令和Cmp指令。
2.掌握分支程序实现的方法。
(1)在完成一个程序的功能时,先简单列出要完成这个程序需要的步骤。
(2)根据列出的步骤画出程序框图。
(3)根据框图写代码。
3.在调试运行程序时,理解程序的加载过程。
进一步掌握编辑、编译、链接、调试过程。
______________________________________________________________________________
二.实验环境
操作系统:windows xp
编译程序:masm 5.0
______________________________________________________________________________
三.实验原理
1.无条件转移指令
格式:JMP OPR
举例:JMP AA1
2.条件转移指令
格式:JZ、JNZ、JC、JNC
举例:JZ let1
3.逻辑与AND
格式:AND DST,SRC
举例:AND AL,0FH
4.循环左移,循环右移
格式:ROL、ROR
举例:ROL AX,1
ROR AL,1
5.CMP指令
格式:CMP OPR1,OPR2
执行操作:(OPR1)-(OPR2)
功能:该指令执行减法操作,但不保存运算结果,只改变条件标志位。
6.测试指令TEST
格式:TEST OPR1,OPR2
执行的操作:(OPR1)^(OPR2)
功能:两个操作数相与,结果不回送,改变标志位。
______________________________________________________________________________四.实验步骤及结果分析
1.用查表的方法将内存单元中的字用二进制表示
代码:
流程图:
2.用查表的方法将内存单元中的字用十六进制表示
代码:
流程图:
3. 将二进制显示和十六进制显示做成菜单栏形式(使用比较转移)
代码:
流程图:
4. 将二进制显示和十六进制显示做成菜单栏形式(使用分支表)
代码:
流程图:
____________________________________________________________________________五.实验心得疑问建议
通过本次实验增强了我们对汇编指令的熟悉程度,同时学会了使用分支语句实现一些具有选择功能的程序,理解了条件转移指令与无条件转移指令的区别,学会了使用多种方式实现菜单程序。