资源描述
实验报告
课程名称 计算机结构与组织 实验项目 输出最大最小值
姓名 学号 班级 专业
实验日期
实验名称:十个数输出最大最小值
程序框图:
CL=0?
MAX,MIN转化成ASCⅡ
初始化,设数据串地址
传递第一个数AX,并设置比较次数
BX AX
AX>[BX]
CL=0?
BX指向下一个数,循环次数减+1
传递第一个数AX,并设置比较次数
AX<[BX]
BX指向下一个数,循环次数-1
[BX]AX
AX MIN
AX
MAX
利用功能调用2输出MAX
输出空格
程序
DATA SEGMENT
MAX DB ?
MIN DB ?
DATA DW 08H,07H,04H,03H,09H,02H,01H,05H,00H,06H
DATA ENDS
STACK SEGMENT PARA STACK'STACK'
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS: CODE,DS: DATA,SS: STACK
利用功能调用2输出MIN
MAIN PROC FAR
START:
PUSH DX
SUB AX,AX
PUSH AX
MOV AX, DATA
MOV DS,AX
MOV BX,OFFSET DATA
MOV AX,[BX]
MOV CL,10
AGAIN1:
CMP AX,[BX]
JG NEXT1
MOV AX,[BX]
NEXT1:
INC BX
INC BX
DEC CL
JNZ AGAIN1
MOV MAX,Al
GO:
MOV BX,OFFSET DATA
MOV AX,[BX]
MOV CL,10
AGAIN2:
CMP AX,[BX]
Jl NEXT2
MOV AX,[BX]
NEXT2:
INC BX
INC BX
DEC CL
JNZ AGAIN2
MOV MIN,AL
OR MAX,30H
OR MIN,30H
DAA
PRINT:
MOV DL, MAX
MOV AH,2
INT 21H
MOV DL,20H
MOV AH,2
INT 21H
MOV DL,MIN
MOV AH,02
INT 21H
MOV DL,20H
MOV AH,2
INT 21H
MOV CX,0FFFFH
LOAP:
DEC CX
JNE LOAP
JMP PRINT
MAIN ENDP
CODE ENDS
END START
心得与体会:
刚开始编写汇编语言的时候觉得应该很简单,因为我在大一下半学期曾经学过C,C++,认为C,C++是比汇编语言更高级的语言,自认为在有C++的基础的情况下,汇编语言会学起来相当省事,但经过编写才发现完全不是那么回事,在格式,表达方面截然不同,而且还有很多新的事物需要去接受,譬如:寄存器的选择,段的概念等,若不加以了解,那么无法将程序编写进行下去。但我也发现汇编语言与C,C++也有相似之处,比如基本的顺序模式,分支模式,循环模式等,这也为我对整体思路的把握有一定的帮助。总之,在不断的摸索,学习,编写,再学习的过程中,我比较清楚的掌握了这个程序的编写。
在编写完以后,本以为大功告成,但是却碰到更大的问题,那便是程序的反复的调试与矫正,这相当繁琐,一个小小的错误就需要整个程序重新复查,需要花费很多时间。这就需要在编写的时候要考虑周到,尽量避免出现小错误。
展开阅读全文