a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 42|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
 请编制程序,其功能是:以SOURCE开始的内存区域存放着多个字节的数据,其中有压缩BCD码和其他数据。现按下列编码规则进行编码:在第每个压缩BCD码前面加两个字节前缀代码BEH和CCH,并在其后加两个字后缀代码DDH和EDH;如果不是压缩BCD码,则该数据前后均加两个代码0DH和0EH。编码后的数据存放到RESULT指示的内存区域。  例如:
: b( z! o, f+ S* a  内存中有 12H,D9H,86H,54H…% K/ T7 s) z$ J1 c+ Z# H
  结果为 BEH,CCH,12H,DDH,EDH,0EH,D9H,0DH,0EH,BEH,
- F1 i" {5 A  B4 Z6 P6 I, E  CCH,86H,DDH,EDH,BEH,CCH,86H,DDH,EDH…# K5 Q# h: Q" ~! E+ [* X+ n# W
  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。4 a1 h0 ^: G% y' F  C) }. P
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
. x; v3 z, q, }; C) e) o  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。! v! `2 {, O" J: b
  试题程序:
5 ]7 V2 x6 c% j* }. `  EXTRN LOAD:FAR,SAVE:FAR1 _0 _3 n1 l7 ]/ q* ~
  N EQU 104 `' m" l8 T6 @3 O, u1 C2 F$ B3 {
  STAC SEGMENT STACK
# ?6 h: R* n' k5 [6 u4 _  DB 128 DUP(?)
, S8 c/ _+ [7 n( n7 @+ ~  STAC ENDS
. ~9 Q0 X# }& V% T, i5 o  DATA SEGMENT
/ ^# ^2 @3 D, w: w7 S  SOURCE DB N DUP(?)- ~9 N, G- E2 Q& h1 M) t
  RESULT DB 5*N DUP(0)
( C. q7 J+ [9 j/ _* }  NAME0 DB 'INPUT1.DAT',05 ~6 W$ t0 A2 D
  NAME1 DB 'OUTPUT1.DAT',0: N2 v" k; X6 C; ^6 ^2 W& Z
  DATA ENDS
9 N* l& ?% H6 _) j) f" E  CODE SEGMENT( P3 U6 Q/ {: ]' a+ R. @
  ASSUME CS:CODE,DS:DATA,SS:STAC
$ b& ]( R, x& j  START PROC FAR2 E- T0 U% L, Q2 n/ I
  PUSH DS4 i- S* C+ e/ s7 @
  XOR AX,AX" C2 p" l6 b7 W
  PUSH AX' i! d7 g1 X) }# j9 x( p! n
  MOV AX,DATA  N4 n7 M8 I, t3 t# A
  MOV DS,AX
; \( h( k$ {, Z( y- @  MOV ES,AX ;置附加段寄存器
! v  `0 l; Q3 |3 `7 Q  LEA DX,SOURCE ;数据区起始地址# D! s! }* _* j+ z; l1 d7 g$ c# ^
  LEA SI,NAME0 ;原始数据文件名
7 T/ P: O: e" ], i  MOV CX,N ;字节数
) _+ @# j- @& s5 J  CALL LOAD ;从'INPUT1.DAT'中读取数据
$ ^% P$ [+ e6 i# ~) @& k  ;****BEGIN****
; W  ^( I6 z" ]  N* o8 F  LEA SI,SOURCE
3 R0 Q0 {( s) m) }  MOV DI,OFFSET PDATA ;PDATA为正数数组存放缓冲区首址4 t+ G9 I; k3 x0 e
  MOV CX,N
: p9 l- p2 j' {7 s1 ]  X! W4 p% g  CLP1: MOV AL,[SI]
8 O$ I8 {* U) ?! e; K  MOV BL,AL6 W7 l. k3 N- {) _5 G) N+ }
  MOV AH,AL
+ D! v+ q4 T' j4 ^0 J7 |3 N  ________________________8 ]0 B; l5 B# |' H: Z* [) _
  AND AL,0F0H( V" x$ N6 C! ~% l7 j( S- V
  _________________________' s  e5 U, |% [5 r. J' T* `0 [
  MOV CL,4
/ \# {7 V, i* V& `* {- ^9 R  _________________________$ n8 ~+ D3 l+ E$ K+ f' }# J  i
  POP CX. }8 N. K) M1 t
  CMP ________________
4 ]* J. z# Q' h5 h* O' [" d" h  JA CLP2  F3 f8 M2 ]! M" X1 ?5 A  J
  CMP AH,9# y- }7 d5 v- Y4 I7 P' Q8 E
  JA CLP2
8 X4 F9 }- W! H" X! @" L  MOV ________________& h# n$ ?. u0 C; |4 Q* Q$ d
  INC DI
0 w' U% d9 b5 G. l  MOV BYTE PTR[DI],0CCH
; Q: Z' \  Q$ V( {1 `  |  INC DI" P7 ?! P" T; _& i7 y
  MOV BYTE PTR[DI],BL
+ l' h! Z" B6 G- J9 K  INC DI/ Q0 H1 g* f! f1 _+ {) R4 L
  MOV BYTE PTR[DI],0DDH
. b' O3 a% I: @$ t! \  INC DI
0 h1 S) K  m+ W9 b  MOV BYTE PTR[DI],0EDH8 I9 n, g2 I! h
  JMP CLP3: y$ H$ O2 k' G" r2 v
  CLP2: MOV BYTE PTR[DI],0DH5 u9 b- k3 Q0 G1 U6 e! }- s
  INC DI, d0 `0 L& C& F
  MOV BYTE PTR[DI],0EH) g" P" T1 e# N9 a7 N
  INC DI
2 y6 l" E* J; y9 i) Q6 q. h3 g  MOV BYTE PTR[DI],BL
; N) M$ p8 k6 e* S, k6 ?, a! j  INC DI; l$ f& p; K1 G1 H' I, @
  MOV BYTE PTR[DI],0DH
" P, B- G  E  b$ G& n  INC DI( E* [9 U5 \" m8 {
  MOV BYTE PTR[DI],0EH1 [" b0 ]" O) D5 U! n6 R! p
  CLP3: INC SI
* u) f( d. I5 L  INC DI
/ F# {5 M& \: I, p  _________________________
+ u1 y: I: x( N& U; H2 c  ;****END****" C0 [" S/ I0 @: a6 x5 K5 U' k
  LEA DX,RESULT ;结果数据区首址
; w, t% Y+ h' `5 P  LEA SI,NAME1 ;结果文件名
0 }* `8 ^* D2 U6 K5 Z  MOV CX,N+2 ;字节数* `# \2 E+ n( n! g9 d# T/ t
  CALL SAVE ;保存结果到文件
! ]% S- l% Z: p+ z5 N, ?6 h4 K  RET$ H0 g9 \1 t; o' P* w9 z9 n8 o
  START ENDP" S8 P6 b! S& _- i' a
  CODE ENDS
- n# n& n! @3 r; N$ Z  END START
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-15 22:19 , Processed in 0.190182 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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