a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 75|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
  请编制程序,其功能是:以SOURCE开始的内存区域存放着若干字节的数据,以'#'作为数据的结束标志。将其中的空格滤除,对每个非空格数据的最高位清0后依次存放到RESULT指示的区域,其后存放一个空格符(20H),然后存放原来的空格个数,最后仍以'#'结束。
! p/ O8 f% R* ?9 {1 n6 J  内存中有 45H,20H,87H,20H,A5H,32H,20H,20H,20H,23H
3 N. }( l7 v% F, K9 @, x  结果为 45H,07H,25H,32H,20H,05H,23H
3 f3 D9 r5 \, u$ o  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
% J  r# w7 [, p" z& a1 }+ f  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。' ]$ ~1 Z) U9 W7 i
  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
$ N' g8 O9 J6 {! O# u( G+ d# |3 \8 G  试题程序:
+ v& D9 J; K! P7 e  EXTRN LOAD:FAR,SAVE:FAR
! u/ R& O/ @' g9 v8 `6 n, X  N EQU 20
3 J2 i7 Q3 [/ d  ESC_CODE EQU 278 \) W% v/ [' Y7 s: }
  STAC SEGMENT STACK
4 F3 D0 \, E: m" T5 l% G* b8 j  DB 128 DUP(?)
, z: [$ V: F6 S5 P  j1 m6 c) _1 w; }( j  z  STAC ENDS
! ^8 M; s9 g$ h  DATA SEGMENT0 @: U, v- w6 @
  SOURCE DB N DUP(?)
3 `. Q$ c: Y* l& x  RESULT DB N DUP(0)
+ |8 n1 H( w( S  W9 t1 E  NAME0 DB 'INPUT1.DAT',0. e3 h: r7 Q6 L/ F8 l, {" Y7 n
  NAME1 DB 'OUTPUT1.DAT',0
) d6 ^: ?; i3 A" ~5 c  DATA ENDS4 A3 h! S8 L( \4 H4 J, c7 d- `. N4 a  @
  CODE SEGMENT
3 j7 @6 i5 e. u* o  ASSUME CS:CODE,DS:DATA,SS:STAC
8 U( I5 B  J1 {; U, R: H7 J6 h  START PROC FAR
' J( J- M5 F9 q8 o  PUSH DS, \) K, M* n$ q$ p" l  @" v
  XOR AX,AX
* a9 }; f$ h8 z6 o( f  PUSH AX" ^5 q, i0 v* R6 @/ n) u! `
  MOV AX,DATA5 @( y  i: p0 h- E. `! M# I- ?* T
  MOV DS,AX
7 D1 y+ g/ G" K* {) b  MOV ES,AX ;置附加段寄存器
& b2 B3 ], C, o* G& |' P  LEA DX,SOURCE ;数据区起始地址
. M3 k8 T; Q; W# k' }/ v$ I9 o% H  LEA SI,NAME0 ;原始数据文件名
; x6 a6 [! k' R  MOV CX,N ;字节数
& A# }, H8 l2 v/ V  CALL LOAD ;从'INPUT1.DAT'中读取数据
4 H/ G! Y2 B8 ?  ;****BEGIN****: N, E9 ]7 `+ i- u" \
  LEA SI,SOURCE
9 Z+ {' z2 E3 n; s& S- ?$ l/ v  MOV DI,OFFSET RESULT5 ~/ }  e/ B! d! ~9 R# \$ ?. |' Y/ q
  XOR BL,BL
  m3 k) J2 O! W) f; K  AGN1: MOV AL,[SI]
# e% C, O  c# T0 R8 c$ o. V5 K  INC SI
1 o  F) u/ J# P; t( G6 D8 n  CMP AL,' '. I) H1 b+ ~7 V% o6 x
  JE __________________+ w# x& ~4 W8 a( g8 T) D, p$ `
  JMP AGN2
$ I5 l; d4 `4 k8 N9 J: _2 h6 [  AGN11: INC BL% V3 H9 v- h; N3 V
  JMP AGN1
0 x' ?7 n( s2 {+ i0 e  AGN2: CMP AL,_______________) A! ^$ U' c  n. o7 P
  JE DONE2 Q! D( W  C2 c" h
  AND AL,7FH3 o3 |* H: X7 X$ u2 C; U) B
  MOV [DI],AL
3 n# ^7 @) B- V$ E6 k# p3 y  ___________________________
4 o, b$ X* i- p  ___________________________, f* Y5 g! H' \+ v
  DONE: MOV AL,_______________
; k: O) s4 h2 o6 Q: R  MOV [DI],AL
1 d0 p* V9 P+ P7 B, k& X# X  P4 J  INC DI
4 B  X( X, z( ]! n! q' X  MOV [DI],BL
' `  Z' F' `# P3 t8 D  INC DI
! R; ]3 S! B8 G0 v  y  MOV AL,'#'1 r% V( l" b) i( X  D  k/ L
  MOV ____________,AL0 V. M& M3 x0 Q6 [
  ;****END****
/ i+ u, Y9 Z) \0 M$ F- T$ Y  LEA DX,RESULT ;结果数据区首址" |, _4 |9 u/ v) O9 y8 T9 O5 V% z
  LEA SI,NAME1 ;结果文件名, N; l/ b6 l. n3 z6 V1 W( W2 f* B
  MOV CX,N ;字节数
1 @# Z: f0 [% t  CALL SAVE ;保存结果到文件' [( m. p1 B; t. C
  RET
2 U7 i! r; J( J: `6 i3 Q5 j  START ENDP9 q% b, u% n* z! ^
  CODE ENDS
9 @0 \; J5 U5 v4 F" f( [2 j  END START
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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