a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 67|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
 请编制程序,其功能是:内存中连续存放着10个无序8位有符号二进制数,此十个数中正数和负数各为五个,现按就近原则将该10个数排列成负数和正数相同的序列(第一个数为负数)。  例如:
# m( Y4 s( e5 n# B  内存中有 81H,88H,A3H,03H,47H,E2H,76H,D8H,13H,50H
! v6 V6 S/ Y; J* Q) `' E  结果为 81H,03H,88H,47H,A3H,76H,E2H,13H,D8H,50H. I$ n  k: G8 v& a4 j
  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。9 x0 R" G4 {0 A9 R' N
  填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。/ }9 X+ b# ?7 P' C% G. N
  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
# |3 v- D: v" y2 r  试题程序:+ ^" L5 r) Q# o6 W
  EXTRN LOAD:FAR,SAVE:FAR
6 V" A+ g1 P; L  \  N EQU 10# d& F$ m2 A7 s5 l* }6 G
  STAC SEGMENT STACK
0 Z6 V+ F: _# @9 I1 E. d* i/ t  DB 128 DUP(?)" f0 c/ C$ B3 P1 h  B
  STAC ENDS
5 Q& `5 ^& W$ l4 f+ r1 B* P# ?  DATA SEGMENT9 R' V9 W- A8 c* ?( g
  SOURCE DB N DUP(?) ;顺序存放10个字节数
& X. y/ X" C$ m/ K. S7 l  RESULT DB N DUP(0) ;存放结果
6 _9 O" ~6 u- V7 A; U% [  z  NAME0 DB 'INPUT1.DAT',0
& [6 K% S4 n; t: [1 I. p4 j  NAME1 DB 'OUTPUT1.DAT',0
# U8 t3 G7 m; n6 F- f* q  DATA ENDS6 L+ ^4 d% {, X2 f. S
  CODE SEGMENT
0 l$ S: C4 U' P+ c0 M  ASSUME CS:CODE,DS:DATA,SS:STAC
( B" i/ V9 X( A* c+ g: H  START PROC FAR1 i9 }. Q( o8 [+ q3 |9 w9 f  }
  PUSH DS
. n3 Z0 [& @) D' L/ w. J  XOR AX,AX
. {7 Y: g4 T: w, q  PUSH AX
( f2 Y8 y& U- T0 v( T( Y: ?  MOV AX,DATA: E& D, A! }6 P  [* m; h* Z
  MOV DS,AX
/ O9 E) n# r4 M  w  LEA DX,SOURCE ;数据区起始地址
2 q5 z& w) \9 Y. y! J& n1 s  LEA SI,NAME0 ;原始数据文件名1 T. r+ ?4 v: E7 a. R+ r
  MOV CX,N ;字节数
* S: P* E$ ?3 Z% y/ Q  CALL LOAD ;从'INPUT1.DAT'中读取数据! g9 J4 _( f" t; g
  ;****BEGIN****: ], k- y. ~9 |5 _
  LEA DI,RESULT
# @9 {4 a6 S3 V; S  MOV BL,___________2 @, T: h# |7 C  m
  MOV CX,10
* c/ H5 r4 V1 Z  AGN0: MOV DX,CX; M9 k0 E0 o7 O% }* H1 e
  LEA SI,SOURCE
3 @/ R, }: O9 P( A* F8 a; X  AGN1: MOV AL,[SI]) N- w& d$ d" |" R( j* |
  DEC DX
+ W( l; r, D  e/ F- \) w- o5 B8 P4 P  PUSH AX
# h6 e0 X9 u5 N  h! \; p) G- _  AND AL,80H
0 S2 S7 y# K/ u  CMP _________,________
4 g- Y! ]: p. F2 l  JE STORE1
8 c: I: U9 Y" E2 P) J. v  POP AX
5 D8 C+ ~# L' j1 ?2 M2 C, [  INC SI
; x' ]* u! u# A# a4 x9 p# g4 d' ?. O  JMP AGN1$ U3 M; N9 _( t4 _' B/ G, q
  STORE1: POP AX0 ~" i7 G% k4 t$ _2 ]. _  O
  MOV [DI],AL
9 H* f) H! K2 R. U. Q- I  INC DI# m8 U# q  `3 K' f
  ADD ________,80H
' I6 T( G! R& X# H) j5 @  ARRY: CMP DX,0* ]4 u5 H! T/ e' ^
  JZ NEXT! ~2 V& {* M" t9 h* Q3 F0 }
  INC SI, P4 K! x5 W: B2 }$ F4 Z$ j
  MOV AL,[SI]8 R8 M' \/ s% f' F3 F  x
  ________ SI1 B) L: E- P0 ]* W! a* W) c
  MOV [SI],AL9 m6 l- s* @) c9 V! m% c
  INC SI
$ s3 J$ R( P1 k' {0 f; \2 Z0 c9 r; J  DEC DX
5 M( K1 _4 Z" \( [+ ]  JMP ARRY
2 G" N5 J  m. E& j  NEXT: LOOP AGN0; l9 K; D: Q. e  M
  ;****END****
4 M1 x+ E) s' R. [# k  LEA DX,RESULT ;结果数据区首址
/ `( o7 B4 [' F  LEA SI,NAME1 ;结果文件名
2 R1 Q/ ~9 ^; u( o  MOV CX,N ;结果字节数& S. _0 L3 t5 D) J) z1 k
  CALL SAVE ;保存结果到文件* Y7 _5 N9 C( Z* w, R6 I, @9 n
  RET5 T6 v. V! {+ k5 B
  START ENDP
0 |0 T9 k: d: \; c$ `8 F$ E' |  CODE ENDS
! }  d! t' Y, f) J! J  END START
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 10:58 , Processed in 0.217878 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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