计算机等级考试三级PC技术南开100题.docx

上传人:b****8 文档编号:10934974 上传时间:2023-02-23 格式:DOCX 页数:316 大小:80.63KB
下载 相关 举报
计算机等级考试三级PC技术南开100题.docx_第1页
第1页 / 共316页
计算机等级考试三级PC技术南开100题.docx_第2页
第2页 / 共316页
计算机等级考试三级PC技术南开100题.docx_第3页
第3页 / 共316页
计算机等级考试三级PC技术南开100题.docx_第4页
第4页 / 共316页
计算机等级考试三级PC技术南开100题.docx_第5页
第5页 / 共316页
点击查看更多>>
下载资源
资源描述

计算机等级考试三级PC技术南开100题.docx

《计算机等级考试三级PC技术南开100题.docx》由会员分享,可在线阅读,更多相关《计算机等级考试三级PC技术南开100题.docx(316页珍藏版)》请在冰豆网上搜索。

计算机等级考试三级PC技术南开100题.docx

计算机等级考试三级PC技术南开100题

三级PC南开100题

第一题:

一、请编制程序,其功能是:

将内存中由SOURCE指示的40个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT指示的内存区域,存放形式为正数个数在前,其后跟正数数组元素,然后是负数个数及负数数组元素。

例如:

内存中有1EH,91H,74H,91H,42H,30H,81H,F3H,18H,25H

结果为06H,1EH,74H,42H,30H,18H,25H,04H,91H,91H,81H,F3H

试题程序:

 

EXTRNLOAD:

FAR,SAVE:

FAR

NEQU40

STACSEGMENTSTACK

