汇编步骤流程图

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

课程题目:由键盘输任意字节数A,B,C,D,E,按式Y二A*B+C/D-E计算

按正负数分别存储于数据区BUF1HE BUF中,并将计算结果显示在

屏幕上。

xx 学院

xx 班

xxx

汇编程序设计步骤:

一.分析问题

1. 已知条件:Y=A*B+C/D-E其中A、B、C、D E均为字节数,并由键盘输入。

2. 目的要求:按式计算Yi, 正负数分别存贮并将结果显示在屏幕上。

二.确定算法

1. 输入方式:键盘输入

2. 处理方式:DOS中断调用、数制转换、算术运算、循环等。

3. 输出方式:存贮、显示三.存储空间分配

定义堆栈段

定义数据段,其中:BUF1:存放正结果

BUF2 :存放负结果

定义堆栈段

四.绘制流程图

1.总体流程图

2. 字符转换数据流程图

3.转换输出子程序流程图

五、编写程序:

二、DATA SEGMENT MARK DB 1,2,20,4,5

DB 3,4,40,5,20

DB 5,6,60,6,20

DB 1,2,20,4,20

DB 2,3,10,5,15

BUF1 DW 5 DUP(0)

BUF2 DW 5 DUP(0) BUFM DB 10 DUP(0),'$' DATA ENDS

STACK SEGMENT STACK DB 100 DUP(0)

STACK ENDS

CODE SEGMENT MOV BX,0

MOV BL , [DI+4] CBW

MOV AX, [SI]

SUB AX, BX

CMP AX, 0

JL JIS1

MOV [SI] , AX

CALL OUTZH1

JMP JIS2

JIS1: MOV [BUF2], AX NEG AX

MOV BYTE PTR[BUFM] CALL OUTZH1

ASSUME

SS:STACK

BEGIN: MOV AX,DATA MOV DS,AX

MOV CX,5

LEA DI , MARK

LEA SI , BUF1

AA: CALL JIS

ADD DI, 05

ADD SI, 02

LOOP AA

MOV AH, 4CH

INT 21H

JIS PROC NEAR PUSH SI

PUSH DI

PUSH CX

PUSH BX

PUSH AX

MOV AX,0

MOV BX,0

MOV AL, [DI]

MOV BL, [DI+1]

MUL BL

CBW

MOV [SI] ,AX

MOV AX,0

MOV AL, [DI+2]

CBW

MOV BL, [DI+3]

DIV BL

CBW

ADD [SI], AX

BUF2, 2

JIS2: POP AX POP BX

POP CX

POP DI

POP SI

RET

JIS ENDP

OUTZH1 PROC NEAR PUSH AX

PUSH BX

PUSH SI

PUSH CX

PUSH DX

MOV CX, 5

LEA SI , BUFM

ADD SI ,5

MOV DX, 0

MOV BX,10

A3: DIV BX

XCHG AX , DX

ADD AL, 30H

MOV [SI] , AL

MOV AX , DX

MOV DX ,0

DEC SI

LOOP A3

LEA DX , BUFM

MOV AH , 09H

INT 21H

POP DX

POP CX

POP SI

CS:CODE,DS:DATA, ADD

POP BX POP AX RET

六、实习心得:

通过汇编上机操作, 将微机原理课本上的一些概念化的东西 在计算机上得以体验,使得大家更加清楚 8086 的工作原理和各 个部分的作用和原理, 运行顺序等更加具体的信息。 通过汇编来 实现一些更为具体, 更为直观的信息和计算。 是我们能够独立自 主会变出一套实用的程序。

通过理论和时间综合训练 , 来提升自己的汇编能力,综合以 前学过编程语言和知识来最大限度发挥自己的能力。

OUTZH1 ENDP CODE ENDS END BEGIN

相关文档
最新文档