a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 42|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
 请编制程序,其功能是:内存中连续存放着10个十六位二进制数,每个数的序号依次定义为0,1,…,9。统计每个数中位为0的个数N0,N1,…,N9(均用一个字节表示),然后按序定义将N0至N9存入内存中,最后再用一个字节这10个数中为0的位的总数n(n=N0+N1+…+N9)。  例如:
  z3 ^& k& q1 I. |7 {& d  内存中有 0000H,000FH,FFFFH…/ l( K' e/ `6 a5 y
  结果为 10H,0CH,00H…最后为n' e- X9 G& i5 T' X2 ?$ v1 |
  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。0 c* o2 u2 F7 R0 p% D
  填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
0 Q2 I7 N& T/ J! {- l  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。- ~: Z+ {5 ^6 j; ?+ I. {4 x
  试题程序:" @6 ~* Q; `8 a. G  N, D
  EXTRN LOAD:FAR,SAVE:FAR
" \$ q2 ?& A# Y4 \6 d. L  N EQU 10
+ J6 U* v# k$ S# Q: \( y+ m7 p  STAC SEGMENT STACK
+ t8 ~% _! H! n2 O% M; [9 W$ y  DB 128 DUP(?)
& I" \$ g2 r. I  x" A  STAC ENDS
0 J" T6 P; n2 p/ D- q! Y9 `  DATA SEGMENT1 x! w; [$ H! V
  SOURCE DB N DUP(?) ;顺序存放10个字节数
, [. o6 A( F) ^) a& j  RESULT DB N+1 DUP(0) ;存放结果
+ \+ J* I9 T6 z  NAME0 DB 'INPUT1.DAT',00 N$ r8 m3 N$ d- M) b. z
  NAME1 DB 'OUTPUT1.DAT',02 f8 U( U& O2 ^* b3 V
  DATA ENDS
+ T& r6 B9 x' ^( w  CODE SEGMENT
, O& B2 q9 r- V; P/ [5 r  ASSUME CS:CODE,DS:DATA,SS:STAC9 p1 U$ j$ z* x( v6 j
  START PROC FAR
# d% s  [+ R7 I+ P2 h9 u  PUSH DS
, U7 [& w" {8 b% R# a6 d: S  XOR AX,AX5 W0 b4 u# z& u) s" G/ p! \
  PUSH AX/ b$ }( N7 s/ z7 A% ~5 L
  MOV AX,DATA
# p/ E+ Q! J0 s% n( w- T  MOV DS,AX/ H" Q6 X: @8 |4 v1 C! d
  LEA DX,SOURCE ;数据区起始地址
! s; ]) S1 p# n# b  LEA SI,NAME0 ;原始数据文件名4 \$ h# H' L+ J' V4 Y
  MOV CX,N*2 ;字节数
$ J, o9 W* c0 o8 h  CALL LOAD ;从'INPUT1.DAT'中读取数据
. V7 o, x3 N7 v7 k& }4 [7 j) Z  ;****BEGIN****
0 q1 S8 o9 m# H( b1 K  MOV DI,OFFSET RESULT6 @% e! S0 K  I& ^2 V. {+ S* Z0 p
  MOV CL,N
4 P+ W" ^/ i8 C: F" y  MOV BX,0$ s/ y* E; ]. q3 G! z0 \2 l& {
  MOV DH,00 ?- i' E3 Y$ S- ?6 u: T  v# o
  PRO: MOV DL,0
4 [  U* E5 \6 o$ T  MOV AX,SOURCE[BX]
  K# J/ Z4 h7 U+ Z+ b3 u4 U  MOV CH,_____________
, m2 O$ x3 N7 |8 }6 Q, [. N  COUNT: _________________________
! K+ ~% t! n$ l0 M+ X  ________ JUMP
2 ]6 S- S& w( h" y2 [  M: D  INC DL
, C0 Z; @; ?4 t6 p" j  JUMP: DEC CH  A  }' K: s( R5 ?6 j& E/ k; W+ a
  JNZ ________________% c# k, I7 h. t4 u1 N
  MOV [DI],DL- A( x/ X6 O7 T% j  m: {% x, p
  ADD DH,DL* g3 J5 `0 c; [5 `: D2 W3 ^
  INC DI
: ?$ D* y* H  u: O+ o  ADD _________________( F  n( n3 b( M/ \! r) Q5 z
  DEC CL
  z6 Z  A; X0 x# y: z( q0 N  JNZ PRO# \9 N/ j! y& S, x- X( y  \+ C
  MOV ________________
" \8 P$ R4 G! D1 r  ;****END****" y3 @! f, E1 ?3 Y
  LEA DX,RESULT ;结果数据区首址; g9 u9 T3 w, U: _) R
  LEA SI,NAME1 ;结果文件名( `$ n" e& }& H) ~6 z
  MOV CX,N ;结果字节数
- Z6 A. E% I' z2 \  d4 S" `  CALL SAVE ;保存结果到文件
! B- }6 J( m. \& g  RET
. s, e& ^- A# |8 `  START ENDP# {* k/ d. B! e* {, k; }
  CODE ENDS
- I6 q# ?( y1 I. m+ E& [9 s4 p  END START
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-8 18:10 , Processed in 0.292708 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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