三级PC技术机试-212_真题-无答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三级PC技术机试-212
(总分100,考试时间90分钟)
上机题
1. 请编制程序PROG1.ASM,其功能是:将内存中的20个有符号字节数据依次除以5,并按照四舍五入原则(即余数绝对值的2倍小于除数,则舍去)将商存入指定的内存区域。

例如:
内存中有:10H,01H,27H,00H,FFH,F8H,……
结果为:03H,00H,08H,00H,00H,FEH,……
部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DA T中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。

调试中若发现整个程序中存在错误之处,请加以修改。

试题程序:
EXTRN LOAD:FAR,SA VE:FAR
N EQU 20
X EQU 5
DSEG SEGMENT
SOURCE DB N DUP(?)
RESULT DB N DUP(0)
NAME0 DB 'INPUT1.DA T',0
NAME1 DB 'OUTPUT1.DAT',0
DSEG ENDS
SSEG SEGMENT STACK
DB 256 DUP (?)
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEC, SS:SSEC, 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 SI,SOURCE
LEA DI,RESULT
CONT: LODSB
CBW
MOV DL,X
IDIV DL
(1) ; 余数为负数吗
JNS PLUS
(2) ; 求绝对值
ADD AH,AH
CMP AH,DL
JB (3)
SUB AL,1
JMP NEXT
PLUS: ADD (4)
CMP AH,DL
JB NEXT
(5)
NEXT: STOSB
CMP SI,N
JB CONT
; *** END ***
LEA DX,RESULT
LEA SI,NAME 1
MOV CX,N
CALL SA VE
RET
START ENDP
CSEG ENDS
END START。

相关文档
最新文档