a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 65|回复: 0

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

[复制链接]
发表于 2012-7-31 20:55:16 | 显示全部楼层 |阅读模式
请编制程序,其功能是:计算10个有符号字节数据的绝对值之和(字型),并找出绝对值最大的数及其所在的偏移地址,最后将它们依次存入指定的内存中,结果以FFH结束。  例如:/ `9 K+ `, N! v2 {7 |2 h$ v
  内存中有 10H,01H,27H,00H,FEH,80H,00H,03H,FFH,01H$ A! a; ]+ k4 z1 @
  结果为 BFH,00H,80H,05H,00H,FFH- t: c" E* Q3 R) p, z  w# t8 i
  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
6 s" `# F+ M  e  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。( f- W9 T& h. b, Q8 p- J
  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。& ]2 x, K% L9 j4 h" o+ K8 i
  试题程序:/ i' C( |3 X" I
  EXTRN LOAD:FAR,SAVE:FAR
/ c  R: A  E/ B* P, A5 N3 z2 g0 v0 f  N EQU 10
; ]# Y9 }5 i% @6 p& ~  DSEG SEGMENT( q. O  R8 K$ D# O7 V/ y
  SOURCE DB N DUP(?)
. a3 a" c8 w4 C. g  RESULT DB 6 DUP(0)
0 H7 `0 \' ?# a0 x- \$ M' a  MAX DB ?- d! ~# t: `4 ?
  NAME0 DB 'INPUT1.DAT',0
! h# |6 ^9 o# e9 Q, e, l  NAME1 DB 'OUTPUT1.DAT',0
2 a, R1 x8 U8 {  DSEG ENDS0 f& @& Q( x3 }0 @, g
  SSEG SEGMENT STACK2 m) B* X$ _  W& |2 ~/ Z
  DB 256 DUP(?)+ X: S4 C3 _' d
  SSEG ENDS
6 G' K, C( f) E) v9 T& h; L  CSEG SEGMENT
# k8 j+ _' Z6 t6 j  ASSUME CS:CSEG,SS:SSEG,DS:DSEG
. E$ q# H' c8 {' ]  Z: E7 c0 a  START PROC FAR$ R5 a) J9 a3 {; F/ C% C
  PUSH DS2 w: r4 z. h% \; y1 _, l/ D- Z
  XOR AX,AX
8 Q9 H6 u* \( |  PUSH AX
' D/ `" s  g9 m# m: P  MOV AX,DSEG! q4 R" E. L1 Z3 P2 O$ U
  MOV DS,AX" ^% ?; [$ I1 v! O4 G, g! E) T$ c
  MOV ES,AX ;置附加段寄存器
0 |: l9 M1 Z/ Z" @  LEA DX,SOURCE ;数据区起始地址4 i" F( J6 l& {! [8 V+ M+ y7 M
  LEA SI,NAME0 ;原始数据文件名# Q. d9 G  U) C. t3 E
  MOV CX,N ;字节数
# J4 j& Y1 V2 D; Q' j4 @  L  CALL LOAD ;从'INPUT1.DAT'中读取数据- j* ^, s4 y7 ]& o7 n
  ;****BEGIN****
' @/ c5 X$ m2 A! V8 a$ H/ {  LEA SI,SOURCE$ ]" t- _. U) G, I# w! M/ H+ H' c
  LEA DI,RESULT
0 z/ j# S8 d/ L5 G  MOV DX,SI, U9 D. m2 ^+ z
  MOV CX.N-1
* ~0 v; W0 i  k, ~6 ^1 g: P2 w  MOV AL,[SI]
6 G( b! M9 z# W! y) M: m  ADD AL,0
3 p3 A/ K* O$ ?. V$ {2 v0 q# ]9 A  JNS P1
/ E! l) G. a8 W/ A# M  _____________________
- V! d0 \/ _8 {  P1: MOV MAX,AL
! [% R6 G$ a% y/ s" V  ADD [DI],AL6 {" ]- C8 @1 n* k4 u/ l4 c
  ___________________________! ?2 n' ?; L& o9 Y! K; F4 \
  GOON: INC SI/ ^8 ~' @1 o$ i! `% P0 H
  MOV AL,[SI]
( X/ n% A# j# {; I  ADD AL,06 O' B2 T9 d& p- f
  JNS P2
" x( U! v* D! X5 {0 S% g9 r8 f  NEG AL9 e2 G- o0 c# y) ?- c) [! t
  P2: ADD [DI],AL
" G2 u! A) u0 P5 c" _  W. F' [  ___________________________
3 O" w: J% b$ G5 G  CMP MAX,AL' Y8 E& T+ y7 E/ z+ ?
  JAE __________________8 T( I* n$ {7 }9 t: k
  MOV MAX,AL
- i+ ]. V; }! G+ u( l6 }6 ~! `  MOV DX,SI
. ~, R% H8 Q) j* c+ K# F  NEXT: LOOP GOON
" o% M8 v! a( h4 \  ADD DI,2, Q' c  s* e% X* I5 F
  MOV AL,MAX# D0 ]4 d- Z! ~: i
  MOV [DI],AL# u; ]( v  P* J% K  e/ N
  INC DI) @/ ?) ^  }% d# z0 }3 p7 J
  MOV [DI],DX
+ ~$ z- q! y0 [4 M& [" [  ADD DI,2! V' ~9 \! Y! J' V% t. o
  MOV BYTE PTR [DI],___________5 ^4 z, Y+ K( @( g
  ;****END****/ Y% N' Q+ T' n, y2 A
  LEA DX,RESULT ;结果数据区首址" \/ T  x+ D6 x
  LEA SI,NAME1 ;结果文件名
3 e, [! I; J/ p2 }: Z  MOV CX,6 ;字节数
( d: t2 X# P) ^2 ]  N) t$ Z  CALL SAVE ;保存结果到文件
7 \5 v5 a! r, q4 |  RET
1 Z/ S0 U! C& R7 K1 j# N  START ENDP
/ w( v8 E+ F4 T0 q8 \8 K4 s! `4 L  CSEG ENDS$ \0 _3 D- ]6 ~# D. n
  END START
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-2 01:59 , Processed in 0.514169 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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