a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 66|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
请编制程序,其功能是:内存中连续存放着10个二进制字节数,需对此组数进行加密,其方法为:将前一个字节数(两位十六进制数a1a2表示)的低位十六进制数a2与后一个字节数(两位十六进制数b1b2表示)的高位十六进制数b1进行交换;第一个字节数的高位十六进制数与最后一个字节数的低十六进制数进行交换,加密后的结果存入内存。  例如:
( E! q7 N* d: f7 ?- O9 \  内存中有 50H,61H,72H,83H,94H,A5H,B6H,C7H,D8H,E9H/ ?) H9 T. Z+ k
  结果为 96H,07H,18H,29H,3AH,4BH,5CH,6DH,7EH,85H0 g5 H$ w- ^5 z# Q  l3 d0 }( L3 J3 @! P
  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。# Y' U; ~2 w2 q
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。/ _- i: v8 ]9 w4 F& u  M6 M
  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
7 L) \. M" ^+ t( j( d6 L  试题程序:
# J. s7 H9 U" ?# Q  Z! F  EXTRN LOAD:FAR,SAVE:FAR
% Y$ ~' M# j0 ^  N EQU 10) f( L4 g* z  F9 s' y2 s
  STAC SEGMENT STACK
6 o1 s3 b7 M% i( M. f  DB 128 DUP(?)& f) U/ l* u: U& W* T7 c
  STAC ENDS# ^- a! ^. I6 n3 r- ~; u3 _
  DATA SEGMENT. P% q: G* n" Q4 Q2 C4 g
  SOURCE DB N DUP(?) ;顺序存放10个ASCII字符
' U& V  [4 i" m; x' U( U  RESULT DB N DUP(0) ;存放结果
/ i( h' ]" d8 P0 e% g$ z  NAME0 DB 'INPUT1.DAT',0$ q, c+ V! z& \9 P% Q8 I& N
  NAME1 DB 'OUTPUT1.DAT',0, Q+ z, v# h& Q' ^; p
  DATA ENDS! X% M* Z% O1 b, ?3 x
  CODE SEGMENT
! \1 ~* t  i: J6 Y  ASSUME CS:CODE,DS:DATA,SS:STAC* p& Z$ [2 S% X3 u$ ]. A
  START PROC FAR
, |. C5 ]" U$ t+ W+ a" e. P  PUSH DS. K: L( v0 m8 I" U- a
  XOR AX,AX
5 i! N3 U3 M; ]9 |, I. F  PUSH AX
0 T7 F) H  @) b- s( c" H$ _+ |/ c  MOV AX,DATA( j6 l, M6 }* p% D' r5 K! T
  MOV DS,AX
2 V- h) a: M8 E5 W( i  LEA DX,SOURCE ;数据区起始地址
+ e1 p* M# v# c, U7 G; f  LEA SI,NAME0 ;原始数据文件名
6 A, E2 `/ Y6 e+ J+ h" R  MOV CX,N ;字节数
0 V+ A; D% K4 ]3 [2 b) a2 P) w  CALL LOAD ;从'INPUT1.DAT'中读取数据
* O1 T& Y2 \5 \2 m, G+ ~: `  ;****BEGIN****
8 i  H( O3 K1 y/ Z9 ^( h  MOV DI,0) @; A1 }! S' k* C: j1 k. T7 [
  MOV SI,0
, x7 V" T: M7 `) j4 y9 y  MOV CX,N
  z$ S$ n' r4 F8 F* X! A  AGN1: MOV AL,SOURCE[SI]
9 l7 y6 D3 O2 i4 [  MOV AH,AL/ t- J5 v0 q' z. n# D/ ]( N
  AND AL,0FH% [: s/ S/ M1 ]$ W* t" ?- ^
  AND AH,0F0H
5 p0 Z4 V, H! {1 O$ C7 E( M' U2 G3 ~  INC SI1 z5 w6 I1 s1 q
  CMP SI,N
3 f, @# n  K- r! t  _________________________
0 d2 U' t; c3 n( R2 y" x2 p  MOV SI,0
1 X  Y/ W2 E- _; P4 ]: q  LW: MOV BL,SOURCE[SI]3 N" X; a; q" S4 z+ q
  MOV BH,BL
, V& j1 L& T$ z( `  AND BL,0FH# ?  Z9 R  a% t  B& ~+ @
  AND BH,0F0H
" Z& X* B" x0 x- m( b, x  ________ CX( D3 N1 ?: {( B2 `  w2 }3 [
  MOV CX,4* _/ ]( V5 y* e* ]
  L1: SHR BH,1$ N8 d8 ?! {; A7 z: p
  SHL AL,1
5 S* p! a  s: t9 r1 o- S  LOOP L1) _1 `$ H5 P1 B/ r5 h2 b- Q) B
  ________ CX
* b! \# Y$ A$ V& d5 F  OR AH,BH' m9 Z+ h+ b% v9 G* i+ L# y/ I! f
  OR AL,BL* w- u( M; I: L! R$ h$ y1 Q, i
  CMP DI,0
; E# ^8 `- H0 B" a  JNZ STORE1
3 [0 p; k, p7 c; E8 x  MOV SOURCE[SI],AL
  F, N6 D5 t; y9 e7 ~  DEC SI# m# S3 m! Y) o' C
  MOV SOURCE[SI],AH, @1 B2 E( D; E/ G  m2 T
  INC SI
3 A& {) c+ k# q" d' j9 m  JMP NEXT8 `# T1 A2 A4 Z  S, Z0 j
  STORE1: CMP DI,N-1
% r6 b; r* z) v4 g8 s5 P! i  JL STORE2
4 E  Y' k1 U2 ~* |  MOV RESULT[DI],AH
* J, v2 K: N+ v4 C: Q3 {: b: o1 O  MOV DI,0
$ b; {$ I  z1 \$ e+ r# c% p8 a7 O9 Y/ I  MOV RESULT[DI],AL
1 k* c9 W, W, ~0 P  Y  JMP NEXT
( H, p! D& h! s6 f1 c# k  STORE2: MOV ____________,AH$ `" W4 m4 ~+ V- J0 q
  MOV ____________,AL. k9 y5 A! h) Z# M$ z
  NEXT: INC DI2 i$ _+ n+ N8 l) z0 q! b
  LOOP AGN14 {1 E' p5 s- m% P0 L
  ;****END****1 g) H1 R7 F' c( w
  LEA DX,RESULT ;结果数据区首址, \5 y6 Q% `, C9 Y, w/ f0 L
  LEA SI,NAME1 ;结果文件名
* c2 {, r5 U) H7 T  MOV CX,N ;字节数6 q5 l1 c: m2 S
  CALL SAVE ;保存结果到文件9 i, Q+ R% \3 g2 a* {
  RET
* L. V1 X! [2 U; y/ h2 S) }8 u: N  START ENDP  M: e) @) ~( M* T& m) ]
  CODE ENDS
, P5 a( ?6 {1 W, A! V  END START
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 13:53 , Processed in 0.250630 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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