三级PC上机南开100题.docx

上传人:b****3 文档编号:2812222 上传时间:2022-11-15 格式:DOCX 页数:284 大小:84.28KB
下载 相关 举报
三级PC上机南开100题.docx_第1页
第1页 / 共284页
三级PC上机南开100题.docx_第2页
第2页 / 共284页
三级PC上机南开100题.docx_第3页
第3页 / 共284页
三级PC上机南开100题.docx_第4页
第4页 / 共284页
三级PC上机南开100题.docx_第5页
第5页 / 共284页
点击查看更多>>
下载资源
资源描述

三级PC上机南开100题.docx

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

三级PC上机南开100题.docx

三级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

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。

运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

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

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

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

试题程序:

 

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

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。

运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

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

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

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

试题程序:

 

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个字,按从小到大的顺序排列)

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。

运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

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

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

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

试题程序:

 

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…

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。

运算结果要求从RESULT开始存放,由过程S

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

当前位置:首页 > 经管营销 > 经济市场

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

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