首页 免费简历 职场资讯 求职指南 面试技巧 面试试题 人才测评 薪资行情 政策法规 职场维权 出国留学 考试试题 公文写作 创业指南
 中国人才指南网>>考试试题>>计算机等级>>全国计算机等级考试三级PC技术上机编程题10道(1)

全国计算机等级考试三级PC技术上机编程题10道(1)

来源:www.cnrencai.com 时间:2006-03-11

第一套
 ===============================================================================
 试题说明 :
 ===============================================================================
  请编制程序PROG1.ASM,其功能是:内存中连续存放着二个无
 符号字节序列A(k)和B(k)(k=0,…,9;下同),求序列C(k),C(k)=A(k)+B(k)。
 C(k)以字的形式按C(0),…,C(9)的顺序连续存放。
  例如:
  序列A(k)为30H,31H,61H,FFH,…;
  序列B(k)为00H,01H,F1H,0AH,…。
  则结果C(k)为0030H,0032H,0152H,0109H,…。
  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT
 中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,
 由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的源程序使其完整 (空白已用横线
 标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦
 可), 或删除BEGIN和END之间原有的代码并自行编程来完成要求的
 功能。
  对程序必须进行汇编, 并与IO.OBJ链接产生PROG1.EXE执行文
 件, 最终运行程序产生结果(无结果或结果不正确者均不得分)。调
 试中若发现整个程序中存在错误之处,请加以修改。
 ===============================================================================
 程序 :
 ===============================================================================
  EXTRN LOAD:FAR,SAVE:FAR
 N EQU 10
 STAC SEGMENT STACK
  DB 128 DUP (?)
 STAC ENDS
 DATA SEGMENT
 SOURCE DB N*2 DUP(?) ; 顺序存放A0,…,A9,B0,…,B9
 RESULT DW N DUP(0) ; 顺序存放C0,…,C9
 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,___________
  MOV BX,__
  ___________________
 PRO: MOV AH,0
  MOV AL,SOURCE[BX+10] ; 序列Bk中的一个字节
  __________________________ ; Ck=Bk+Ak
  JNC JUMP ; 无进位转JUMP
  __________________ ; 有进位,进位入AH 
 JUMP: MOV [DI],AX ; Ck=Bk+Ak的字的形式存入RESULT
  INC BX
  ________________
  DEC CX
  JNZ PRO
 ; **** END ****
  LEA DX,RESULT ; 结果数据区首址
  LEA SI,NAME1 ; 结果文件名
  MOV CX,N*2 ; 结果字节数
  CALL SAVE ; 保存结果到文件
  RET
 START ENDP
 CODE ENDS
 END START
 ===============================================================================
 所需数据 :
 ===============================================================================
 @2 input1.dat 001
 FF 80 7F 00 7F 80 FF 80 81 00 FF FF 80 00 81 00 00 81 FE FF
 #E
 @3 $output1.hex 001
 01FE80FE00FFFFFFFFFE7FFF00FFFEFE80FE00FF7F
 #E
 
 第二套
 ===============================================================================
 试题说明 :
 ===============================================================================
  请编制程序PROG1.ASM, 其功能是: 内存中连续存放着二个有
 符号字节序列A(k)和B(k)(k=0,…,9;下同),求序列C(k),C(k)=A(k)-B(k)。
 C(k)以有符号字的形式按C(0),…,C(9)的顺序连续存放。
  例如:
  序列A(k)为30H,80H(-128D),7FH(127D),…;
  序列B(k)为00H,7FH(127D),80H(-128D),…。
  则结果C(k)为0030H,FF01H,00FFH,…。
  部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT
 中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,
 由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的源程序使其完整 (空白已用横线
 标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦
 可), 或删除BEGIN和END之间原有的代码并自行编程来完成要求的
 功能。
  对程序必须进行汇编, 并与IO.OBJ链接产生PROG1.EXE执行文
 件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调
 试中若发现整个程序中存在错误之处,请加以修改。
 ===============================================================================
 程序 :
 ===============================================================================
  EXTRN LOAD:FAR,SAVE:FAR
 N EQU 10
 STAC SEGMENT STACK
  DB 128 DUP (?)
 STAC ENDS
 DATA SEGMENT
 SOURCE DB N*2 DUP(?) ; 顺序存放A0,…,A9,B0,…,B9
 RESULT DW N DUP(0) ; 顺序存放C0,…,C9
 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 ****
  LEA DI,RESULT ; 结果从RESULT开始存放
  MOV CX,N
  MOV BX,0
  MOV AH,0
 PRO: MOV AL,SOURCE[BX] ; 序列Ak中的一个字节
  MOV DH,AL
  ___________________ ; Ck=Ak-Bk
  JNO STAY ; 无溢出转STAY
  ADD DH,0 ; 有溢出
  ___ DEC1 ; Ak为正数(为一个正数减去一个负
  ; 数,结果为负数的溢出情况)转DEC1
  MOV AH,____ ; Ak为负数(为一个负数减去一个正
  ; 数,结果为正数的溢出情况)将结果
  ; 变为有符号字的形式(为负)
  JMP _____
 DEC1: MOV AH,00H ; 将结果变为有符号字的形式(为正)
  JMP _____
 STAY: ____ ; AL中数的符号扩展到AH,正的字节
  ; 变成正的字,负的字节变成负的字
 JUMP1: MOV [DI],AX
  ADD DI,2
  INC BX
  DEC CX
  JNZ PRO
 ; **** END ****
  LEA DX,RESULT ; 结果数据区首址
  LEA SI,NAME1 ; 结果文件名
  MOV CX,N*2 ; 结果字节数
  CALL SAVE ; 保存结果到文件
  RET
 START ENDP
 CODE ENDS
 END START
 ===============================================================================
 所需数据 :
 ===============================================================================
 @2 input1.dat 001
 80 C0 81 00 7F 40 3F 7F C0 81 7F 40 7F 00 7F 3F 40 80 81 9C
 #E
 @3 $output1.hex 001
 FE007F00FD00FFFFFFFFFEFF000000FFC0FF1A00A1
 #E
 
 第三套
 ===============================================================================
 试题说明 :
 ===============================================================================
  请编制程序PROG1.ASM, 其功能是: 内存中连续存放着二个无
 符号字节序列A(k)和B(k)(k=0,…,9;下同),求序列C(k),C(k)=A(k)×B(k)。
 C(k)以字的形式按C(0),…,C(9) 的顺序连续存放。
  例如:
  序列A(k)为FFH,80H,7FH,00H,…;
  序列B(k)为FFH,80H,01H,02H,…。
  则结果C(k)为FE01H,4000H,007FH,0000H,…。
  部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT
 中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,
 由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的源程序使其完整 (空白已用横线
 标出, 每行空白一般只需一条指令,但采用功能相当的多条指令亦
 可), 或删除BEGIN和END之间原有的代码并自行编程来完成要求的
 功能。
  对程序必须进行汇编, 并与IO.OBJ链接产生PROG1.EXE执行文
 件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调
 试中若发现整个程序中存在错误之处,请加以修改。
 ===============================================================================
 程序 :
 ===============================================================================
  EXTRN LOAD:FAR,SAVE:FAR
 N EQU 10
 STAC SEGMENT STACK
  DB 128 DUP (?)
 STAC ENDS 
 DATA SEGMENT 
 SOURCE DB N*2 DUP(?)
 RESULT DW N 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 **** 
  ________________,OFFSET RESULT 
  MOV BX,0
  _________________
 PRO: ________________,SOURCE[BX+N]
  ________________
  MOV [DI],AX
  ADD DI,2
  INC BX
  _______________
  JNZ PRO
 ; **** END **** 
  LEA DX,RESULT ; 结果数据区首址
  LEA SI,NAME1 ; 结果文件名
  MOV CX,N*2 ; 结果字节数
  CALL SAVE ; 保存结果到文件
  RET
 START ENDP
 CODE ENDS
 END START
 ===============================================================================
 所需数据 :
 ===============================================================================
 @2 input1.dat 001
 FF 80 7F 00 01 80 FF 80 01 00 FF 80 01 02 00 FF FF 03 FF FF
 #E
 @3 $output1.hex 001
 FE01FFBF80FFFFFFFFFF7F80FE017FFE00FFFFFF3C
 #E
 
 第四套
 ===============================================================================
 试题说明 :
 ===============================================================================
  请编制程序PROG1.ASM, 其功能是: 内存中连续存放着二个有
 符号字节序列A(k)和B(k)(k=0,…,9;下同),求序列C(k),C(k)=A(k)÷B(k)。
 运算结果按序以字的形式连续存放(低字节为商,高字节为余数)。
  例如:
  序列A(k)为FFH(-1D), 81H(-127D),C0H(-64D),80H(-128D),…;
  序列B(k)为81H(-127D),40H(64D),81H(-127D),01H(1D),…。
  则结果C(k)为FF00H(00H(0D)为商、FFH(-1D)为余数),C1FFH,
 C000H,0080H,…。
  部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT
 中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,
 由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的源程序使其完整 (空白已用横线
 标出, 每行空白一般只需一条指令,但采用功能相当的多条指令亦
 可), 或删除BEGIN和END之间原有的代码并自行编程来完成要求的
 功能。
  对程序必须进行汇编, 并与IO.OBJ链接产生PROG1.EXE执行文
 件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调
 试中若发现整个程序中存在错误之处,请加以修改。
 ===============================================================================
 程序 :
 ===============================================================================
  EXTRN LOAD:FAR,SAVE:FAR
 N EQU 10
 STAC SEGMENT STACK
  DB 128 DUP (?)
 STAC ENDS
 DATA SEGMENT
 SOURCE DB N*2 DUP(?)
 RESULT DW N 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,___________
  MOV CX,N
 PRO: MOV AL,____________
  ____ ; AL中数的符号扩展到AH,正的字节
  ; 变成正的字,负的字节变成负的字
  _____ SOURCE[BX+N]
  MOV ____,AX
  ADD DI,2
  INC BX
  DEC CX
  JNZ PRO
 ; **** END **** 
  LEA DX,RESULT ; 结果数据区首址
  LEA SI,NAME1 ; 结果文件名
  MOV CX,2*N ; 结果字节数
  CALL SAVE ; 保存结果到文件
  RET
 START ENDP
 CODE ENDS
 END START
 ===============================================================================
 所需数据 :
 ===============================================================================
 @2 input1.dat 001
 FF 81 C0 80 00 80 40 7F 20 7F 81 40 81 01 7F 80 C0 81 01 7F
 #E
 @3 $output1.hex 001
 FF00003EFF3F7FFFFFFFFEFF00FF00FFDFFFFEFF1F
 #E
 
  共2页: 1 [2] 下一页   

