a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 61|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
请编制程序,其功能是:内存中连续存放着10个字节数,需对它们进行加密,其方法为:如某个数(两位十六进制数X1X2表示)的高位十六进制数X1大于或等于低位十六进制数X2,则低位十六进制数X2用X1-X2代替;如某个数的高位十六进制数X1小于低位十六进制数X2,则高位十六进制数X1用X2-X1代替。将加密后的结果存入内存。  例如:
, e3 y" G4 G( ]  P- |$ `9 B( a" @  内存中有 41H,46H…$ m9 Z% q; @+ O2 H4 W, X
  结果 43H,26H…
' `0 x. K% W+ a' f* D+ J( m8 W  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。2 c2 F  ~) Z+ H% f
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。& A6 v9 C) U, E6 M' v
  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
6 W, C4 |7 v4 D( f' A% ?  N: G/ p/ A  试题程序:2 ~8 p& d1 Q) {# F* q# C
  EXTRN LOAD:FAR,SAVE:FAR
* r% I* b8 w% t. i% S0 d  N EQU 10
+ a8 G3 }# K. z' U) Q  STAC SEGMENT STACK
2 p/ S" f' m( h* j: D  DB 128 DUP(?)
. f& ^2 P8 |5 p0 e; V  STAC ENDS
7 D1 p& U, O4 }  w* F  DATA SEGMENT/ F* w! l. W# f& G$ A
  SOURCE DB N DUP(?) ;顺序存放十个字节数) a8 S# u' @' @5 L) s! e
  RESULT DB N DUP(0) ;存放结果1 t7 L3 |9 q6 ~
  NAME0 DB 'INPUT1.DAT',0
* c4 \; }. [0 ~3 H4 ^- v4 g$ i. L  NAME1 DB 'OUTPUT1.DAT',0! ~3 J8 c% V; d$ A- z, X
  DATA ENDS9 U7 Z! V. e2 M4 T' x( j# D' K
  CODE SEGMENT2 T, s0 O% M  @6 H! t0 j' `# f& {
  ASSUME CS:CODE,DS:DATA,SS:STAC9 P& w; w  w& l# T# x% N$ ?( W, p5 Y
  START PROC FAR# Y5 b# v* r! b
  PUSH DS$ Q" e6 W9 w: E4 `# r
  XOR AX,AX
% o  @! Q! V9 A3 w8 r3 L  PUSH AX
% v. {! Q2 t8 E/ k  G" d  MOV AX,DATA$ \$ r. O* x, T- v$ d
  MOV DS,AX
: X: v; e. V6 w/ z  LEA DX,SOURCE ;数据区起始地址
  L; H- `1 R! X/ t  LEA SI,NAME0 ;原始数据文件名' X+ r: Q3 E8 |& F4 g
  MOV CX,N ;字节数7 S, L. w' V  N7 z
  CALL LOAD ;从'INPUT1.DAT'中读取数据7 [# G. g+ }1 M, M( _) R0 @
  ;****BEGIN***** h$ a3 x. q$ ]9 x1 c9 ]" F
  LEA DI,RESULT
8 A$ o" E8 c9 V  LEA SI,SOURCE
, P9 `8 W- l2 p  MOV CX,N
! c! s1 ]9 E) o# v! T! j  AGN1: MOV AL,[SI]
! l( N! K8 o6 e+ [4 n  MOV AH,AL7 h" T: q( {0 `5 l5 G+ Q, `
  AND AL,0FH
% j' e0 ~2 W# C) }3 Z  AND AH,0F0H
6 Z3 E" X+ j* t) e( o9 {% o  B7 _$ \  MOV DX,4
8 P& f9 G% ~8 K( O* [  AGN2: SHR AH,18 I6 c( X6 @3 i- j1 B0 Q
  ___________________________$ A2 I9 w4 r4 P- J9 N* Y
  JNZ AGN2
6 h- Z- Z! D% w" `: f  CMP AH,AL  k5 u3 _* _! ?( _; d* r# N8 l9 d
  ___________________________
2 J' b) M' L/ f" E  MOV BL,AL
7 I, `* V/ ~% I: X6 a5 D  SUB BL,AH6 Q' q* M0 G' w$ L$ m
  MOV AH,BL
6 J* X( I6 D, ^  JMP STORE1
! d8 J4 \* l: [& q: m0 {  G1: MOV BH,AH9 n/ j/ p3 f5 U* [& r
  SUB BH,AL7 `6 t0 x3 c# O6 w7 }! w6 ^1 V
  MOV ___________,BH5 `8 ?# l& B( o3 V/ e
  STORE1: MOV DX,4
# A0 P1 n6 o, Y  R% e* S3 a* ~# \  AGN3: ________ AH,1
+ F# H* w4 h: L- e& J  DEC DX1 a3 r' [$ K' }# l  ]$ ~( V2 ?
  JNZ AGN3; M8 I- f, ^) F8 V
  ________ AH,AL
. x/ ?" J; q" ]  MOV [DI],AH
7 M6 g, S, W/ q0 W- \  INC DI& ^4 f# Q; ?' }
  INC SI5 r. H( U: r3 K1 B8 L
  LOOP AGN1
: I- d) O/ s4 G6 z' j5 e" K/ g  ;****END****. k+ C  y2 V; @; q1 Q
  LEA DX,RESULT ;结果数据区首址
) X5 L6 t' q' G( S9 c  LEA SI,NAME1 ;结果文件名& G9 _! U0 \3 d! {; e: f9 Q
  MOV CX,N ;字节数
$ @3 N; C- T! g  CALL SAVE ;保存结果到文件
3 N4 P. x: X, [* X+ J$ S3 Y/ }  RET
% B% |; l" Q5 {, u0 A+ Z  START ENDP$ M( R; P5 F" C6 w- e" w. L
  CODE ENDS7 l4 P: g3 R" x; b9 B
  END START
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 14:15 , Processed in 0.336004 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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