三、实验仪器
微机一台。
四、实验步骤
参照实验一的步骤,按照本实验程序的内容,分别输入各段程序,连续执行程序,记录每个程序段的最后结果。若想把源数据块重
新换一批数据,可以用DEBUG的Fill命令填充新的数据。例如: -F1000:00 L1F 33↙
从1000:0000H开始的31个字节被替换成33H。
五、实验预习要求
1.认真阅读DEBUG调试程序的命令说明。 2.仔细阅读本实验给出的程序段。
3.写出每个程序段的结果数据(分析结果),并说明结果所在的位置(寄存器或存贮器)。
六、实验报告要求
1. 整理每个程序段在实验时的记录内容。 2. 比较每个程序段的特点。
3. 分析本次实验出现的问题,找出问题所在。
6
实验三 分 支 程 序 设 计
一、实验目的
⒈练习分支程序的编写方法。
⒉练习汇编语言程序的上机过程。
二、实验原理
⒈通过分支程序设计调试和运行,进一步熟悉掌握汇编程序执行的软件环境。 ⒉通过分支程序的执行过程,熟悉EDIT的使用,建立OBJ文件EXE文件的方法。
三、实验仪器
⒈ 微机一台。
四、实验内容
给出三个有符号数,编写一个比较相等关系的程序: (1) 如果这三个数都不相等,则显示0; (2) 如果这三个数中有两个数相等,则显示1; (3) 如果这三个数都相等,则显示2;
DEBUG:
EDIT:
7
执行结果为:0 五、实验报告要求
1.该源程序在DEBUG和EDIT两种状态下运行。
2. 实验报告中要有源程序和执行结果。
实验四 统 计 学 生 成 绩 程 序
一、实验目的
进一步掌握分支程序和循环程序的编写方法。
二、实验原理
设有10个学生的成绩分别为56、69、84、82、73、88、99、63、100和80分。试编制程序分别统计低于60分、60~69分、70~79
分、80~89分、90~99分及100分的人数存放到s5、s6、s7、s8、s9及s10单元中。
8
这一题目的算法很简单,成绩分等部分采用分支结构,统计所有成绩则用循环结构完成。程序框图如下图所示。 三、实验仪器
1. 微机一台。
开 始 初始化计数单元 初始化循环计数值 初始化首地址 取一个成绩
S5+1 Y Y Y <60? <70? <80? N S6+1 N N S7+1 Y <90? N S8+1 N =100? Y S9+1 S10+1 修 改 地 址
N 循环结束? Y
9
结 束 程 序 框 图
四、实验步骤
输入编写的源程序,进行调试。 参考程序如下:
;PROGRAM TITLE GOES HERE――result
;************************************
DATAREA SEGMENT ;DEFINE DATA SEGMENT GRADE DW 56,69,84,82,73,88,99,63,100,80 S5 DW 0 S6 DW 0 S7 DW 0 S8 DW 0 S9 DW 0 S10 DW 0 DATAREA ENDS
;************************************ PROGNAM SEGMENT ;DEFINE CODE SEGMENT ;----------------------------
MAIN PROC FAR ; MAIN PART OF PROGRAM ASSUME CS:PROGNAM, DS:DATAREA
START: ; STARTING EXECUTION ADDRESS ; SET UP STACK FOR RETURN
PUSH DS ; SAVE OLD DATA SEGMENT SUB AX,AX ; PUT ZERO IN AX PUSH AX ; SAVE IT ON STACK ; SET DS REGISTER TO CURRENT DATA SEGMENT
MOV AX,DATAREA ; DATAREA SEGMENT ADDR MOV DS,AX ; INTO DS REGISTER ; MAIN PART OF PROGRAM GOES HERE
MOV S5, 0 ; INITIALIZE COUNTER MOV S6, 0 MOV S7, 0 MOV S8, 0 MOV S9, 0 MOV S10, 0
MOV CX, 10 ; INITIALIZE LOOP COUNT VALUE MOV BX, OFFSET GRADE ; INITIALIZE FIRST ADDR COMPARE:
MOV AX, [BX] ; GET A RESULT CMP AX, 60 ; <60? JL FIVE
CMP AX, 70 ; <70? JL SIX
CMP AX, 80 ; <80? JL SEVEN
CMP AX, 90 ; <90? JL EIGHT
CMP AX, 100 ; =100?
10