请编制程序,其功能是:内存中连续存放着两个无符号字节数序列AK和BK(k=0…9),求序列CK,CK=AK÷BK(运算结果按序以字的形式连续存放,其中低字节为商,高字节为余数)。 例如:/ w, \8 h _; F, ? `
序列AK为: 01H,7FH,80H,FFH…0 V0 R+ W- e5 ^- `$ L, O8 {: w
序列BK为: FFH,80H,7FH,01H…# U3 B% C! b8 z8 M/ B f2 R8 ]
序列CK为: 0100H(00H是商、01H为余数),7F00H,0101H,00FFH…5 Q6 [/ F: p$ |: h$ o* R/ J! \
部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。& ]" g ~1 k# A
填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。: c3 m1 |, O6 F6 l9 p. T
对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
- B( b4 E) \% T& r' z: D+ k 试题程序:
0 y6 b$ v$ Q: M J* r& o# | EXTRN LOAD:FAR,SAVE:FAR0 c2 m( |: D" N5 \& e2 c
N EQU 10/ Y7 ]. A! f! o* ~/ S
STAC SEGMENT STACK8 A- A, X1 ~% o- o2 y+ @
DB 128 DUP(?)
, g+ R2 ]- ]- V0 X7 S! v/ T STAC ENDS. L; o0 Q4 \- K; Z$ Q
DATA SEGMENT+ ?: `/ H7 X* M% R% B" ^9 w# X9 E
SOURCE DB N*2 DUP(?)
) p8 _4 \! Q. P; W- j, a RESULT DW N DUP(0), ~8 {0 u4 e3 g/ J# R; Y: N
NAME0 DB 'INPUT1.DAT',0
6 I, e6 Y. O, f. d5 \% F/ m2 b NAME1 DB 'OUTPUT1.DAT',04 D1 {2 F2 ]* {3 I: ?: O
DATA ENDS
4 U) Z0 U0 d- Z4 V" D CODE SEGMENT! h- K L5 L, l! m
ASSUME CS:CODE,DS:DATA,SS:STAC
5 U' g. x/ U2 a2 Y) N9 F4 J6 ?# K START PROC FAR
% U6 l9 Z$ a/ R; X2 P PUSH DS( z" F7 V( B0 ^( ~. m9 p. b
XOR AX,AX
: z2 _3 x3 c! Z5 s- [ PUSH AX
+ t) [$ [6 t' \! V0 H MOV AX,DATA* k( G( _6 n; t$ K! m4 p
MOV DS,AX* @. i4 [' P% s% d/ Y! ]4 C
LEA DX,SOURCE ;数据区起始地址- F$ U+ N" A5 l1 h( |
LEA SI,NAME0 ;原始数据文件名& @( N& h/ ^ j: G0 G
MOV CX,2*N ;字节数
1 a& k# ^% S8 k8 J CALL LOAD ;从'INPUT1.DAT'中读取数据! H( g0 m L: T6 ?# L# F. P
;****BEGIN****, h9 v( T& w7 d$ d5 [6 D: J4 U
MOV SI,OFFSET SOURCE
! f/ J/ _- r4 d- H MOV BX,0
7 T5 n* u3 B+ F4 X5 z ___________________________
9 V+ J/ X5 O( a7 U: t0 s0 `+ Z7 Q PRO: MOV __________________
. h" G" N2 b. N: T( b8 m ________ _______,SOURCE[BX]' t3 t0 w5 I( J. x# I" g# b
DIV __________________
5 |5 p6 N4 N/ M# J MOV [DI],_____________ x0 k* O7 S1 \% O. _+ c
ADD DI,2% @- ]: ~9 M# K2 K, w9 t
___________________________
1 J9 }) Y5 T2 d/ y- L DEC CX
4 u$ u: |7 F; x8 _* S& E/ @( B5 v* Q ________ PRO5 @( T/ a9 f$ U# c# K- ~# h
;****END****. H$ N5 w Y& k7 @* H1 y
LEA DX,RESULT ;结果数据区首址5 e- M, N, L- n
LEA SI,NAME1 ;结果文件名
d+ L% @3 p9 A' }3 D MOV CX,2*N ;字节数
" g! P3 T+ q0 W4 b CALL SAVE ;保存结果到文件% d9 u0 b% k$ K
RET. R$ X: B. _. E- ~
START ENDP
2 N$ m- e, c3 ] CODE ENDS
" h3 H* i7 w; ]. d END START |