a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 58|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
  请编制程序,其功能是:以SOURCE开始的内存区域存放着20个字节的信息,其中有ASCII字符和汉字机内码。若一个字节中最高位为0,则表示ASCII字符,若连续两个字节的每个字节最高位均为1,则为汉字机内码(表示一个汉字)。将ASCII字符个数存入RESULT指示的单元,表示汉字的个数存入下一个单元,其后存放原来20个字节的信息。
% B5 c+ Q9 B9 t, l  例如:
# J/ O7 G' k. K9 b' _6 h. Q  内存中有 30H,38H,89H,A9H,E0H,97H,61H,4AH3 i" X  v7 t8 A- Q) H; A: g9 H
  结果为 04H,02H,30H,38H,89H,A9H,E0H,97H,61H,4AH
" a% x# I& @0 E& O* ?# {: q  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。- B" D/ F* z0 f0 ~
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
/ d7 |0 J$ ]: Y5 l4 _8 j  @2 O  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。4 A0 Z' h& s( [' i; U8 r0 S+ A
  试题程序:0 \- ?5 V6 k/ C: H2 f
  EXTRN LOAD:FAR,SAVE:FAR. B" j( X5 v, m4 o9 |' i7 E! F
  N EQU 20
% g! l0 w- `$ D" R$ m7 h+ f8 S, }  ESC_CODE EQU 273 ^# H# v0 j- a5 Z+ G' j" I+ C( u
  STAC SEGMENT STACK  z% w: T+ V  z! _' Z4 D# ~
  DB 128 DUP(?)
3 z# l/ |# q$ n# S6 B# I  STAC ENDS! P$ X+ Y2 T7 K8 Z
  DATA SEGMENT/ |& B; {8 B2 o% f! i4 I0 T% A
  SOURCE DB N DUP(?)) r% a8 \  X. c, v/ o6 e0 x
  RESULT DB N+2 DUP(0)0 J' J6 f  j. i6 Y! M# \+ v3 r
  NAME0 DB 'INPUT1.DAT',03 U9 B' S* I/ B& g% ]
  NAME1 DB 'OUTPUT1.DAT',0$ l: f2 d( w: M( P
  DATA ENDS% C7 M( s* F, m2 g
  CODE SEGMENT
) `% H( u* F1 U, e9 c% d; c7 ~  ASSUME CS:CODE,DS:DATA,SS:STAC
5 F& I* B  m+ t, V7 K+ j, V  START PROC FAR
7 F$ M+ X# t9 j5 s% X  PUSH DS  V" ~5 G* n( C) g
  XOR AX,AX
/ ^% u( Q& J, M1 N0 `8 b/ T  PUSH AX$ j. q1 V- g* m
  MOV AX,DATA
3 a% p$ z9 a( I$ I! J9 U  MOV DS,AX
2 y% w2 j. N0 |& V  MOV ES,AX ;置附加段寄存器
+ ^" y6 i9 G& [" x7 d) \) p. |  LEA DX,SOURCE ;数据区起始地址
8 v/ C/ b% z6 z. [7 q: c. f  LEA SI,NAME0 ;原始数据文件名  r# J  ?1 Z4 z: s
  MOV CX,N ;字节数$ q  A5 f& I/ f7 x8 [5 ]# _* O9 ?5 c
  CALL LOAD ;从'INPUT1.DAT'中读取数据& D9 p) _! ?  `" ~( C+ `( |  ?
  ;****BEGIN****
, k6 f0 v8 A% Z: n8 P  LEA SI,SOURCE; p6 A+ ~* @) g  Z; e: a9 j
  MOV DI,OFFSET RESULT+2
" Q4 P4 a: F: M0 X; {  [6 \  MOV CX,N
" W- f5 [1 c. F9 b$ k9 L  MOV DX,0 ;ASCII字符个数在DL中,汉字个数在DH中
# v- k$ m* D, e/ f& k. h3 r  LPST: MOV AL,[SI]* Z( x4 v+ p, u, A1 Y
  MOV [DI],AL
/ E* N) H% m. D- l- G  ________ AL,80H
# ]( t7 }- l6 w% a% F& f  JZ LASCII
: Z. d% A# A+ D4 T; l  INC SI
' o8 |8 O, Q" C  ____________________________1 C  k* @0 d/ L8 H
  DEC CX
- _9 W' z  U2 q6 D; F& m9 }# @- A+ ?  JZ _____________________1 a# Z8 s& l! u* a, w% K3 z# ?, b5 v
  MOV AL,[SI]
5 G3 A, o* D) i% i5 R1 n2 ~3 y  MOV [DI],AL4 h0 e  U4 e4 k( V' N- d
  TEST AL,80H" Q6 t5 W- K+ M9 T
  JZ _____________________. Q% I) I$ c8 }' s+ @+ K* h
  INC DH
) f( W8 S6 E# f5 w! O% D, R- a3 b0 j  JMP LPCOM11 o% R: b  @. Y9 Z7 K
  LASCII: _____________________________
+ x0 R$ g! f5 L9 d/ C+ y  LPCOM1: INC SI+ a9 h2 P# }$ v, m) ?- u0 g& J
  INC DI' Z$ H/ j) E9 G  b1 U2 @1 [9 }
  LOOP LPST5 s  u) h' ]0 O  g
  REST11: LEA DI,RESULT
+ A) N; [, B5 @! ~3 s  MOV _________,DL6 ^. X. A) f( j" k' t
  INC DI
( S; ]8 b( s) P; c. z" I  MOV [DI],______________; m' e* o1 [4 k
  ;****END****
8 A  I, Z) W( v) G/ a  LEA DX,RESULT ;结果数据区首址
! s& s" ?6 b1 M7 W+ Y  LEA SI,NAME1 ;结果文件名
9 @. q; T) I% h5 V& I( t$ [# _0 l  MOV CX,N+2 ;字节数
6 ~( g! I6 M- X* r5 i7 W3 `+ \  CALL SAVE ;保存结果到文件
& [. i* Z7 ?; S! r1 l/ n2 {, G  RET$ C+ A5 G, {) {2 o& w
  START ENDP
* [. ~; k, u4 `! f  CODE ENDS
% S5 c, ~( L# [8 o- m; u* }- N  END START
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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