实验一 顺序程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一顺序程序设计

一、实验目的:

1、学习顺序程序的设计方法

2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程

3、学习和掌握字符及字符串的输入输出方法

二、实验环境:

硬件环境IBM/PC 及其兼容机

软件环境操作系统DOS

编辑程序EDIT或其他编辑程序

汇编程序MASM.EXE

连接程序LINK.EXE

调试程序DEBUG.EXE

可视化编程环境emu8086

三、实验内容:

1、已知X和Y是数据段中的两个无符号字节单元,用程序完成表达式Z=(X2+Y2)/2的计算。

2、从键盘读入两个一位数(按键时保证按下的是数字键),显示它们的积。

四、实验要求:

1、画出实验程序流程图,独立完成源代码的编写。

开始

X中的内容

送AL

计算X*X

X*X乘积

送BX

Y中的内

容送AL

计算Y*Y 计算X*X+Y*Y

计算(X*X+Y*Y)/2结果送Z单元

结束

开始

读入第1个数字

并保存在BL中

读入第2个数字

将两个数字都转换成十进制数

两个数相乘,

积在AX中

积除以10取商送AL,余数在AH中

转换成相应的

ASCII码,并

保存在BX中

输出十位数

输出个位数

结束

2、在DOS环境下使用MASM完成对源代码的编译、连接,有必要的情况下使用debug.exe 进行调试。

3、WINDOS环境下使用EMU8086完成上第2步的工作。

4、与程序流程图比较,验证是否完成规定的功能,若未达要求,返回第1步。

5、提交完成的源代码,要求对关键语句进行注释。

①源代码如下:

DA TA SEGMENT

X DB 5

Y DB 4

Z DW ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX ;初始化数据段

MOV AL,X ;X中的内容送AL

MUL AL ;计算X*X

MOV BX,AX ;X*X乘积送BX

MOV AL,Y ;Y中的内容送AL

MUL AL ;计算Y*Y

ADD AX,BX ;计算X2+Y2

SHR AX,1 ;计算(X2+Y2)/2

MOV Z,AX ;结果送Z单元

MOV AH,4CH

INT 21H ;返回DOS

CODE ENDS

END START ;汇编结束

②源代码如下:

CODE SEGMENT

ASSUME CS:CODE

MAIN: MOV AH,1

INT 21H ;读入第1个数字

MOV BL,AL ;保存在BL中

MOV AH,2

MOV DL,13

INT 21H ;回车

MOV DL,10

INT 21H ;换行

MOV AH,1

INT 21H ;读入第2个数字

SUB AL,30H ;第2个数字转换成十进制数

SUB BL,30H ;第1个数字转换成十进制数

MUL BL ;两个数相乘,积在AX中

MOV BL,10 ;

DIV BL ;积除以10取商送AL,余数在AH中

ADD AX,3030H ;转换成相应的ASCⅡ码

MOV BX,AX ;保存在BX中

MOV AH,2

MOV DL,13

INT 21H ;回车

MOV DL,10

INT 21H ;换行

MOV DL,BL

MOV AH,2

INT 21H ;输出十位数

MOV DL,BH

INT 21H ;输出个位数

MOV AH,4CH

INT 21H ;返回DOS

CODE ENDS

END MAIN ;程序结束

相关文档
最新文档