计算机等级考试三级(C语言)上机考试试题总结
2004年全国计算机等级考试三级C语言全真上机试题解析
【编辑:中国人才指南网】 【返回顶部】
相关文章
·计算机等级考试三级(C语言)上机考试试题总结  (2006-03-11)
·全国计算机等级考试三级信息、网络、数据库上机编程题15道  (2006-03-11)
·2004年9月全国计算机等级考试三级(PC技术)笔试试卷  (2006-03-11)
·2004年9月全国计算机等级考试三级(网络技术)笔试试卷  (2006-03-11)
·2004年4月全国计算机等级考试三级(PC技术)笔试试卷  (2006-03-11)
·2004年4月全国计算机等级考试三级(网络技术)笔试试卷  (2006-03-11)
·2004年4月全国计算机等级考试三级(数据库技术)笔试试卷  (2006-03-11)
·2003年9月全国计算机等级考试三级(网络技术)笔试试卷  (2006-03-11)
·2003年4月全国计算机等级考试三级(数据库技术)笔试试卷  (2006-03-11)
·2003年4月全国计算机等级考试三级(网络技术)笔试试卷  (2006-03-11)
相关栏目
考研英语
英语四级
英语六级
高考试题
考研试题
职称英语
司法考试
医师考试
成人高考
公务员
报关员
考试动态
考试辅导
自考试题
英语试题
今日推荐
热门文章
·2004年全国计算机等级考
·全国计算机等级考试三级
·计算机等级考试三级(C
·2004年9月全国计算机等
·2004年9月全国计算机等
·2004年4月全国计算机等
·2000年4月全国计算机等
·2004年4月全国计算机等
·2003年9月全国计算机等
·2003年4月全国计算机等
·2004年4月全国计算机等
·2001年4月全国计算机等
·2001年4月全国计算机等
·2003年4月全国计算机等
·中科红旗系统管理考试模

中国人才指南网 ® 版权所有 网站地图