DB128DUP(?

STACENDS

DATASEGMENT

SOURCEDBNDUP(0)

RESULTDBN+2DUP(0)

NAME0DB'INPUT1.DAT',0

NAME1DB'OUTPUT1.DAT',0

NDATADBNDUP(0)

PDATADBNDUP(0)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STAC

STARTPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVES,AX;置附加段寄存器

LEADX,SOURCE;数据区起始地址

LEASI,NAME0;原始数据文件名

MOVCX,N;字节数

CALLLOAD;从'INPUT1.DAT'中读取数据

;****BEGIN****

LEASI,SOURCE

MOVDI,OFFSETPDATA;PDATA为正数数组存放缓冲区首址

MOVBX,OFFSETNDATA;NDATA为负数数组存放缓冲区首址

XORDX,DX

MOVCX,N

CLD

MAIN1:

LODSB

TESTAL,_______________

JZMAIN2

INCDH;-

MOV[BX],AL

INCBX

_______________

MAIN2:

INCDL

MOV[DI],AL;+

INCDI

MAIN3:

_______MAIN1

LEASI,PDATA

LEADI,RESULT

MOV[DI],DL

INCDI

XORCX,CX

MOVCL,DL

MAIN4:

MOVAL,_______________

MOV[DI],AL

INCDI

INCSI

LOOP_______________

MOV[DI],DH

INCDI

XORCX,CX

MOVCL,DH

MOVBX,OFFSETNDATA

MAIN5:

MOVAL,[BX]

MOV[DI],AL

INCDI

_______________

LOOPMAIN5

;****END****

LEADX,RESULT;结果数据区首址

LEASI,NAME1;结果文件名

MOVCX,N+2;字节数

CALLSAVE;保存结果到文件

RET

STARTENDP

CODEENDS

ENDSTART

第二题:

一、请编制程序,其功能是:

内存中连续存放着10个无符号8位格雷码表示的数,现将此十个数转换成十个8位二进制数,结果存入内存,其转换方法为二进制数的最高位D7与格雷码的最高位G7相同,二进制数的其余七位DK(k=6,…,0)分别为格雷码的位GK(k=6,…,0)与二进制数的位DK+1(k=6,…,0)异或的结果。

例如:

内存中有00H,03H,2BH,67H,0CH,15H,54H,02H,D8H,C7H

结果为00H,02H,32H,45H,08H,19H,67H,03H,90H,85H

 试题程序:

 

EXTRNLOAD:

FAR,SAVE:

FAR

NEQU10

STACSEGMENTSTACK

DB128DUP(?

STACENDS

DATASEGMENT

SOURCEDBNDUP(?

);顺序存放10个字节数

RESULTDBNDUP(0);存放结果

NAME0DB'INPUT1.DAT',0

NAME1DB'OUTPUT1.DAT',0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STAC

STARTPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

LEADX,SOURCE;数据区起始地址

LEASI,NAME0;原始数据文件名

MOVCX,N;字节数

CALLLOAD;从'INPUT1.DAT'中读取数据

;****BEGIN****

LEASI,SOURCE

LEADI,RESULT

MOVCX,10

AGN0:

MOVAL,[SI]

________________

MOVCX,8

MOVBX,0

AGN1:

MOVAH,0

SHLBL,1

____AL,1

RCLAH,1

CMPAH,____

________________

JMPNEXT

SET_ONE:

ORBL,01H

NEXT:

MOV____,BL

________________

LOOPAGN1

________________

MOV[DI],BL

INCSI

INCDI

LOOPAGN0

;****END****

LEADX,RESULT;结果数据区首址

LEASI,NAME1;结果文件名

MOVCX,N;结果字节数

CALLSAVE;保存结果到文件

RET

STARTENDP

CODEENDS

ENDSTART

 第三题:

一、请编制程序,其功能是:

内存中连续存放着20个十六位二进制无符号数序列,请将它们排成升序(从小到大)。

例如:

内存中有7001H,7004H,7002H…(假设后17个字均大与7004H)

结果为7001H,7002H,7004H…(后跟17个字,按从小到大的顺序排列)

试题程序:

 

EXTRNLOAD:

FAR,SAVE:

FAR

NEQU20

STACSEGMENTSTACK

DB128DUP(?

STACENDS

DATASEGMENT

SOURCEDWNDUP(?

RESULTDWNDUP(0)

NAME0DB'INPUT1.DAT',0

NAME1DB'OUTPUT1.DAT',0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STAC

STARTPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

LEADX,SOURCE;数据区起始地址

LEASI,NAME0;原始数据文件名

MOVCX,N*2;字数

CALLLOAD;从'INPUT1.DAT'中读取数据

;****BEGIN****

LEASI,SOURCE

LEADI,RESULT

MOVCX,N

NEXT0:

MOVAX,[SI]

MOV[DI],AX

ADDSI,_________

_____________________

LOOP____________

CLD

MOVBX,N-1

MAL1:

LEASI,RESULT

MOVCX,_________

NEXT:

LOD______

CMP[SI],AX

JAECONT

XCHG[SI],__________

MOV[SI-2],AX

CONT:

LOOP_______________

________________________

________MAL1

;****END****

LEADX,RESULT;结果数据区首址

LEASI,NAME1;结果文件名

MOVCX,N*2;结果字节数

CALLSAVE;保存结果到文件

RET

STARTENDP

CODEENDS

ENDSTART

第四题:

一、请编制程序,其功能是:

内存中连续存放着24个无符号二进制字序列,字的最高位为000,此序列对应某一信号在一段时间内的连续变化,现对第21个二进制字前的20个二进制字进行移动平均处理,其方法为:

将要处理的字Xi用以它为开始的连续五个字的平均数(Xi+Xi+1Xi+2Xi+3Xi+4)/5代替(余数舍去),得到新的20个无符号二进制字序列,结果存入内存。

例如:

内存中有0100H,0200H,0300H,0400H,0500H,0600H…

结果为0300H,0400H…

  试题程序:

 

EXTRNLOAD:

FAR,SAVE:

FAR

NEQU24

STACSEGMENTSTACK

DB128DUP(?

STACENDS

DATASEGMENT

SOURCEDWNDUP(?

);顺序存放24个字

RESULTDW20DUP(0);存放结果

NAME0DB'INPUT1.DAT',0

NAME1DB'OUTPUT1.DAT',0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STAC

STARTPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

LEADX,SOURCE;数据区起始地址

LEASI,NAME0;原始数据文件名

MOVCX,N*2;字数

CALLLOAD;从'INPUT1.DAT'中读取数据

;****BEGIN****

MOVDI,0

MOVSI,0

MOVCX,20

MOVBX,__________

AGN0:

MOVAX,SOURCE[SI]

PUSHSI

PUSHCX

MOV_______,_______

AGN1:

INCSI

INCSI

ADDAX,SOURCE[SI]

LOOPAGN1

______________________

DIVBX

MOVRESULT[DI],AX

INCDI

______________________

POPCX

POPSI

INCSI

______________________

LOOPAGN0

;****END****

LEADX,RESULT;结果数据区首址

LEASI,NAME1;结果文件名

MOVCX,40;结果字节数

CALLSAVE;保存结果到文件

RET

STARTENDP

CODEENDS

ENDSTART

第五题:

一、请编制程序,其功能是:

内存中从SOURCE开始连续存放着21个八位有符号数(补码),其相邻两数之间差值不超过-8至7。

对这种变化缓慢的数据可采用差分方法进行压缩。

即第一个数据不变,其后的数据取与前一数据的差值并用四位二进制补码表示,两个差值拼成一个字节,前一个差值放在高四位,后一个差值放在低四位。

例如:

原数据(X[n]):

23H,27H,2AH,29H,22H…

压缩后(Y[n]):

23H,43H,F9H…

编程按上述方法进行压缩,结果保存在RESULT开始的内存单元中。

  试题程序:

 

EXTRNLOAD:

FAR,SAVE:

FAR

NEQU10

STACSEGMENTSTACK

DB128DUP(?

STACENDS

DATASEGMENT

SOURCEDB2*N+1DUP(?

RESULTDBN+1DUP(0)

NAME0DB'INPUT1.DAT',0

NAME1DB'OUTPUT1.DAT',0

NDATADBNDUP(0)

PDATADBNDUP(0)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STAC

STARTPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVES,AX;置附加段寄存器

LEADX,SOURCE;数据区起始地址

LEASI,NAME0;原始数据文件名

MOVCX,2*N+1;字节数

CALLLOAD;从'INPUT1.DAT'中读取数据

;****BEGIN****

LEASI,SOURCE

LEADI,RESULT

CLD

MOVSB;Y[0]=X[0]

XORBX,BX;FLAG=0

MOVDX,N*2;COUNTER

COMPRESS:

LODSB;X[n]-X[n-1]

SUB_______________;FLAG=NOTFLAG

________________________

J_______LOW_HEX

MOVCL,4

________AL,CL

MOVAH,AL

JMPNEXT

LOW_HEX:

_________________________

ORAL,AH

STOSB

NEXT:

_________________________

JNECOMPRESS

;****END****

LEADX,RESULT;结果数据区首址

LEASI,NAME1;结果文件名

MOVCX,N+1;字节数

CALLSAVE;保存结果到文件

RET

STARTENDP

CODEENDS

ENDSTART

第六题:

一、请编制程序,其功能是:

将内存中存放着20个数字0~9之间的ASCII字符(包括数字0和9的ASCII字符)或SP字符(20H),请将数字0~9之间的ASCII字符(包括数字0和9的ASCII字符)转换为相应的八位二进制数,并将SP字符转换为$字符(24H)。

将按上述方法处理后得到的20个字节存入内存中。

例如:

内存中有20H(’SP’),30H(’0’),31H(’1’),31H(’1’),20H(’SP’),32H(’2’),…,39H(’9’)(共20个ASCII字符)

结果为24H(’$’),00H,01H,01H,01H,24H(’$’),02H(’2’),…,09H(’9’)(共20个字节)

  试题程序:

 

EXTRNLOAD:

FAR,SAVE:

FAR

NEQU20

STACSEGMENTSTACK

DB128DUP(?

STACENDS

DATASEGMENT

SOURCEDBNDUP(?

RESULTDBNDUP(0)

NAME0DB'INPUT1.DAT',0

NAME1DB'OUTPUT1.DAT',0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STAC

STARTPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

LEADX,SOURCE;数据区起始地址

LEASI,NAME0;原始数据文件名

MOVCX,N;字节数

CALLLOAD;从'INPUT1.DAT'中读取数据

;****BEGIN****

________________________

MOVDI,0

________________________

CHAN:

________________________

SUBAL,20H

JZCHANGE

SUBAL,____________

MOVRESULT[DI],AL

________________________

________________________

DECCX

JZEXIT

JMPCHAN

CHANGE:

MOVRESULT[DI],24H

INCDI

INCSI

JMP_______________

EXIT:

NOP

;****END****

LEADX,RESULT;结果数据区首址

LEASI,NAME1;结果文件名

MOVCX,N;字节数

CALLSAVE;保存结果到文件

RET

STARTENDP

CODEENDS

ENDSTART

第七题:

一、请编制程序,其功能是:

内存中共有30个字节型数据,找出其中的两个ASCII字符串并进行校验。

欲寻找ASCII字符串由13个字符组成:

#(23H),7个ASCII字符,*(2AH),2个ASCII字符,回车符(0DH),换行符(0AH)。

校验方法为:

对字符#及字符*之间的7个ASCII字符进行异或操作,若异或操作结果的ASCCII字符表示(异或操作结果高4位的ASCII字符表示在前,低4位的ASCII字符表示在后)与原字符串中字符*之后的两个ASCII字符相同,则将原字符串原样保存;反之,则将原字符串中的所有字符(共13个)均用字符!

(21H)代替。

例如:

内存中有33H,35H,23H(’#’,第一个字符串开始),46H,41H,30H,2EH,34H,3DH,31H,2AH(’*’),32H,31H,0DH,0AH,46H,23H(’#’,第二个字符串开始),46H,41H,30H,2EH,34H,3DH,30H,2AH(’*’),32H,31H,0DH,0AH,55H

结果为23H,46H,41H,30H,2EH,34H,3DH,31H,2AH(’*’),32H,31H(校验正确,该字符串原样保持),0DH,0AH,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H(校验错,整个字符串用字符’!

’代替)。

 试题程序:

 

EXTRNLOAD:

FAR,SAVE:

FAR

NEQU26

STACSEGMENTSTACK

DB128DUP(?

STACENDS

DATASEGMENT

SOURCEDBN+4DUP(?

RESULTDBNDUP(0)

HHDB2DUP(0)

NAME0DB'INPUT1.DAT',0

NAME1DB'OUTPUT1.DAT',0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STAC

STARTPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

LEADX,SOURCE;数据区起始地址

LEASI,NAME0;原始数据文件名

MOVCX,N+4;字节数

CALLLOAD;从'INPUT1.DAT'中读取数据

;****BEGIN****

MOVSI,0

MOVDI,0

MOVBX,2;两个ASCII字符串

REPEAT:

MOVAH,0

SEARCH:

MOVAL,SOURCE[SI]

INCSI

CMPAL,’#’

________SEARCH

MOVRESULT[DI],AL

INCDI

SEARCH1:

MOVAL,SOURCE[SI]

INCSI

CMPAL,____________

JEASCII

MOVRESULT[DI],AL

INCDI

XORAH,AL

JMP_______________

ASCII:

MOVRESULT[DI],AL

INCDI

PUSHDI

MOVDI,0

MOVDH,2

MOVDL,AH;异或结果暂存在DL中

MOVCL,4;先将异或结果高4位转换成ASCII字符

SHRAH,CL;本行开始的4行语句将一个十六进制数转换为ASCII码

CHANGE:

CMPAH,10

JLADD_0

ADDAH,’A’-’0’-10

ADD_0:

ADDAH,’0’

MOVHH[DI],AH

INCDI

DECDH

JZEXT

MOVAH,DL;再将异或结果低4位转换成ASCII字符

ANDAH,0FH

JMPCHANGE

EXT:

POPDI

MOVAL,SOURCE[SI]

MOVRESULT[DI],AL

INCSI

INCDI

MOVAH,SOURCE[SI]

MOVRESULT[DI],AH

INCSI

INCDI

MOVDL,HH

MOVDH,HH+1

CMPAX,DX

________ERR

MOVAL,0DH;校验正确

MOVRESULT[DI],AL

INCDI

MOVAL,0AH

MOVRESULT[DI],AL

INCDI

JMPLP

ERR:

SUBDI,11;校验错误

MOVAL,’!

MOVCX,____________

COVER:

MOVRESULT[DI],AL

INCDI

LOOPCOVER

LP:

________________________

JZEXIT

JMPREPEAT

EXIT:

NOP

;****END****

LEADX,RESULT;结果数据区首址

LEASI,NAME1;结果文件名

MOVCX,N;字节数

CALLSAVE;保存结果到文件

RET

STARTENDP

CODEENDS

ENDSTART

第八题:

一、请编制程序,其功能是:

内存中连续存放着10个十六位二进制数,每个数的序号依次定义为0,1,…,9。

统计每个数中位为0的个数N0,N1,…,N9(均用一个字节表示),然后按序定义将N0至N9存入内存中,最后再用一个字节这10个数中为0的位的总数n(n=N0+N1+…+N9)。

例如:

内存中有0000H,000FH,FFFFH…

结果为10H,0CH,00H…最后为n

  试题程序:

 

E

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1