三级PC上机南开100题.docx
- 文档编号:2812222
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:284
- 大小:84.28KB
三级PC上机南开100题.docx
《三级PC上机南开100题.docx》由会员分享,可在线阅读,更多相关《三级PC上机南开100题.docx(284页珍藏版)》请在冰豆网上搜索。
三级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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三级 PC 上机 南开 100