山东大学汇编语言上机实验——实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序的基本结构练习
一:循环程序设计
一、实验目的
(1) 加深对循环结构的理解;
(2) 掌握循环程序的设计方法;
(3) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
二、实验内容
1.已知以BUF为首地址的字存储区中存放着8个有符号二进制数,是编写程序将其中大于等于0的数依次送BUF1为首地址的字存储区中,小于0的数依次送以BUF2为首地址的字存储区中。同时将大于等于0的数的个数送A字变量,将小于0数的个数送B字变量。
2.设STR字符串是以0结尾。试编写一个把字符串中的所有大写字母改为小写字母的程序并将转换后的字符串显示输出。
3.试编程从自然数1开始累加,直到累加和大于5050为止,统计被累加的自然数的个数,并把统计的个数送入COUNT单元,累加和送入TOTAL单元。三、算法描述流程图
实验内容1、2、3的流程图分别为图1、图2、图3。
四、实验步骤
1.已知以BUF为首地址的字存储区中存放着8个有符号二进制数,是编写程序将其中大于等于0的数依次送BUF1为首地址的字存储区中,小于0的数依次送以BUF2为首地址的字存储区中。同时将大于等于0的数的个数送A字变量,将小于0数的个数送B字变量。1)输入源程序:
DA TA SEGMENT
BUF DW 23,123,-12,-210,45,0,90,-453
BUF1 DW 8 DUP(0)
BUF2 DW 8 DUP(0)
A DW
B DW DA TA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DA TA
START: MOV AX, DATA
MOV DS, AX
LEA BX, BUF
LEA SI, BUF1
LEA DI, BUF2
MOV A,0
MOV B,0
MOV CX,8
L0: MOV AX,[BX]
CMP AX,0
JGE L1
MOV [DI],AX
ADD DI,2
INC B
JMP NEXT
L1: MOV [SI],AX
ADD SI,2
INC A
NEXT: ADD BX,2
LOOP L0
MOV AH, 4CH
INT 21H
CODE ENDS
END START
2)运行程序。
3)检查结果无错误后将结果记录下来。
2.设STR字符串是以0结尾。试编写一个把字符串中的所有大写字母改为小写字母的程序并将转换后的字符串显示输出。
1)输入源程序:
DA TA SEGMENT
STR DB 'HOW arE YoU!',0
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA
START:MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET STR
AGAIN:MOV DL,[SI]
OR DL,DL
JZ OK
CMP DL,'A'
JB NEXT
CMP DL,'Z'
JA NEXT
ADD DL,20H
MOV [SI],DL
NEXT: MOV AH,2
INT 21H
INC SI
JMP AGAIN
OK: MOV AH,4CH
INT 21H
CODE ENDS
END START
2)运行程序。
3)检查结果无错误后将结果记录下来。
3.试编程从自然数1开始累加,直到累加和大于5050为止,统计被累加的自然数的个数,并把统计的个数送入COUNT单元,累加和送入TOTAL单元。
1)输入源程序:
DA TA SEGMENT
COUNT DW ?
TOTAL DW ?
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA
START: MOV AX,DATA
MOV DS,AX
MOV CX,0
MOV AX,0
MOV BX,0
LOOP1: INC BX
ADD AX,BX
INC CX
CMP AX,5050
JLE LOOP1
MOV COUNT,CX
MOV TOTAL,AX
CODE ENDS
END START
2)运行程序。
3)检查结果无错误后将结果记录下来。
五、实验结果
1.已知以BUF为首地址的字存储区中存放着8个有符号二进制数,是编写程序将其中大于等于0的数依次送BUF1为首地址的字存储区中,小于0的数依次送以BUF2为首地址的字存储区中。同时将大于等于0的数的个数送A字变量,将小于0数的个数送B字变量。程序运行结果如下界面所示:
设STR字符串是以0结尾。试编写一个把字符串中的所有大写字母改为小写字母的程序并将转换后的字符串显示输出。程序运行结果如下界面所示:
3.试编程从自然数1开始累加,直到累加和大于5050为止,统计被累加的自然数的个数,并把统计的个数送入COUNT单元,累加和送入TOTAL单元。程序运行结果如下界面所示: