我要投稿 投诉建议

计算机等级考试三级PC上级题31-40(3)

时间:2021-01-13 17:29:30 计算机等级 我要投稿

计算机等级考试三级PC上级题精选31-40(3)

上机题之33
以下内容为程序代码:
;* 请编制程序PROG1.ASM, 其功能是: 在递增的有序字节数组中
;* 插入一个正整数, 并按指定的数组个数存入内存区中。假设数组
;* 元素均为正数。
;* 例如, 将02H插入下面的数组中:
;* 01H,03H,04H,05H,....
;* 结果为 01H,02H,03H,04H,05H,....
;* 部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT
;* 中读入SOURCE开始的内存单元中, 转换结果要求从RESULT开始存放,
;* 由过程SAVE保存到文件OUTPUT1.DAT中。
;* 填空BEGIN和END之间已经给出的`一段源程序使其完整,填空处已
;* 经用横线标出, 每个空白一般只需要填一条指令或指令的一部分(指
;* 令助记符或操作数), 考生也可以填入功能相当的多条指令, 或删去
;* BEGIN和END之间原有的代码并自行编程来完成要求的功能。
;* 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,
;* 最终运行程序产生结果(无结果或结果不正确者均不得分)。
EXTRN LOAD:FAR,SAVE:FAR
N EQU 10
DSEG SEGMENT
MIN DB -1
SOURCE DB N DUP(?)
X EQU 2 ; 插入的数
RESULT DB N DUP(0)
NAME0 DB ’INPUT1.DAT’,0
NAME1 DB ’OUTPUT1.DAT’,0
DSEG ENDS
SSEG SEGMENT STACK
DB 256 DUP (?)
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,SS:SSEG,DS:DSEG
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV ES,AX
LEA DX,SOURCE
LEA SI,NAME0
MOV CX,N
CALL LOAD
; *** BEGIN ***
LEA BX,SOURCE
MOV SI,N-2
ADD BX,SI
MOV SI,0
MOV AL,X
LP: cmp al,[bx+si]
;CMP __,[BX+SI]
JGE INS
MOV DL,[BX+SI]
mov [bx+si+1],dl
dec bx
;MOV [BX+SI+1],___
;DEC _____________
JMP LP
INS: mov [bx+si+1],al
;MOV _________,AL
CLD
LEA SI,SOURCE
LEA DI,RESULT
MOV CX,N
rep movsb
;___ MOVSB
; *** END ***
LEA DX,RESULT
LEA SI,NAME1
MOV CX,N
CALL SAVE
RET
START ENDP
CSEG ENDS
END START


input1.dat 内容如下:
01030405060708090A0B
output1.dat 内容应当如下:
01 02 03 04 05 06 07 08 09 0Ahttp://jianlimoban.c321.cn/

【计算机等级考试三级PC上级题31-40(3)】相关文章:

计算机等级考试三级PC上级题精选31-40(8)10-09

计算机等级考试三级PC上级题精选31-40(1)10-09

计算机等级考试三级PC上级题精选31-40(6)10-09

计算机等级考试三级PC上级题精选31-40(4)10-09

计算机等级考试三级PC上级题精选31-40(5)10-09

计算机等级考试三级PC上级题精选31-40(7)10-09

计算机等级考试三级PC上级题精选31-40(9)10-09

计算机等级考试三级PC上级题精选31-40(10)10-09

计算机等级考试三级PC上级题精选21-30(3)10-09