汇编语言程序设计实验报告二分支循环程序实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言程序设计实验报告二(分支循环程序实验)
一、实验目的
1、掌握分支程序、循环程序的设计方法。
2、熟悉DEBUG程序的使用方法。
3、掌握汇编语言程序的编辑、汇编、连接以及调试过程。
二、实验内容
1、编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考
虑数据块重叠问题)。
2、编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问
题)。
三、实验准备
1、预习数据传送指令,熟悉分支和循环程序设计方法。
2、预习DEBUG调试程序的使用方法。
3、根据实验内容要求,编写好实验源程序。
四、实验步骤
1、用QE或其它编辑软件,在计算机上编辑源程序,使其正确无误。
2、汇编、连接源程序,产生.EXE可执行文件。
3、运行程序。
(1)进入DEBUG。打入DEBUGT 。MYPROG为所编程序的文件名。
(2)先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。如果执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,
则执行下一步。
(3)检查程序。在程序中设置若干断点,以便杳出错误所在。
(4)采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错误之处。
五、实验报告要求
1、列出程序清单,并给出程序流程图。
2、
3、
4、说明本实验中是如何使用DEBUG
六、流程图勤
N
题一流程图
书馆
题二流程图
七、程序清单
题一程序清单:
STACK SEGMENT STACK ‘STACK’
DB 100 DUP(0)
STACK ENDS
DA TA SEGMENT PARA ‘DA TA’
SOUR DB 0、1、2、3、4、5、6、7、8、9
DEST DB 10 DUP(?)
DB ‘$’
DA TA ENDS
SEGMENT PARA‘CODE’
ASSUME CS:CODE
MAIN PROC FAR
START:PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV CX,10
MOV SI,offset SOUR
MOV DI, offset DEST
AGAIN: MOV AL,[SI]
MOV [DI],AL
INC SI
IN DI
LOOP AGAIN
MOV DX,offset DEST
MOV AH,09H
INT 21H
RET
MAIN ENDP
CODE ENDS
END START
题二程序清单:
DA TA SEGMENT PARA ‘DA TA’
STRG DB ‘ABCDEFGHIJKLMNOP’
STG1 EQU STRG+4
STG2 EQU STHG+8
STRSE EQU 6
DA TA ENDS
STACK SEGMENT PARA ‘CODE’
DB 100 DUP(0)
STACK ENDS
CODE SEGMENT PARA ‘CODE’
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
PROC FAR
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV CX,STRSE
MOV SI,OFFSET STG1
MOV DI,OFFSET STG2
CLD
PUSH SI
ADD SI,STRSE-1
CMP SI,DI
POP SI
JL MOVE
STD
ADD SI,STRSE-1
ADD DI,STRSE-1
MOVE: REP MOVSB
RET
MAIN ENDP
CODE ENDS
END START