[计算机等级考试三级含金量]计算机等级考试三级PC上级题精选11-15
【shitiku.jxxyjl.com--等级考试】
PC上机题之11
以下内容为程序代码:
;* 请编制程序PROG1.ASM,其功能是:内存中连续存放着二十个
;* ASCII字符,如果是0~9或A~F之间的字符,请把它们转换成二进制
;* 数;若为其他字符,不作转换。
;* 例如:
;* 内存中有
;* 30H("0"),31H("1"), 61H("a"),41H("A"),42H("B"), ...
;* 结果为 00H,01H,61H,0AH,0BH ...
;* 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT
;* 中读入SOURCE开始的内存单元中, 运算结果要求从RESULT开始存
;* 放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间
;* 已给出的源程序使其完整(空白已用横线标出,每行空白一般只需
;* 一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END
;* 之间原有的代码并自行编程来完成要求的功能。
;* 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文
;* 件, 最终运行程序产生结果 (无结果或结果不正确者均不得分)。
;* 调试中若发现整个程序中存在错误之处,请加以修改。
EXTRN LOAD:FAR,SAVE:FAR
N EQU 20
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(?)
RESULT DB 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 ; 字节数
CALL LOAD ; 从 "INPUT.DAT"中读取数据
; **** BEGIN ****
LEA SI,SOURCE
mov di,offset result
;____ DI,OFFSET RESULT
mov cx,N
;__________________
NEXT: MOV AL,[SI]
CMP AL,"0"
JB INVALID
cmp al,"9"
jbe strip
;CMP AL,____
;JBE ____
CMP AL,"A"
JB INVALID
cmp al,"F"
ja invalid
;CMP AL, ____
;JA ____
ADD AL,9
STRIP: AND AL,0FH
INVALID: MOV [DI],AL
ADD SI,1
ADD DI,1
loop next
;LOOP ____
; **** END ****
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名
MOV CX,N ; 结果字节数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START
input1.dat 内容如下:
33 34 23 45 75 98 46 87 41 AC 30 63 66 61 76 39 88 77 24 DE
output1.dat 内容应当如下:
03 04 23 0E 75 98 0F 87 0A AC 00 63 66 61 76 09
88 77 24 DE
上机题之12
以下内容为程序代码:
;* 请编制程序PROG1.ASM, 其功能是: 计算3×10矩阵中每一列元
;* 素(八位二进制数)之和, 并将其结果存放在指定的内存区中。
;* 例如:
;* 内存中有 0,0,0,0,0,0,0,0,0,0(第1行),1,1,1,1,1,1,1,1,1,1
;* (第2行),9,9,9,9,9,9,9,9,9,9(第3行)
;* 结果为 000AH,000AH,...,000AH
;* 部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT
;* 中读入SOURCE开始的内存单元中, 转换结果要求从RESULT开始存放,
;* 由过程SAVE保存到文件OUTPUT1.DAT中。
;* 填空BEGIN和END之间已经给出的一段源程序使其完整,填空处已
;* 经用横线标出, 每个空白一般只需要填一条指令或指令的一部分(指
;* 令助记符或操作数), 考生也可以填入功能相当的多条指令, 或删去
;* BEGIN和END之间原有的代码并自行编程来完成要求的功能。
;* 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,
;* 最终运行程序产生结果(无结果或结果不正确者均不得分)。
EXTRN LOAD:FAR,SAVE:FAR
N EQU 30
DSEG SEGMENT
SOURCE DB N DUP(?)
SRC DW SOURCE
RESULT DW N/3 DUP(0)
I EQU 3
J EQU 10
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 SI,SOURCE
LEA DI,RESULT
MOV BX,1
LPJ: MOV DX,0
MOV CX,1
LPI: MOV AL,[SI]
mov ah,0
;_______________
ADD DX,AX
add si,10
;ADD SI,__
INC CX
CMP CX,I
JBE LPI
MOV [DI],DX
add di,2
;ADD DI,____
INC SRC
MOV SI,SRC
inc bx
cmp bx,J
;_______________
;CMP BX,____
JBE LPJ
; *** END ***
LEA DX,RESULT
LEA SI,NAME1
MOV CX,N*2/3
CALL SAVE
RET
START ENDP
CSEG ENDS
END START
input1.dat 内容如下:
010101010101010101010202020202020202020204040404040404040404
output1.dat 内容应当如下:
07 00 07 00 07 00 07 00 07 00 07 00 07 00 07 00
07 00 07 00
上机题之13
以下内容为程序代码:
;* 请编制程序PROG1.ASM, 其功能是: 内存中连续存放着二十个
;* 无符号字节数序列,求出该序列的最大值和最小值。 结果存放形
;* 式为:先按原序存放二十个需处理的无符号字节序列,后跟该序列
;* 的最大值和最小值(最大值在前,最小值在后)。
;* 例如:
;* 内存中有 01H,02H,03H, ...
;* 结果为 01H,02H,03H, ... (共二十个需处理的原无符号字
;* 节序列),后跟该序列的最大值和最小值 (最大值在前,最小值在
;* 后)。
;* 部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT
;* 中读入SOURCE开始的内存单元中, 运算结果要求从RESULT开始存
;* 放,由过程SAVE保存到文件OUTPUT1.DAT中。
;* 填空BEGIN和END之间已给出的源程序使其完整(空白已用横线
;* 标出, 每行空白一般只需一条指令, 但采用功能相当的多条指令
;* 亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求
;* 的功能。
;* 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文
;* 件,最终运行程序产生结果 (无结果或结果不正确者均不得分)。
;* 调试中若发现整个程序中存在错误之处,请加以修改。
EXTRN LOAD:FAR,SAVE:FAR
N EQU 20
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(?)
RESULT DB 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 ; 字节数
CALL LOAD ; 从 ""INPUT""中读取数据
; **** BEGIN ****
; 最大值放在BH中,最小值放在BL中
LEA SI,SOURCE
lea di,result
;LEA ____,RESULT
MOV BH,[SI] ; 第一个字节既为最大值
MOV BL,BH ; 又为最小值
MOV [DI],BH
add si,1
add di,1 ; 或 inc di
;ADD SI, ____
;__________________
MOV CX,N-1
NEXT: MOV AL,[SI]
CMP AL,BH
jb chkmin
;____ CHKMIN
MOV BH,AL
JMP ENDL
CHKMIN: CMP AL,BL
JAE ENDL
mov bl,al
;MOV ____,AL
ENDL: MOV [DI],AL
ADD SI,1
ADD DI,1
LOOP NEXT
mov [di],bh
mov [di+1],bl
;MOV [DI],____
;______________
; **** END ****
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名
MOV CX,2+N ; 结果字节数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START
input1.dat 内容如下:
71 A2 34 3F 39 FC 48 43 44 45 39 32 38 41 48 37 36 35 38 87
output1.dat 内容应当如下:
71 A2 34 3F 39 FC 48 43 44 45 39 32 38 41 48 37
36 35 38 87 FC 32
上机题之14
以下内容为程序代码:
;* 请编制程序PROG1.ASM, 其功能是: 对一个由可打印ASCII字符
;* (ASCII码20H~7FH)组成的字符串可采用下列方法进行压缩:从串首
;* 开始向后扫描, 如某字符单独出现则该字符不变, 如某字符连续出
;* 现n次, 则该字符用ESC(1BH),n,<原字符>三个字节来代替(假定n不
;* 超过255)。例如:
;* 原串 : 41H,43H,43H,43H,43H,43H,43H,61H,00H ("ACCCCCCa")
;* 压缩后: 41H,1BH,06H,43H,61H,00H
;* 设内存中从SOURCE开始有一字符串, 其以00H结束, 长度不超
;* 过100。试编程对其进行压缩, 结果存入RESULT开始的内存单元。
;* 部分程序已在PROG1.ASM中给出, 请填空BEGIN和END之间已给
;* 出的源程序使其完整(空白已用横线标出, 每行空白一般只需一条
;* 指令, 但功能相当的多条指令亦可)或删除BEGIN和END之间原有的
;* 代码并自行编写程序片段来完成要求的功能。
;* 原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内
;* 存单元中, 结果要求从RESULT开始存放, 由过程SAVE保存到文件
;* OUTPUT1.DAT中。
;* 对程序必须进行汇编, 并与IO.OBJ链接产生PROG1.EXE 执行文
;* 件, 最终运行程序产生结果(无结果或结果不正确者均不得分)。
EXTRN LOAD:FAR,SAVE:FAR
N EQU 100
ESC_CODE EQU 27
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(0)
RESULT DB 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
MOV ES,AX ; 置附加段寄存器
LEA DX,SOURCE ; 数据区起始地址
LEA SI,NAME0 ; 原始数据文件名
MOV CX,N ; 字节数
CALL LOAD ; 从 "input1.dat"中读取数据
; **** BEGIN ****
LEA SI,RESULT
LEA DI,SOURCE
CLD
INC DI
L0: mov al,[di-1]
;____________________
CMP AL,0
JE QUIT
MOV CX,0FFFFH ; SET THE COUNTER TO 0FFFFH
rep scasb
;____________________ ; 字符串重复搜索, CX=0FFFFH-n
NEG CX ; 10000H-CX->CX
dec cx
;____________________ ; 获得重复次数n
CMP CX,1
ja compress
;J__ COMPRESS
MOV [SI],AL
INC SI
jmp L0
;JMP ________
COMPRESS: MOV [SI],BYTE PTR ESC_CODE
MOV [SI+1],CL
MOV [SI+2],AL
add si,3
;____________________
JMP L0
QUIT:
MOV [SI],AL ; STORE THE ""00H""
; **** END ****
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名起始地址
MOV CX,N ; 字节数
CALL SAVE ; 保存结果到"output1.dat"文件中
RET
START ENDP
CODE ENDS
END START
input1.dat 文件内容如下:
41 42 42 42 65 42 42 42 42 42 42 42 42 42 42 42
42 42 42 42 42 42 42 42 42 42 42 42 42 42 43 44
44 44 45 48 48 48 48 48 48 48 48 48 48 48 48 48
48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
48 48 48 48 48 48 49 4A 4C 47 47 47 47 47 47 47
47 47 47 47 47 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D
4D 4D 4D 00
output1.dat 文件内容应当如下:
41 1B 03 42 65 1B 19 42 43 1B 03 44 45 1B 23 48
49 4A 4C 1B 0C 47 1B 0E 4D 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00
上机题之15
以下内容为程序代码:
;* 请编制程序PROG1.ASM,其功能是:
;* 对内存中存放的六组带符号16位二进制数(每组由三个数组成,
;* 均不为零)进行处理。处理方法为:当每组中负数多于正数时,将组内
;* 负数变成正数(但绝对值不变,下同),组内正数不变。反之,将组内正
;* 数变成负数,组内负数不变。变换好的数按原序存放在内存中。
;* 例如:
;* 内存中有 0003H,0001H,0002H,0003H,0004H,FFFFH,FFFEH,
;* FFFDH,0001H,FFFEH,FFFDH,FFFFH,…(共六组18个数)
;* 结果为 FFFDH,FFFFH,FFFEH,FFFDH,FFFCH,FFFFH,0002H,
;* 0003H,0001H,0002H,0003H,0001H…(共18个数)
;* 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT
;* 中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,
;* 由过程SAVE保存到文件OUTPUT1.DAT中。
;* 填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标
;* 出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),
;* 或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
;* 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,
;* 最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中
;* 若发现整个程序中存在错误之处, 请加以修改。
EXTRN LOAD:FAR,SAVE:FAR
N EQU 18
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DW N 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 SI,0
MOV DI,0
MOV BX,6
REPT1: MOV DX,0
mov cx,3
;_______________
CAMP: MOV AX,SOURCE[SI]
add si,2
;________________________
CMP AX,0
JL CONT
JMP NEXT
CONT: INC DX
NEXT: LOOP CAMP
SUB SI,6
MOV CX,3
CMP DX,2
JAE NEG1
jb next1
;___ NEXT1
NEG1: MOV AX,SOURCE[SI]
add si,2
;_______________
CMP AX,0
JL NEG2
JMP NOTNEG
NEG2: neg ax
;_________________
NOTNEG: MOV RESULT[DI],AX
add di,2
;_______________________
LOOP NEG1
JMP NEXT2
NEXT1: MOV AX,SOURCE[SI]
add si,2
;_________________
CMP AX,0
JG NEG3
JMP NOTNEG1
NEG3: NEG AX
NOTNEG1: MOV RESULT[DI],AX
add di,2
;__________________
LOOP NEXT1
NEXT2: DEC BX
JZ EXIT
jmp rept1
;___________________
EXIT: NOP
; **** END ****
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名
MOV CX,N*2 ; 结果字节数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START
input1.dat 内容如下:
03 00 FF FF FD FF 03 00 01 00 02 00 03 00 04 00 FF FF FE FF FD FF 01 00 FE FF FD FF FF FF FD FF 01 00 03 00
output1.dat 内容应当如下:
03 00 01 00 03 00 FD FF FF FF FE FF FD FF FC FF
FF FF 02 00 03 00 01 00 02 00 03 00 01 00 FD FF
FF FF FD FF
相关试题
- [全国计算机等级考试三级难度]2002年全国计算机等级考试三级笔试样题(Visual Basic语言程序设计)
- 2001年4月1日中美撞机|2001年4月 全国计算机等级考试二级笔试试题基础部分和FoxBASE语言程序设计
- 【2000年4月20日是什么星座】2000年4月 全国计算机等级考试一级笔试试卷Windows
- 计算机等级考试三级含金量_计算机等级考试三级PC上级题精选16-20
- 【全国计算机等级考试三级难度】2002年全国计算机等级考试三级笔试样题(Visual FoxPro语言程序设计 )
- 2001年4月1日中美撞机|2001年4月 全国计算机等级考试一级笔试试题Windows
- 1999年11月_1999年 全国计算机等级考试三级(B)笔试试卷
- 【计算机等级考试三级含金量】计算机等级考试三级PC上级题精选6-10
- 全国计算机等级考试三级难度_2002年全国计算机等级考试三级笔试样题(信息管理技术)
- 【2000年4月20日是什么星座】2000年4月 三级(B)笔试试卷
-
2005年正月17_2005年9月17二级C笔试试题答案详细阅读
选择题01-05)CACDC 06-10)DAABB11-15)ACBBA 16-20)CCDAB21-25)DCABC 26-30)DDABD31-35)BCCBA 36-40)DCCAD41-45)ADBAC 46-50)DABAD填空题1 数据库系统阶段2 空间3...
-
[计算机等级考试三级含金量]计算机等级考试三级PC上级题精选21-25详细阅读
上机题之21以下内容为程序代码:;* 请编制程序PROG1 ASM,其功能是:内存中连续存放着十个无符;* 号8位二进制数,现将此十个数转换成十个8位格雷码表示的数,结果;* 存入内存。其转换方法为格雷码的最高位g[7]与二进制数的最高位d[7];* 相同, 格雷码的其余七位g[k]...
-
2006年二级建造师网上可查询吗|2006年二级VF笔试答案(含试题)详细阅读
visual foxpro数据库程序设计(考试时间90分钟,满分100分)一、选择题((1)~(35)每小题2分,共70分)下列各题a)、b)、c)、d)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)数据的存储结构是指a) 存储在外存中的数据b) 数据...
-
2005年九月三_2005年9月17三级网络技术笔试试题答案详细阅读
选择题:01-05)DCABD 06-10)BBDCA11-15)BCABD 16-20)CABAD21-26)ADBCC 26-30)BADCB31-35)CBDBD 36-40)CCBBA41-45)DDABA 46-50)BCCBD51-55)CDDCA 56-60)A...
-
全国计算机等级考试二级c语言历年真题_2005年全国计算机等级考试二级C语言真题3详细阅读
第3页 (45)有以下程序point(char *p){ p+=3;}main(){ char b[4]={a,b,c,d},*p=b; point(p); printf(%c n,*p);}程序运行后的输出结果是 AA)aB)...
-
[公共基础模拟题及答案]二级公共基础模拟题第三套试题详细阅读
(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素 D)没有共同点(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba(3)链表不具有的特点是A)不必事先估...
-
2005年9月二十四午时|2005年9月二级VB笔试真正标准答案详细阅读
选择题【 1- 5】 CACDC 【 6-10】 DAABB 【11-15】 BCCDC 【16-20】 CABBA 【21-25】 DAADC 【26-30】 ADBAC 【31-35】 CCDAB 填空题【1】数据库系统 【2】空间...
-
全国计算机等级考试二级c语言历年真题|2005年全国计算机等级考试二级C语言真题2详细阅读
第2页 (29)有以下程序main(){ int a[3][3],*p,i; p=&a[0][0]; for(i=0;i...
-
[计算机等级考试一级考试题目]计算机等级考试一级B考试自测题详细阅读
1 现代微型机中采用的主要元件是()。 A)电子管 B)晶体管 C)中、小规模集成电路 D)大规模、超大规模集成电路 正确答案:D 2 计算机之所以能按人们的意志自动进行工作,主要是因为采用了()。 A)二进制数制 B)高速电子元件 C)存储程序控制 D)程序设计语言 正确答案:C 3 下列...
-
计算机等级考试三级含金量_计算机等级考试三级PC上级题精选11-15详细阅读
PC上机题之11以下内容为程序代码:;* 请编制程序PROG1 ASM,其功能是:内存中连续存放着二十个;* ASCII字符,如果是0~9或A~F之间的字符,请把它们转换成二进制;* 数;若为其他字符,不作转换。;* 例如:;* 内存中有;* 30H(...