就业数据资源平台
当前位置:首页 > PC技术
全国三级PC技术上机编程题10道6

第六套 
=============================================================================== 
试题说明 : 
=============================================================================== 
 请编制程序PROG1.ASM, 其功能是:内存中连续存放着十六个10 
位无符号二进制数DB(9)DB(8)…DB(0),其存放格式均为 
DB(9) DB(8) DB(7) DB(6) DB(5) DB(4) DB(3) DB(2) DB(1) DB(0) 0 0 0 0 0 0 
│←─── 低地址字节 ───→││←──高地址字节──→│ 
 请判别这十六个10位二进制数是否小于等于200H;若小于等于 
200H,则相应地在内存中存入01H;否则,存入00H。最后存放这十 
六个10位二进制数中小于等于200H的10位无符号二进制数的个数n 
(n用一个字节表示)。 
 例如: 
 内存中有 48H,C0H(10位二进制数0100100011B(123H)按48H、 
C0H的形式顺序存放);91H,40H(10位二进制数1001000101B(245H)按 
91H、40H的形式顺序存放);80H,00H(10位二进制数1000000000B 
(200H)按80H、00H的形式顺序存放);… 
 结果为 01H,00H,01H…(共十六个字节),后跟n 
 部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT 
中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放, 
由过程SAVE保存到OUTPUT1.DAT文件中。 
 填空BEGIN和END之间已给出的源程序使其完整 (空白已用横线 
标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦 
可), 或删除BEGIN和END之间原有的代码并自行编程来完成要求的 
功能。 
 对程序必须进行汇编, 并与IO.OBJ链接产生PROG1.EXE执行文 
件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调 
试中若发现整个程序中存在错误之处,请加以修改。 
=============================================================================== 
程序 : 
=============================================================================== 
 EXTRN LOAD:FAR,SAVE:FAR 
N EQU 
STAC SEGMENT STACK 
 DB 128 DUP (?) 
STAC ENDS 
DATA SEGMENT 
SOURCE DW N DUP(?) 
RESULT DB N+1 DUP(0) 
NAME0 DB ’INPUT1.DAT’,0 
NAME1 DB ’OUTPUT1.DAT’,0 
DATA ENDS  
CODE SEGMENT  
 ASSUME CS:CODE,DS:DATA,SS:STAC 
START PROC FAR 
 PUSH DS 
 XOR AX,AX 
 PUSH AX 
 MOV AX,DATA 
 MOV DS,AX 
 LEA DX,SOURCE ; 数据区起始地址 
 LEA SI,NAME0 ; 原始数据文件名 
 MOV CX,N*2 ; 字节数 
 CALL LOAD ; 从 ’INPUT1.DAT’中读取数据 
; **** BEGIN ****  
 MOV DI,OFFSET RESULT 
 MOV CH,N 
 MOV CL,___ 
 MOV BX,0 
 MOV DX,0100H 

PRO: MOV AH,BYTE PTR SOURCE[BX] ; 10位无符号二进制数高八位 
 MOV AL,______________________ ; 10位无符号二进制数低二位 
 CMP AX,_____ 
 JNBE C_0 
 MOV [DI],__ 
 INC __ 
 INC DI 
 JMP JUMP 
C_0: MOV [DI],DL 
 __________________ 
JUMP: ADD BL,2 
 DEC CH 
 JNZ PRO 
 MOV [DI],CL 
; **** END **** 
 LEA DX,RESULT ; 结果数据区首址 
 LEA SI,NAME1 ; 结果文件名 
 MOV CX,N+1 ; 结果字节数 
 CALL SAVE ; 保存结果到文件 
 RET 
START ENDP 
CODE ENDS 
END START 
=============================================================================== 
所需数据 : 
=============================================================================== 
@2 input1.dat 001 
FF C0 80 00 80 40 7F C0 FF 00 FA 40 FA 80 AA 40 CD 40 11 C0 00 00 31 80 31 40 66 40 66 C0 33 40 
#E 
@3 $output1.hex 001 
FFFEFFFEFFFFFFFFFFFEFEFEFEFEFEFEF612 
#E 
就业数据资源平台