a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 41|回复: 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)。  例如:
- `" z4 z: A1 F3 `2 v3 H4 k  内存中有 0000H,000FH,FFFFH…$ g% d. Y: h3 M' M% i  o3 T
  结果为 10H,0CH,00H…最后为n) a/ e* A2 O% z
  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。$ G3 u8 K) |( o" {. J9 n
  填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。5 r" |; U' o. _
  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
6 r7 Q0 L7 r+ y0 Y  试题程序:
. Z( P+ p0 ]3 j. z& {3 F. F  EXTRN LOAD:FAR,SAVE:FAR
/ g- o/ r( ]: y( Q% p  N EQU 109 M$ `# ?9 {0 e8 B- |/ L. Q) g
  STAC SEGMENT STACK0 s- |$ o8 M7 G+ P/ f6 Y
  DB 128 DUP(?): ]: x" ^0 f' D, E- w% \- z- S* }
  STAC ENDS- l& v- s, `6 h& d8 r
  DATA SEGMENT
" z( ?4 L/ ]3 D* q9 `  SOURCE DB N DUP(?) ;顺序存放10个字节数
5 g$ s% X! l$ x+ d7 `  RESULT DB N+1 DUP(0) ;存放结果* E& p1 f  d, f9 j6 w$ X, D
  NAME0 DB 'INPUT1.DAT',0( g9 S6 ~* f9 b4 s( K
  NAME1 DB 'OUTPUT1.DAT',0. Y+ y9 R& h2 Y
  DATA ENDS
* {& c" g* R6 t  l  CODE SEGMENT
8 a% K8 L8 n9 X3 u( \. v. w  C6 j  ASSUME CS:CODE,DS:DATA,SS:STAC
4 d, X2 q( Q, \- C* Q. H; W8 z  START PROC FAR
) w: L- T3 |7 v  PUSH DS
' N) j+ X8 D, w/ q! v  XOR AX,AX
$ O7 @3 Y' n0 m, E+ H9 ?  PUSH AX/ B. Z3 X. S6 _& f" U! \$ {
  MOV AX,DATA" h/ x: d$ z$ M0 ~$ v. e& p- d
  MOV DS,AX  w2 f/ O7 e8 n, b& s, v9 D
  LEA DX,SOURCE ;数据区起始地址
3 b. S& \2 z0 a- F  LEA SI,NAME0 ;原始数据文件名
- D* ?% v) C( {' \# I  MOV CX,N*2 ;字节数4 I' d' u+ G- i& f4 q  d
  CALL LOAD ;从'INPUT1.DAT'中读取数据2 m- @5 x9 T. e
  ;****BEGIN****; i6 H7 g7 J% \
  MOV DI,OFFSET RESULT" F/ P7 [- E( O+ g0 Z% `) K0 n
  MOV CL,N
$ {" E) U8 a" |( A& K# R  MOV BX,04 a% o& s$ P( G
  MOV DH,0
1 r. z! s0 d' x; Q  PRO: MOV DL,0" T" P1 z% N# D  \
  MOV AX,SOURCE[BX]# ~4 ^: F% n% m4 Q
  MOV CH,_____________
; T6 V/ T3 l7 n  COUNT: _________________________
1 t. w' H0 A# ?" n+ k  [  ________ JUMP
( R% ]0 l# M- c. ]8 J4 O3 V7 o  INC DL3 z) z; ?/ }+ e3 X$ \
  JUMP: DEC CH! M6 c+ E% b( l3 Q
  JNZ ________________" q: l* l! e+ b
  MOV [DI],DL$ T' C7 F7 B* g' k) q  }" @9 p
  ADD DH,DL0 s. q6 I6 a  {
  INC DI
+ a. k, }' C0 p; `* O8 K  ADD _________________0 }  X* Q* j9 r. W5 N& E$ ?6 y
  DEC CL; `4 h2 X  |3 L3 t
  JNZ PRO
2 ?  t) A, m- h2 H, W3 k3 @  MOV ________________5 E6 \8 t5 D- C9 f' J1 Y% y
  ;****END****
" n- Q: X) G$ a$ I; j3 u  LEA DX,RESULT ;结果数据区首址
. ^7 a8 D! E1 F' G# ]" e  LEA SI,NAME1 ;结果文件名
0 J; l$ Q8 g( G( |( J1 g  MOV CX,N ;结果字节数
1 N& L/ k; W! z' ~6 z  l  CALL SAVE ;保存结果到文件
3 D. m- q! E- m0 I" e& b. W  k  RET
9 W* U) `# ^& M: Q6 U9 U1 b* i  START ENDP. D* j5 k& i3 d: m4 q4 f
  CODE ENDS$ }5 R% X- ^# `
  END START
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 08:04 , Processed in 0.221705 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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