a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 71|回复: 0

[PC技术] 2011年计算机三级考试PC技术考试要点(16)

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
 十、汇集语言程序设计的基本方法$ a/ [& T  s( B* R" S9 k5 x# t% ~& P
  (一)概述
) v1 }& U6 N) U  G  编写汇编语言源程序的基本骤是:* V9 q# Y$ |0 C' H$ ?! F- U+ X6 G" z
  (1)分析问题,建立数学模型;
/ [0 [+ t2 A2 N5 @8 ^  (2)设计算法,绘制流程图;
2 A1 [3 J* Z: K0 N) i/ c  (3)程序编写;7 e! V- b% J7 r- e1 `
  (4)上机调试。& E2 b. h( j" ?# C& d
  (二)顺序结构程序设计
4 x5 \# h! Z" }# a  顺序结构程序是最简单的程序结构,它的执行顺序和程序中语句的排列顺序完全一致,会自上而下线性地顺序地进行,这种结构的汇编程序通常是比较简单的程序。在用汇编语言程序编写的程序中,存在着大量的顺序结构的程序。6 T) @/ z* `5 k6 z7 c) `4 ^% C; O
  (三)分支程序设计 1.分支程序的结构形式9 i: G9 B# S& u2 X# ~+ S+ ~
  分支程序的结构大体上有两种形式:两*分支结构和开关结构。$ A( @2 ]) `9 D  R  u$ R
  2.分支程序的设计方法4 }+ v  z. m6 d* a
  在汇编语言中,程序分支的实现是通过转移指令来完成的,即条件满足与否的判断和程序执行顺序的确定,都需要依靠转移指令。分支程序的基本设计方法很多,主要有三种:利用转移指令直接分支法、跳转表达法和逻辑尺法。% J% i& o( Y4 z: H
  (四)循环程序设计1.循环程序结构8 A1 `, S3 R& ^
  循环程序一般由循环准备(初始化)、循环处理(循环体)、循环控制与修改、循环结果处理等部分组成。
9 \) `/ z1 A1 \# q. N5 g: O0 K  2.循环程序设计) J7 H8 M8 T- o0 d
  (1)计数控制循环程序1 U. K& d9 e7 N/ a1 R
  计数控制的循环设计非常简单,其特点是循环次数已知,利用某个寄存器或存储单元作计数器,由计数器的值控制循环结束。计数的方法有两种:增量计数和减量计数。计数器置初值后,每循环一次,计数器的值按步长值进行加减,直到某一值时,循环结束。, O% x/ _7 h% w8 D' b$ r2 x9 t. X. I
  (2)条件控制循环程序" w9 W  P3 K3 h  Z" r5 F
  当循环次数未知时,可采用条件控制的方法,编写条件控制循环程序。在程序设计中,应首先确定循环控制条件,每循环一次,都要对条件进行检查。若满足条件,则循环结束,否则继续循环,直到满足条件为止。(3)多重循环程序设计6 E! W7 v! q5 Z' q3 }
  多重循环程序是指循环体中仍然有循环程序,又称之为循环嵌套。
# [( `5 \, m1 }7 d$ y& @: T  (五)子程序设计1.子程序一般以文件形式编写,并常以过程形式存放在代码段中。
9 p; a% l+ M8 k; m$ ~" I  子程序文件通常由子程序说明和子程序本体组成。子程序说明通常包括子程序功能描述(名称,性能,执行时间等)、所有寄存器和存储单元、子程序入口和出口参数及是否又调用其他子程序等。说明部分应简明、确切、使人一目了然。子程序的结构一般包括保存现场、依入口参数从指定位置取加工信息、加工处理、依出口参数指定位置送出处理结果、恢复现场和返回调用程序等部分。形式为:& M% W4 Z6 W- q- {
  子程序名 PROC
( u. D$ c- A0 x9 X+ {+ X; D  ┆
. C) {& D3 G% H& e  RET
, D- @' A, Z0 v5 Q; H  子程序名 ENDS
% [2 ^! @+ W& ?+ i2 q  即一般用过程定义语句将子程序定义为独立的程序段,使之具有NEAR属性或FAR属性,使得程序结构清晰,增加可读性。4 K( g4 b' p4 G  V; c8 @4 @
  2.子程序的调用和返回
  Y5 m  s- ~/ x  主程序调用子程序使用指令CALL。根据CALL获得目标地址的方法,有四种调用方式:段内直接调用方式、段内间接调用方式、段间直接调用方式和段间间接调用方式。为了能正确返回,不管哪一种调用方式,都需要把断点(即CALL指令的下一条指令的地址)入栈保护。同时,CALL指令的类型必须与RET指令类型相匹配。
. _3 @3 L1 D: b) p( F  主程序调用程序方式分直接调用和间接调用两种类型,每种类型又分为段内调用和段间调用两种方式。
: r6 q" k% R" U& C  3.主程序和子程序间的信息交换
5 H$ f4 e! H" S9 E  子程序中允许改变的数据叫参数。参数有入口参数和出口参数。主程序调用子程序之前必须向子程序提供一些参数,而子程序执行完毕后又要将执行结查提供给主程序使用。参数传递的方式一般有3种,即用寄存器传递参数、用参数表传递参数和用堆栈传递参数。不论采用哪种方式,调用程序和子程序都必须互相呼应。子程序需要在哪里取参数,主程序就应将参数送到哪里,并且要注意参数的先后顺序。# o. O# m7 ?; N8 S" x4 G
  4.递归子程序和子程序嵌套
' a; G2 m0 q6 H! W8 F; y3 t1 a3 B  在子程序调用过程中,子程序调用该子程序本身称为递归调用。递归分直接递归和间接递归两种方式。直接递归子程序的结构为:6 r( t; N3 r- l2 I+ L' U: p/ U+ `
  SBC PROC
3 a$ f3 U4 H* s% {3 c2 B; Z  ┆
/ S; m/ K0 K  l0 M! E# R, i0 B  CALL SBC) ^# y/ N  ^/ s
  ┆3 Z6 q  e; f' e9 c% s
  RET
& J- e( A0 u, |' a  SBC ENDP5 ?' z, l& v; n
  间接递归于程序的格式:# R$ @" T* U% l& s
  SBC1 PROC
; `3 G4 R2 t8 B$ x* B9 }* A  E  ┆* ~, Z) g9 E( J* q
  CALL SBC2
* C+ G( d* z. K; T  ┆- f2 ?6 S! F  R4 {, K- F
  RET/ L; ^% T4 @, A
  SBC2 PROC
" R! P7 L8 \! t+ m0 n8 }( |+ Y+ }  ┆: P7 W# k* E. {+ q& f6 e
  CALL SBC1  U& a$ O& z4 e6 L+ _
  ┆
6 q) k4 b& E, K5 A5 P  RET
( \+ @4 P! ?; P- J  设计递归子3 V# ]6 D9 A6 y/ F( S
  程序的关键是防止出现死循环,注意脱离递归的出口条件。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-8 14:29 , Processed in 0.310398 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表