a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 75|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
 请编制程序,其功能是:将十进制数据的ASCII码转换为BCD码,并按照组合(压缩)格式存放在内存区中。该ASCII字符串以00H作为结束标志,若被转换的ASCII码为奇数个,则把地址最低的ASCII码按照非组合(非压缩)BCD码格式转换。  例如:
; S1 P/ |8 c1 Y, B7 x" o! c2 l  }  内存中有 31H,32H,33H,34H,35H
  _1 Y" r, i5 c% K, o  结果为 000H,0302H,0504H! d6 k1 O1 ~/ D0 Z2 A" k
  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。( b+ c, z( J4 v7 i1 c. D8 z
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
; j5 d( T8 ~. p: M- ~0 t! _  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。% I$ s1 i- e  \5 j- ?
  试题程序:) y" `: n3 h6 v' u
  EXTRN LOAD:FAR,SAVE:FAR
5 a! }/ j& C' H" R: ~  N EQU 20
/ J3 G' ]8 l- F+ I7 b) b  DSEG SEGMENT: G" h# `& W4 N' f/ ?
  SOURCE DB N DUP(?)
% J+ m# [9 @7 v' g! U4 E  RESULT DB N/2 DUP(0)  H: O, R' `; c! f# X
  NAME0 DB 'INPUT1.DAT',05 f4 S; h" u$ y
  NAME1 DB 'OUTPUT1.DAT',0
3 W4 `( s7 Y$ m8 C* `0 d* e/ c* Q  DSEG ENDS5 u$ d7 [7 |7 b: N1 h
  SSEG SEGMENT STACK
: f/ q% A7 D5 n  DB 256 DUP(?)
" h9 L* f6 D6 i0 L5 Z  SSEG ENDS6 @" u- r3 x6 w1 y3 i, D' X0 `
  CODE SEGMENT* Q- s  _. V( o9 G% H* Q6 U# J. \
  ASSUME CS:CSEG, SS:SSEG, DS:DSEG
8 H6 u5 c" G" h! b, }; W  START PROC FAR
) J* K  }1 D* N1 ^  PUSH DS
* U+ L+ v! t3 O& w2 i* c2 N  XOR AX,AX$ j( N6 K9 a. O1 T( a! p) Z7 P/ q
  PUSH AX
2 t  G, d, O; S0 H  MOV AX,DSEG; y7 k/ k. i8 ]+ j) ?  A
  MOV DS,AX
: I% \2 h! I0 m. y  MOV ES,AX ;置附加段寄存器" [$ Q- V1 M/ ^! b" }8 h3 P
  LEA DX,SOURCE ;数据区起始地址
! w; D. `( \  C  L8 k( q; y! J  LEA SI,NAME0 ;原始数据文件名
( Z2 L! w, v* e' }, R" C  MOV CX,N ;字节数( |' W  y& y" P% [' ~4 Y
  CALL LOAD ;从'INPUT1.DAT'中读取数据6 {5 q6 c% A  L# J* p' t
  ;****BEGIN****
; C  G- J7 D) W6 U9 [* I3 q  MOV CX,0% D6 I6 U6 x0 I0 r- V4 s
  LEA BX,SOURCE, c6 I- d7 s9 Y/ o- J$ d9 `, B! {2 M
  NEXT: MOV AL,[BX]
% U: B) b0 M6 K; x6 H  CMP AL,0  |# j" D: U/ U0 M( z6 h1 _
  JZ GOON
& i4 O" A$ u/ H- x: d: l  INC CX5 j) W7 U7 d- w
  INC BX6 c0 l+ ]( x- ?/ A% p( `/ M
  JMP NEXT
2 Q. R  S. c0 L$ i9 c! P  GOON: LEA SI,SOURCE
$ |2 B" |/ ^: o1 N+ e6 w2 ]  LEA DI,RESULT/ \7 i5 A. c8 A, U9 l8 U
  ROR CX,1 ;是偶数吗?! W4 ]3 }5 Q& ]: |3 a  m5 @$ P& N
  JNC EVN ;是) _) s5 v  i$ I' M) w- r
  ROL CX,1 ;否1 o  Z6 R* x$ z( X
  LODSB1 v! V8 X' L, |* N' ?0 F$ D3 M
  AND __________,0FH6 l( w2 i. q1 \3 Q9 w
  STOSB
8 F" Q1 S1 y6 @' i  DEC CX/ V2 {: w% J2 W# ^# w8 e3 b
  ROR CX,1
6 T5 T5 J& ^" T6 ]4 L4 y7 z/ o) x9 \  EVN: LODSB9 @  G) H! r  D
  AND __________,0FH( F+ V/ s7 V; h" q! x% ^6 B; I9 W
  MOV BL,AL/ T/ w0 F9 g* F, h4 J
  LODSB
9 |0 h6 L/ C6 M; X  PUSH CX) C  w* x4 H; J0 ]# [
  MOV CL,___________________6 Y8 E" L# _6 Q. u
  SAL AL,___________________  X& Z6 Y: B3 P6 ^8 ~- Q$ d
  POP CX: w+ Y  M; J1 M1 }- }) b( g: A% ~- I7 z
  ________ AL,BL4 A9 D2 Y2 v- J' ?- U* e
  STOSB, d& h  }0 G+ f! p( h( }7 l7 `
  LOOP EVN4 J6 S4 G7 ~* F4 d8 c( f
  ;****END****
* f  R% J( r" b/ z6 z' b4 Y  LEA DX,RESULT ;结果数据区首址
. f' ?  H1 x( ^  LEA SI,NAME1 ;结果文件名
" U: d/ X) b. @6 d4 r) Z  MOV CX,N/2 ;字节数
$ j2 L8 |# W6 M6 N; ~9 j  CALL SAVE ;保存结果到文件
/ l5 s5 x6 w( @! B" l/ e* g( c! s" e  RET0 _& i' Q: ?" x' E! D
  START ENDP
* T1 |6 S. C! N9 A  CODE ENDS/ x  @  j) l6 ?8 k  H3 |, K8 S
  END START
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 10:35 , Processed in 0.184349 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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