当前位置:
文档之家› 微机原理与接口(综合程序设计)
微机原理与接口(综合程序设计)
;input code segment code here
LEA SI ,GRADE
LEA DI,RANK
MOV CX ,10
NEXT:
MOV AL,BYTE PTR[SI]
MOV BYTE PTR[DI],AL
INC SI
INC DI
LOOP NEXT
RET
COPY ENDP
;输出目标数组中的值
SHOW PROC NEAR
MOV AL,BYTE PTR [DI]
MOV BYTE PTR [SI],AL
MOV AL,BYTE PTR TEMP
MOV BYTE PTR[DI],AL
CONTINUE:
INC DI
JMP LOOP2
BREAK:
DEC SI
JMP LOOP1
STOP:
RET
SORT ENDP
;复制
COPY PROC NEAR
end start
程序运行结果:
实验总结:
通过本次实验,我对汇编的有了更深的理解,掌握了在PC机上建立、汇编、链接、调试和运行8086汇编语言程序的全过程;学习较复杂的8086汇编语言程序设计的基本方法;巩固对8086指令系统、汇编语言伪指令的学习和掌握。但由于对汇编一些指令的用法掌握的不好,在实验中也遇到了很多问题,但经过查资料和在同学的帮助下最终解决了问题,顺利的完成了实验。
MOV DL,09H
MOV AH,02H
INT 21H
INC SI
DEC BH
JNZ PRINT
RET
SHOW ENDP
ENTER_ PROC NEAR
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
RET
ENTER_ ENDP
code ends
实验条件:1、计算机一台
2、MASM for Windows或者MASM5.0以上编译环境
实验内容:
一、试验题目:
编制一程序,要求设置10个学生成绩,并存放于10字节的GRADE数组中,其中GRADE+N保存学号N+1的学生成绩。然后根据GRADE中的学生成绩,把学生名次填入10字节的RANK数组中,其中RANK+N的内容是学号为N+1学生的名次。再按学号顺序和学生名次顺序分别把学生成绩显示出来。
洛阳理工学院实验报告
系别
计算机
班级
学号
姓名
课程名称
微机原理与接口技术
实验日期
2013.4.28
实验名称
综合程序设计
成绩
实验目的:1、掌握在PC机上建立、汇编、链接、调试和运行8086汇编语言程序的全过程;
2、学习较复杂的8086汇编语言程序设计的基本方法;
3、巩固对8086指令系统、汇编语言伪指令的学习和掌握。
;input stack segment code here
stack ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
;程序代码
call COPY
MOV DX,OFFSET ORGINAL
MOV AH,09H
LEA DI,RANK
LEA SI,RANK
ADD SI,9
LOOP1:
CMP SI,OFFSET RANK
LEA DI,RANK
JB STOP
LOOP2:
CMP DI,SI
JNB BREAK
MOV AL,BYTE PTR[SI]
CMP AL,[DI]
JNB CONTINUE
MOV BYTE PTR TEMP,AL
MOV BH,10
LEA SI, RANK
PRINT:
MOV BL,BYTE PTR[SI]
MOV DL,BL
AND DL,0F0H;
MOV CL,4
ROR DL,CL
OR DL,30H
MOV AH,02H
INT 21H
MOV DL,BL
AND DL,0FH
OR DL,30H
MOV AH,02H
INT 21H
二、试验程序:
data segment
GRADE DB 49H,50H,40H,42H,55H,60H,58H,46H,42H,52H
RANK DB $-GRADE DUP(?)
TEMP DB ?
ORGINAL DB "原Байду номын сангаас数据为:$"
destiny DB "排序后数据为:$"
data ends
stack segment
INT 21H
CALL ENTER_
CALL SHOW
MOV DL,0AH
MOV AH,02H
INT 21H
CALL SORT
MOV DX,OFFSET DESTINY
MOV AH,09H
INT 21H
CALL ENTER_
CALL SHOW
MOV ah,4ch
INT 21h
;排序函数
SORT PROC NEAR