汇编语言程序设计步骤 有那几步

汇编语言程序设计步骤 有那几步,第1张

汇编语言程序设计步骤:1、 分析问题,抽象出描述问题的数据模型 2、 确定问题的算法思想 3、 画出流程图或结构图 4、 分配存储器和工作单元(寄存器) 5、 逐条编写程序 6、 静态检查,上机调试 例:编程查找考生的最高分,假设所有考生分数已存入计算机内存.1、 分析问题 根据条件、特点、规律 →数学模型 本例分数已给定为0~200之间的整数集合(考虑加试分) ,记为{S},找max{S}(注:简单问题不一定写数学模型) .2、 确定算法思想 最好利用现成算法和程序设计方法,若无,则需根据实践经验总结算法思想.如本例,从成绩单第一分数往下看,边看边比较,记住较高分,舍弃较低分,直至看完,最高分存于 脑中.归纳算法思想:建立数据指针并指向数据区首地址.将第一数取入寄存器(如AL) ,与下一数比较,若下一数大则将其取入寄存器,否则调整指针,再与下一数比较,重复上述 直至比较完毕,寄存器中即最高分.读分数用MOV指令,比较用CMP指令,分析判断用条件转移指令.3、 画流程图或结构图 有逻辑流程、算法流程、程序流程等,复杂问题需画模块结构.本例简单,只画出程序 流程图(用模块化结构的N-S流程图表示) :本例的N-S流程图 图中初始化包括:设一个计数器,将分数个数减一后送计数器,每比较一次减一,至 零查找结束;建立一个指针指向数据区.开始 初始化 取第一数到寄存器 与下一数比较 下一数大?是 否 取大数到寄存器 修改指针,计数次数减一 返回到循环体开始,直到计数次数为0退出循环 结束 4、 分配存储器空间和工作单元(寄存器) 定义数据段、堆栈段、代码段等.工作单元一般用寄存器.本例:分数放数据段,建100 字节堆栈空间,BX作数据指针,CX作计数器,AL放最高分.5、 逐条编写程序 DATA SEGMENT FEN DB 85,90,60,75,87,35,80,78,96,82…… ;存分数 MAX DB ;存最高分 DATA ENDS STACK SEGMENT PARA STACK ‘STACK’ DB 100 DUP(?) ;100字节堆栈 STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START PROC FAR PUSH DS MOV AX,0 PUSH AX ;为了返回DOS MOV AX,DATA MOV DS,AX ;置数据段寄存器 MOV BX,OFFSET FEN ;置数据指针 MOV CX,MAX-FEN ;置计数器初值 DEC CX ;N个分数比较N-1次 MOV AL,[BX] ;取第一个分数 LOP:INC BX ;调整指针 CMP AL,[BX] ;与下一数比较 JAE NEXT ;大于等于则转 MOV AL,[BX] ;否则取下一数 NEXT:LOOP LOP ;计数器减一,;不为零转LOP MOV MAX,AL ;存放最高分 RET ;返回DOS START ENDP CODE ENDS END START 6、 静态检查,上机调试 选用指令尽量字节少,使其执行速度快.易错处应重点查,如比较次数、转移条件等.确信无错后方可上机调试.

可以,汇编是低级语言,神道,神人才学习的,疯狂的程序员作者绝影大哥就是从汇编学起的。 C是中级语言,简约而不简单,学习的话花个四五年时间的要。 其他很多高级语言新生可以学习,比较容易的都, 不过我还是喜欢C语言,一直在坚持着学习。天天去CSDN看看,有收获的。

1.计算U=(X+(Y*Z-100))/W

其中:X,Y,Z,W均为十六位有符号数。

程序如下:

DATA

SEGMENT

X

DW

10

16位变量

Y

DW

20

Z

DW

30

W

DW

40

U

DW

?,?

DATA

ENDS

CODE

SEGMENT

ASSUME

CS:CODE,DS:DATA

START:

MOV

AX,DATA

MOV

DS,AX

MOV

AX,Y

IMUL

Z

计算Y*Z,内容放在DX,AX中

MOV

CX,AX

MOV

BX,DX

SUB

CX,100

计算Y*Z-100

SBB

BX,

0

MOV

AX,X

CWD

将X符号扩展,形成DX:AX中的双字

ADD

AX,CX

计算X+(Y*Z-100),内容放在DX,AX中

ADC

DX,BX

IDIV

W

计算(X+(Y*Z-100))/W

MOV

U,AX

MOV

U+2,DX

MOV

AH,4CH

INT

21H

CODE

ENDS

END

START


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7786018.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存