a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 86|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
  请编制程序,其功能是:内存中连续存放着10个用ASCII码表示的十进制个位数,将它们转换成相应的二进制无符号字节N0,N1,…,N9,并统计N0,N1…,N9中大于等于5的十进制数的个数n。转换结果按原序存放,之后存放n(n用字节表示)。
. d6 a( Q% J7 b2 _2 o5 W, v; t4 }  例如:$ m. \% n& J/ \6 Z0 d7 I% O4 G
  内存中有 30H('0'),39H('9'),31H('1')…
( ]' y% _, q+ j" [) e  结果为 00H,09H,01H…(后跟n,n为N0,N1,…,N9中大于等于5的十进制数的个数)3 h8 {" I3 R2 R0 s# E
  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。* S1 U$ g( E3 \& E5 C
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
( R( {1 }& Q5 F% w  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。8 u7 i* C4 m/ n2 ^& j! b
  试题程序:0 j; {" E' c. f: G" c' A0 q
  EXTRN LOAD:FAR,SAVE:FAR
( N$ P. l+ Y! X5 q- V' J! g  N EQU 10  c6 s9 c8 J$ {9 k6 G
  STAC SEGMENT STACK
/ A( [% s$ ^0 G. M. ~9 E. K  DB 128 DUP(?). Q9 X" M( k: q& [# j' @
  STAC ENDS) p1 U7 Y0 B- k! h
  DATA SEGMENT- J% |$ n# Y9 T, f4 ^
  SOURCE DB N DUP(?)
3 e* C8 ]' f5 Q  RESULT DB N+1 DUP(0)& i; O: S5 H" X2 b# T+ X
  NAME0 DB 'INPUT1.DAT',0
3 L: z2 y7 T. s9 C% n# U+ G  NAME1 DB 'OUTPUT1.DAT',0
& L) Z- q  U5 T, R  k. R  DATA ENDS
9 h$ C* Y* _$ n5 ^6 R0 V9 D  CODE SEGMENT
. Q) V* p$ I1 A! Z  ASSUME CS:CODE,DS:DATA,SS:STAC! S# P; A( I+ h0 d
  START PROC FAR
/ G! c4 l+ Z( n3 c, X' O: T; d  PUSH DS+ H% d- m  I0 w3 W3 s$ q: ?
  XOR AX,AX
3 J2 U/ q7 a( U" L: n. h  PUSH AX/ [- X0 U2 u+ W, {+ \5 r
  MOV AX,DATA( v" E" O1 _0 o6 }; r1 i, w) ?
  MOV DS,AX" z1 ?; v; N6 Y6 f4 K( K5 m: P/ X
  LEA DX,SOURCE ;数据区起始地址* A5 J. @$ h: G: c. R% I! k# n  r
  LEA SI,NAME0 ;原始数据文件名
6 d5 F& |  s: N* J: U# {' t* }  MOV CX,N ;字节数
% a/ y7 `- e1 n8 g! a3 B; l  CALL LOAD ;从'INPUT1.DAT'中读取数据
, b; v0 J7 @5 L  j+ @  h  ;****BEGIN****5 e2 N) b. Z$ g
  MOV DI,OFFSET RESULT
% q5 R% b8 a8 u& \+ @' p  MOV BX,0' B0 I& r% b+ T1 O, h, S
  MOV CX,N
/ e8 ]7 U4 [. L  MOV DL,_______________
6 j6 A# z. z0 e, b# D7 @) _  PRO: MOV AL,[BX]5 l6 H- p, S# a( \2 u; r! z
  SUB AL,_______________$ X  B' O" N  z" k; @* l
  CMP AL,05  S5 m/ Z! _+ e0 G
  ________ JUMP ;小于5
2 b" K! h( f0 i6 B* n- v: M  INC __________________ ;大于等于52 y; X7 J7 H, W( u" k5 ], T) f& U
  JUMP: MOV [DI],AL9 ^2 B3 t* P/ z5 v
  INC BX. g2 y1 v$ ^5 l, W; x& P1 }
  INC DI: f9 h5 i2 l4 z. F8 ?7 ^/ X2 q, t
  DEC CX. v: ?3 @6 J# p
  JNZ PRO  L) y2 b/ _9 f% R
  ___________________________
( y" ~: ]/ y( E% N7 ], d  ;****END****
2 j6 P: ~, A5 i6 u; ^  LEA DX,RESULT ;结果数据区首址
" j+ ?% o# c1 h9 N  @: ?  ?  LEA SI,NAME1 ;结果文件名
/ n2 j& O( K% x5 s; E  MOV CX,N+1 ;字节数: ~7 ^) C* e/ z+ t; B
  CALL SAVE ;保存结果到文件
$ j' H: b0 S5 S- f  RET3 l% k. a* F& r! M6 ?/ x
  START ENDP
2 T  {- g# I9 D2 {% \3 N  CODE ENDS
# u2 @( Z9 U5 |; ?5 Y( c  END START
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 11:12 , Processed in 0.308367 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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