电工电子实验中心
实验报告
课程名称: 计算机硬件技术基础
实验名称:数据统计
姓名:学号:
评定成绩:审阅教师:
实验时间:2017.05.02
南京航空航天大学
1) 熟悉汇编语言程序的框架结构,掌握循环程序的设计方法。
2) 熟悉常用的条件跳转指令。
3) 熟悉有符号数的运算。
本实验要求通过求某数据区内负数的个数来表现循环程序的结构形式。要求实验程序在数据段中存放一组数据,分类统计数据中正数、负数和零的个数,并分别存入内存变量 Positive、Negative和 Zero 中。将所有数据累加求和,存入 SUM 中。
DATA SEGMENT
NUM DB 12H,88H,82H,89H,33H,90H,0H,10H,0BDH,01H
POSITIVE DB DUP (0)
NEGATIVE DB DUP (0)
ZERO DB DUP (0)
SUM DW 2 DUP (0)
DATA ENDS
STACK1 SEGMENT STACK
DB DUP (0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START PROC FAR
PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
MOV SUM,0
MOV BX, 0;bx为基地址寄存器,故使用此寄存器来进行累加,可以直接遍历NUM
LABEL4:
CMP NUM[BX],0
MOV AX,0
MOV AL,NUM[BX]
ADD SUM,AX
JGE LABEL1
INC NEGATIVE
JMP LABEL3
LABEL1:
CMP NUM[BX],0
JE LABEL2;
INC POSITIVE
JMP LABEL3
LABEL2:
INC ZERO
LABEL3:
INC BX
CMP BX,10
JL LABEL4
MOV AX, 0
MOV DL,POSITIVE+30
MOV AH,02H
INT 21H
MOV DL,NEGATIVE+30
INT 21H
MOV DL,ZERO+30
INT 21H
RET
START ENDP
CODE ENDS
END START
DS:0000 | 12 | 88 | 82 | 89 | 33 | 90 | 00 | 10 |
DS:0008 | BD | 01 | 09 | 00 | 01 | 36 | 03 | 00 |
POSITIVE :9
NEGATIVE :0
ZERO :1
SUM :0336
该实验的难点是循环部分的编写,语句的用法不是很熟练,思路也有些混乱,经过认真研读教材和同学进行讨论解决了问题。学会了循环程序的编写和跳转指令的应用。
本文来源:https://www.2haoxitong.net/k/doc/4bfad5502a160b4e767f5acfa1c7aa00b52a9d92.html
文档为doc格式