a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 40|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
 请编制程序,其功能是:以SOURCE开始的内存区域存放着多个字节的数据,其中有压缩BCD码和其他数据。现按下列编码规则进行编码:在第每个压缩BCD码前面加两个字节前缀代码BEH和CCH,并在其后加两个字后缀代码DDH和EDH;如果不是压缩BCD码,则该数据前后均加两个代码0DH和0EH。编码后的数据存放到RESULT指示的内存区域。  例如:
  ^# Q/ z# Q+ O! R' l6 i+ C( D  内存中有 12H,D9H,86H,54H…
7 U+ H% |% z  L  结果为 BEH,CCH,12H,DDH,EDH,0EH,D9H,0DH,0EH,BEH,
* \5 K0 C; h! b5 @  CCH,86H,DDH,EDH,BEH,CCH,86H,DDH,EDH…
/ Q) ^" U" `$ l5 x2 _6 f  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。) C3 f" @7 i" G& G
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。8 M  {# @% ]- e" D& ?: b! q
  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
) x: O1 C, s9 v+ I  试题程序:4 e8 K7 i; D0 c) Q3 P  W3 V& Q4 _
  EXTRN LOAD:FAR,SAVE:FAR
7 h9 ?" u9 v% ^  N EQU 10, Q2 N# |8 \# e! N# `: G/ H: v  L, r
  STAC SEGMENT STACK$ G7 [# r4 u) E
  DB 128 DUP(?)
% V0 q' u- m1 F4 [& p  STAC ENDS# T, X: [. k8 a9 o: e, B; N
  DATA SEGMENT, N* \+ X$ ]8 r1 V0 \
  SOURCE DB N DUP(?)
5 H6 i& Q/ u8 Q$ p" g7 C5 D# S/ l  RESULT DB 5*N DUP(0)
! S0 z: N+ k/ A2 C* E% Z  l  NAME0 DB 'INPUT1.DAT',04 }5 u+ y" z+ ^5 X$ e3 Z
  NAME1 DB 'OUTPUT1.DAT',0( D" L* Z; }1 c; Y$ z
  DATA ENDS
- `! k& {" s; w: m  CODE SEGMENT
0 Y& j% ?0 `; A6 T  ASSUME CS:CODE,DS:DATA,SS:STAC  ^- L' ?& I' y3 D7 t2 o
  START PROC FAR
1 j9 C& Q3 z1 f. ~  PUSH DS- A& n* `/ S6 }& U+ Q
  XOR AX,AX) i: R$ e, G! r3 c; ~3 O
  PUSH AX/ T2 L3 g1 {7 _  ~, l
  MOV AX,DATA/ F# B8 P* u6 ~- a
  MOV DS,AX  z& g  ?8 H' t7 J) p2 c
  MOV ES,AX ;置附加段寄存器
' b- a6 \  I: ^+ u5 V' |  LEA DX,SOURCE ;数据区起始地址
% K8 x" t0 ]) K/ }# m1 G  LEA SI,NAME0 ;原始数据文件名, c" E( \! s3 t6 q! T$ W! w+ i
  MOV CX,N ;字节数
1 D5 S) l& N0 L: y* c  CALL LOAD ;从'INPUT1.DAT'中读取数据
' g7 a, p5 m. B- c8 o  ;****BEGIN****' G$ \# p4 ?5 T7 T& P: p$ \. j
  LEA SI,SOURCE" e0 g; r( g9 E% {
  MOV DI,OFFSET PDATA ;PDATA为正数数组存放缓冲区首址
) }# v/ g0 _9 {$ J0 b& H* S  MOV CX,N
$ x8 \) M  l# w6 z  CLP1: MOV AL,[SI]8 j. n1 r) n6 i& I
  MOV BL,AL# _0 G: Y  s! [& F
  MOV AH,AL& R6 f1 h" d1 L/ U
  ________________________
/ x5 d7 B% h; T3 {( b0 p- @7 j$ ^  AND AL,0F0H  f' {* G+ @8 C! |$ r
  _________________________
9 O- @$ a$ o  j6 Z  MOV CL,4
2 Z5 j6 O. Z$ U1 I: r3 m1 {4 \  _________________________
7 r6 i6 b: F9 |+ w1 n' U) F  POP CX
8 {1 K: z$ V6 s+ x  CMP ________________1 K( }0 v/ i) x5 E
  JA CLP2: B  ?7 b5 Q" s/ {
  CMP AH,9
, Y5 ?( B3 N( s& o& m% C  JA CLP2
* K1 n+ a& r# M1 L8 @  MOV ________________" e% o* o0 y. v
  INC DI
2 \# O* A, \7 C6 r& H  MOV BYTE PTR[DI],0CCH& F1 h" A1 h# g3 V# h
  INC DI
+ A2 [6 z# y1 l' j' T0 s4 s  MOV BYTE PTR[DI],BL( M8 P) [. M; n% \9 A' ^( ~
  INC DI
8 V* s$ d& ^% F. Q# ]& a: P6 c  MOV BYTE PTR[DI],0DDH" u! J/ o& G) ^9 t9 y0 N/ ~$ c: @
  INC DI
$ {9 f6 A8 I& p- x8 M  MOV BYTE PTR[DI],0EDH
' V- Y/ s6 W$ L. G* o: f8 Z  JMP CLP3
& t5 F% j9 t5 O$ T4 @  CLP2: MOV BYTE PTR[DI],0DH
# m0 E% @! [6 E  t* i% q  INC DI4 s- g2 Z0 f. K2 Y" Y& v
  MOV BYTE PTR[DI],0EH
# l$ K8 W3 \' j6 B1 Z' Y  INC DI  a1 n0 I4 u# R
  MOV BYTE PTR[DI],BL# [- B. U- i8 M1 H
  INC DI2 c; o2 [( F- _# W1 p  k
  MOV BYTE PTR[DI],0DH
* |3 T! f+ G1 ^  INC DI
$ J% B# Y' G" P  MOV BYTE PTR[DI],0EH2 T! A- |& g. Y" c9 N" {
  CLP3: INC SI
8 T) g% `( S2 y3 x; j; W  INC DI
4 A/ h* ?! p$ j  _________________________
/ z" G3 O4 F6 f( l5 ?8 q0 ]: a  ;****END****
, F6 C6 Y: @1 ~6 H& e: P  LEA DX,RESULT ;结果数据区首址8 f/ ]5 I* p5 B9 e4 G7 V2 Y% m$ K
  LEA SI,NAME1 ;结果文件名* i& J8 s5 ]* W) M, `
  MOV CX,N+2 ;字节数6 ?. r, C/ ?4 f' _+ ?; O4 m
  CALL SAVE ;保存结果到文件
, v8 x* q9 K! ^. r. A4 t6 |  RET- T1 X, q8 Y* w+ R' R3 N$ m9 g
  START ENDP
8 A9 K9 q" N" j! S+ I4 ]  CODE ENDS
! X; _2 \$ B. E; l5 `" @1 r  END START
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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