a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 46|回复: 0

[PC技术] 2011下半年计算机等考三级PC技术上机100题(86)

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
  请编制程序,其功能是:设内存中有一个由20个八位无符号数组成的数组A(下标从1开始),试求出一个新数组B使/ U# B, J* \6 U0 I, A2 A! Z1 a0 {
  B(I)=A(I) I=1,206 Y4 b3 ~) ]- T" ~# s+ n; [
  B(I)=(A(I-1)+2*A(I)+A(I+1))/4 I=2~19
& n  S6 d. y. o$ t0 Y  结果仍以八位无符号数存放。为了得到尽可能高的精度,要求最后做除法运算。
* w3 r  ]2 z" c. R0 v1 [  例如: A为 39H,C6H,D8H,94H…+ }2 e, l. Q7 n1 o
  B为 39H,A7H,C2H…, y1 X& H* \; V
  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。* u% J- {6 i  A6 G6 N
  填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
9 g2 w& F+ u+ D" _  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。+ y. R$ b' ^, U$ J$ l5 R' Q
  试题程序:8 s0 Y' Q0 n& M9 {  f
  EXTRN LOAD:FAR,SAVE:FAR9 H/ j& c. T# C- c
  N EQU 20
* d, G1 {) Z. \$ o5 L+ R$ A: H+ _$ q  STAC SEGMENT STACK
' V% M0 Q, q2 o1 D& M! r" E  DB 128 DUP(?)  a. E$ F6 J" {: v: ^
  STAC ENDS& J; F7 V3 F& x8 R8 C% v; A
  DATA SEGMENT- l( |5 N, [& c
  A DB N DUP(?)
9 H  V5 h. }# _5 o) s/ t- l7 N  B DB N DUP(0)& c" M( j$ Z; v  I
  NAME0 DB 'INPUT1.DAT',0& W+ R# a/ u# C1 M" ^; R7 V6 ?
  NAME1 DB 'OUTPUT1.DAT',07 I' Y8 U8 o* S% |/ {/ C! m( l
  DATA ENDS
8 u& w+ t7 s6 v; n. d- m  CODE SEGMENT$ Y* x# D) P5 A' c. Y7 X2 x
  ASSUME CS:CODE,DS:DATA,SS:STAC2 ~1 t' h. a6 l& g' B
  START PROC FAR
0 f* h+ q/ k4 ~0 E( A  PUSH DS
! X! j. L8 j# g; s; I: P$ z( r  XOR AX,AX
4 K' w0 V$ {2 M4 g4 E  PUSH AX
% n( t+ ]+ O( @$ {  G# l  MOV AX,DATA& g( C# |. |- l1 W
  MOV DS,AX
8 r, D2 o/ e$ }- F& \) M3 ~  LEA DX,A ;数据区起始地址
* L) K1 u' V# C& H) j  h  LEA SI,NAME0 ;原始数据文件名
- Z$ V5 h2 q) J& u2 @  MOV CX,N ;字节数/ e" B: g( G: I7 ?5 _! C
  CALL LOAD ;从'INPUT1.DAT'中读取数据
4 P( q7 A8 a( |9 f- R3 ]  ;****BEGIN****
0 n7 V- B- S* c* j  LEA SI,A, x* I, k. R; Q8 B
  LEA DI,B
6 h: P4 S, A6 u( ]+ r+ v4 Y2 r  MOV AL,[SI] ;B[1]=A[1]
; O- ~! a% j; s+ I! y! W7 J# a  MOV [DI],AL" h: _9 p( u5 ^  \1 G
  ________________________ ;B[N]=A[N]
9 V! ^7 P8 t4 }# C3 \8 a9 f# L  _________________________3 ?8 H( Q, [, a, N
  INC SI9 g/ x' W" M+ A. x: G
  INC DI
# T5 k8 O, w# N8 b: k3 O  MOV CX,_____________; u) K. c& ~# [) M
  L0: XOR AX,AX
4 h9 O" o( `( s# @  P. ]  XOR BX,BX
1 r4 R( v: E3 O6 o' V7 N+ X  XOR DX,DX. t$ g9 h, [$ Q7 x/ g  ^" g
  MOV AL,_____________
& d- L6 @/ v( l; v7 i  MOV BL,_____________1 [( i# r$ I+ r& M
  MOV DL,_____________
; \; J+ @  c/ x( D2 h; ?' }1 i7 d1 W" ?6 P  ________ AX,1
/ M+ N/ e  t  N! K* X. A  ADD AX,BX
; }- F; k' }) I7 ~$ }! a5 M  ADD AX,DX
6 P* A8 O8 u1 f9 M1 W  SHR AX,19 t0 z; N# f4 P9 ]+ p  I. q
  SHR AX,1
" H& d9 m6 {& y9 b  w9 R6 ^2 t  MOV [DI],AL+ t1 a4 R7 i$ D. ]  D
  INC SI8 {1 a0 R8 t6 x% m$ ?
  INC DI
! e+ T/ v& p0 n1 e  LOOP L0
3 }4 ?! @& g2 A% V  ;****END****: n2 o& f: L* c; g7 y2 D! G
  LEA DX,B ;结果数据区首址, @1 u( g& C$ |
  LEA SI,NAME1 ;结果文件名! \0 k, q- K( L* I7 ]' n' ~- m) U
  MOV CX,N ;结果字节数
- }- L8 K& P2 t6 ?  CALL SAVE ;保存结果到文件
7 x6 x3 E& u, u  RET; Z1 l+ e. r" Y* _: x- w" `
  START ENDP! ^, r2 v7 S# `) e8 c4 r. C6 W
  CODE ENDS2 \/ {" w9 h& W! P( y1 {! F, Q
  END START
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-2 23:16 , Processed in 0.271975 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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