a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 70|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
 十、汇集语言程序设计的基本方法6 V8 }) J2 H8 q) h9 ^
  (一)概述. w9 S, a$ _6 a' ]) L! l
  编写汇编语言源程序的基本骤是:; w6 Z  `1 D+ Z* G9 A" o! v- {
  (1)分析问题,建立数学模型;
( t" r3 \- M+ K% M# O, L6 h; u  (2)设计算法,绘制流程图;3 ~7 X, y5 f" O* ?8 l% o
  (3)程序编写;
( w# K& a4 k9 j/ W  (4)上机调试。& Y3 B( R6 F8 N' N  J
  (二)顺序结构程序设计; z5 m5 t0 `6 p' R
  顺序结构程序是最简单的程序结构,它的执行顺序和程序中语句的排列顺序完全一致,会自上而下线性地顺序地进行,这种结构的汇编程序通常是比较简单的程序。在用汇编语言程序编写的程序中,存在着大量的顺序结构的程序。" x% r, {" p' V) K' X; E- I( ?0 m- A
  (三)分支程序设计 1.分支程序的结构形式
, s7 z: p; g7 i+ j" y. y  分支程序的结构大体上有两种形式:两*分支结构和开关结构。  L; `; ^: X  h
  2.分支程序的设计方法
3 U4 d) \3 F# F) t) N, {  在汇编语言中,程序分支的实现是通过转移指令来完成的,即条件满足与否的判断和程序执行顺序的确定,都需要依靠转移指令。分支程序的基本设计方法很多,主要有三种:利用转移指令直接分支法、跳转表达法和逻辑尺法。
9 w- i( A/ o. G  (四)循环程序设计1.循环程序结构: M  j1 [/ U) U0 V% l
  循环程序一般由循环准备(初始化)、循环处理(循环体)、循环控制与修改、循环结果处理等部分组成。- U% p0 f! W! X& x2 ^8 X$ I6 G2 L
  2.循环程序设计/ v& @4 C! O$ T
  (1)计数控制循环程序
  C: e9 A) W$ {  计数控制的循环设计非常简单,其特点是循环次数已知,利用某个寄存器或存储单元作计数器,由计数器的值控制循环结束。计数的方法有两种:增量计数和减量计数。计数器置初值后,每循环一次,计数器的值按步长值进行加减,直到某一值时,循环结束。& V5 ^8 Z" [  H7 X  P$ ^. s  j
  (2)条件控制循环程序
# a, e0 T6 X. i+ Y1 X  当循环次数未知时,可采用条件控制的方法,编写条件控制循环程序。在程序设计中,应首先确定循环控制条件,每循环一次,都要对条件进行检查。若满足条件,则循环结束,否则继续循环,直到满足条件为止。(3)多重循环程序设计
' [. e! h' O8 w& A1 d0 @7 E  多重循环程序是指循环体中仍然有循环程序,又称之为循环嵌套。* N, R# Y. m  T& d
  (五)子程序设计1.子程序一般以文件形式编写,并常以过程形式存放在代码段中。' ]2 ]% [# z' Q# T
  子程序文件通常由子程序说明和子程序本体组成。子程序说明通常包括子程序功能描述(名称,性能,执行时间等)、所有寄存器和存储单元、子程序入口和出口参数及是否又调用其他子程序等。说明部分应简明、确切、使人一目了然。子程序的结构一般包括保存现场、依入口参数从指定位置取加工信息、加工处理、依出口参数指定位置送出处理结果、恢复现场和返回调用程序等部分。形式为:1 K& b$ n1 _" r4 h1 Z: I
  子程序名 PROC
" B5 c2 i/ \& Q3 m) v7 i  ┆
" F0 k* k. |3 c) G3 v  RET
1 b; P0 A9 K; o6 }+ a4 _  子程序名 ENDS
7 c6 S9 N) h+ d; O! `* x* @  即一般用过程定义语句将子程序定义为独立的程序段,使之具有NEAR属性或FAR属性,使得程序结构清晰,增加可读性。
, F: J5 u- j( Y/ @, [: V5 k% H  2.子程序的调用和返回
8 i- T3 E6 ^) |  主程序调用子程序使用指令CALL。根据CALL获得目标地址的方法,有四种调用方式:段内直接调用方式、段内间接调用方式、段间直接调用方式和段间间接调用方式。为了能正确返回,不管哪一种调用方式,都需要把断点(即CALL指令的下一条指令的地址)入栈保护。同时,CALL指令的类型必须与RET指令类型相匹配。
7 T# g& ?% G% f8 Y& a  主程序调用程序方式分直接调用和间接调用两种类型,每种类型又分为段内调用和段间调用两种方式。" m3 f' H3 S; \) m0 x
  3.主程序和子程序间的信息交换; Z5 P- {. I5 D3 m% ?$ i; S" R
  子程序中允许改变的数据叫参数。参数有入口参数和出口参数。主程序调用子程序之前必须向子程序提供一些参数,而子程序执行完毕后又要将执行结查提供给主程序使用。参数传递的方式一般有3种,即用寄存器传递参数、用参数表传递参数和用堆栈传递参数。不论采用哪种方式,调用程序和子程序都必须互相呼应。子程序需要在哪里取参数,主程序就应将参数送到哪里,并且要注意参数的先后顺序。1 t' G  \9 r3 [9 @9 n: m1 A, @" n
  4.递归子程序和子程序嵌套- x0 E3 @8 c* l, @
  在子程序调用过程中,子程序调用该子程序本身称为递归调用。递归分直接递归和间接递归两种方式。直接递归子程序的结构为:8 P8 b% F4 D/ u* U' {7 y2 |
  SBC PROC2 c" \( a( S' l) N# ^
  ┆
, u/ b3 i5 |; C* m" ~% B  CALL SBC
2 ^+ W- |, y/ h' J- l+ [2 Z  ┆0 E' A9 T; P/ Q- l% M$ H: Y/ w$ W
  RET. H# m6 `. H9 A3 t" Y5 i! G
  SBC ENDP
& K5 M- Z  T! L+ P2 }+ _9 }( F/ F  间接递归于程序的格式:, A: j/ z) R2 D4 L0 ?
  SBC1 PROC* E# N( K* u2 ]; u
  ┆
; m5 M5 K0 [) ^6 y0 }8 J- o. v: }  CALL SBC2
# {( o/ c/ u# `+ }" \7 L  ┆* y+ R$ ~3 I7 N) ?0 P& ~7 N" X& L) T
  RET
' F% p5 Y0 X  ?0 X/ W. M3 X4 @, W  SBC2 PROC; ~0 N& \8 L  `  }5 S3 b
  ┆
! O4 _( C+ z" h  CALL SBC1  P; a8 }+ V8 p) |& f- M9 H
  ┆
2 a# A% p" i7 Q' W4 L/ }  r- I  RET
; Y8 V2 O" A2 _/ n" Q7 t6 p  设计递归子
) r' J+ }* R- g7 q- S$ L  程序的关键是防止出现死循环,注意脱离递归的出口条件。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 08:22 , Processed in 0.380083 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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