29 喜欢·102 浏览
解答题

请编制程序,其功能是:内存中连续存放着10个十六位二进制数。分别对每个数的高位字节和低位字节进行逻辑与运算及逻辑或运算。运算结果以字的形式按序连续存放(低位字节存入逻辑与运算的结果,高位字节存入逻辑或运算的结果)。

例如:

内存中有:AA55H,55AAH,FFAAH

结果为: PP00H,FF00H,FFAAH

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放, 由过程SAVE保存到文件OUTPUT1.DAT中。

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

对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

EXTRN LOAD:FAR,SAVE:FAR

N EQU 3

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,NANE0 ;原始数据文件名

MOV CX,N*2 ;字节数

CALL LOAD ;从'INPUT1.DAT'中读取数据

; ********* BEGIN **********

MOV DI,OFFSET RESULT

MOV CX,N

MOV BX,00

PRO: MOV AX, (1)

MOV DX,AX

AND (2) ,DH

(3) AH,AL

MOV (4) ,DL

ADD BX,2

(5)

ADD DI,2

(6)

JNZ PRO

; ******** END ********

LEA DX,RESULT ;结果数据区首址

LEA SI,NAME1 ;结果文件名

NOV CX,N*2 ;结果字节数

CALL SAVE ;保存结果到文件

RET

START ENDP

CODE ENDS

END START

主观题和计算题请自行在草稿纸上作答

题目答案

(1)SOURCE[BX] (2)DL (3)OR(4)AL (5)MOV [DI]AX (6)DECCX(1)SOURCE[BX] (2)DL (3)OR(4)AL (5)MOV [DI],AX (6)DECCX 解析:该程序的功能是:将每个16位二进制数的高8位和低8位分别进行逻辑“与”运算和逻辑“或”运算,并将运算结果以字的形式按序连续存放,低字节存放逻辑“与”运算的结果,高字节存放逻辑“或”运算的结果。 程序的堆栈段定义了一个128字节的堆栈区。

答案解析

暂无解析
举一反三
解答题

请编制程序,其功能是:内存中连续存放着10个无符号8位格雷码表示的数,现将此10个数转换成10个8位二进制数,结果存入内存,其转换方法为二进制数的最高位D[7]与格雷码的最高位G[7]相同,二进制数的其余七位D[k](k=6,…,0)分别为格雷码的位G[k](k=6,…,0)与二进制数的位D[k+1](k=6,…,0)异或的结果。

例如:

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

结果为:00H,02H,32H,45H,081-I,19H,67H,03H,90H,85H

部分程序已给出,其中原始数据由过程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 DUP(?) ; 顺序存放10个字节数

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 ; 从INPUT1.DAT中读取数据

;* ***BEGIN****

LEA SI,SOURCE

LEA DI,RESULT

MOV CX, 10

AGN0: MOV AL,[SI]

(1)

MOV CX,8

MOV BX,0

AGN1: MOV AH,0

SHL BL,1

(2) AL,1

RCL AH, 1

CMP AH, (3)

(4)

JMP NEXT

SET ONE: OR BL,01H

NEXT: MOV (5) ,BL

(6)

LOOP AGN1

(7)

MOV [DI],BL

INC SI

INC DI

LOOP AG

主观题和计算题请自行在草稿纸上作答

题目答案

(1)PUSH CX (2) RCL (3) BH (4) JNE SET ONE(5) BH (6) AND BH01H (7) POP CX(1)PUSH CX (2) RCL (3) BH (4) JNE SET ONE(5) BH (6) AND BH,01H (7) POP CX 解析:本题要求将8位的格雷码表示的数据转换成8位的二进制数。程序中是用寄存器 CX作计数器,使用逻辑左

答案解析

暂无解析
解答题

由于计算机信息系统本质上是一种人一机系统,所以面向管理的计算机信息系统建设就比单纯的技术性工程复杂得多,这反映了基于管理的计算机信息系统建设的【 】性。

主观题和计算题请自行在草稿纸上作答

题目答案

社会社会 解析:基于管理的计算机信息系统开发涉及到技术和社会的内容。系统开发的社会性是由于计算机信息系统本质上是一种人-机系统。

答案解析

暂无解析
解答题

Pentium微处理器在虚拟8086模式下访问存储器时,段地址由【 】寄存器提供。

主观题和计算题请自行在草稿纸上作答

题目答案

段段 解析:本题考查虚拟8086模式的概念。Pentium微处理器在虚拟8086模式下访间存储器时,段地址由段寄存器提供。正确答案为段。

答案解析

暂无解析
解答题

若(SS)=2000H,(BP)=3000H,(SI)=4000H,指令MOV AL,[BP+SI+10H]中源操作数的物理地址是【 】H。

主观题和计算题请自行在草稿纸上作答

题目答案

2701027010 解析:本题考查寄存器寻址方式的概念。寻址方式就是指令中用于说明操作数怎样存放以及如何寻找操作数的方法。80x86的寻址方式分为3种类型:立即寻址方式、寄存器寻址方式和存储器寻址方式。本题即存储器寻址方式中的基址变址寻址方式。在这种寻址方式中,操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和。BP+SI+10H=7010,(SS)=2000H,因此源操作数的物理地址27010。正确答案为27010。

答案解析

暂无解析
解答题

函数Rdata实现从文件in.dat中读取一篇英文文章存入到字符串数组string中,请编写函数CharLeft,其功能是:以行为单位把字符串中的所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组string中,最后调用函数Wdata,把结果string输出到文件out.dat中。 原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。注意:部分源程序已经给出。 请勿改动主函数main、读数据函数Rdata和输出数据函数Wdata的内容。

主观题和计算题请自行在草稿纸上作答

题目答案

【审题关键句】以行为单位把字符串中的所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。 【解题思路】 ①首先定义整型循环变量i、j和表示字符串长度的变量str,以及字符局部变量ch。 ②在第一层for循环语句中,循环变量i从0开始,依次递增直到其值等于maxline,在循环体中,首先对字符串string[i]利用库函数strlen求其长度,把此值赋给变

答案解析

暂无解析
解答题

影响软件的可维护性的因素有三个,它们是可理解性、可测试性和【 】。

主观题和计算题请自行在草稿纸上作答

题目答案

可修改性可修改性 解析:影响软件的可维护性的因素有三个,它们是可理解性、可测试性和可修改性。

答案解析

暂无解析
解答题

函数ReadDat实现从文件in.dat中读取一篇英文文章,存入到字符串数组)xx中;请编制函数encryptChat,按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组XX对应的位置上,最后调用函数WriteDat把结果XX输出到文件 out.dat中。 替代关系:f(p)=p*11 mod 256,mod为取余运算,p是数组)xx中某一个字符的ASCII值,f(p)是计算后的无符号整型值(注意:中间变量定义成整型变量),如果计算后f(p)值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则用 f(p)替代所对应的字符。 注意:部分源程序存放在test.C文件中,原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。

主观题和计算题请自行在草稿纸上作答

题目答案

【审题关键句】字符替代f(p)=p*11mod256,小于等于32或对应数字0-9不变,否则替换。 【解题思路】 本题类似第65套试题,通过审题可以发现主要是排序条件的设置要求有所不同,参考答案的第6行,修改if条件语句的设置即可。 【参考答案】

答案解析

暂无解析
解答题

接入Internet通常采用两种方法:①通过【 】直接与ISP连接;②连接已接入Internet的局域网。

主观题和计算题请自行在草稿纸上作答

题目答案

电话线路电话线路 解析:接入Internet通常采用两种方法:通过电话线路直接与ISP连接和连接已接入Internet的局域网。使用拨号接入方式时,选择合适的ISP是实现拨号上网的重要步骤。拨号上网首先要向Internet服务提供商 ISP申请一个合法的身份,即账号。ISP最基本的服务是:在你通过调制解调器拨打ISP提供的电话号码时,同样配置了调制解调器的ISP的服务器能够在电话线的另一端接通你的呼叫,与你的计算机建立起连接。因为ISP的服务器与Internet连接,所以你的计算机就通过ISP的服务器与I

答案解析

暂无解析
解答题

已知数据文件in.dat中存有300个四位数,并已调用读函数readDat把这些数存入数组a中,请编制一函数isValue,其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。最后main函数调用写函数writeDat把数组b中的数输出到out.dat文件中。 例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件忽略。 注意:部分源程序存在test.C文件中。 程序中已定义数组:a[300],b[300],已定义变量:cnt请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat和写函数writeDat的内容。

主观题和计算题请自行在草稿纸上作答

题目答案

【审题关键句】求素数的个数,存入数组,按从小到大的顺序排序。 【解题思路】 ①首先定义两个循环变量循环i、j和一个用于数据交换的整型变量tmp。 ②通过for循环依次读取数组中的300个数,其中,循环变量i从0开始每次加1,直到i<300停止循环;在每次循环中判断a[i]是否是素数,如果是素数,则把a[i]的值赋给数组b[cnt],同时数组下标变量cnt值加1。 ③在退出循环后,用两个for循环对数组b[]中元素进行两两比较,实现数组元素从小到大的排序,比较过程中通过整型变量tmp实现两个数的交换。

答案解析

暂无解析
解答题

编写函数jsValue(int t),它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) (n≥2) 最后调用函数writeDat读取l0个数据t,分别得出结果且把结果输出到文件out.dat中。 例如:当t=1000时,函数值为:1597。 注意:部分源程序存在test.c文件中。 请勿改动数据文件in.dat中的任何数据、主函数main和写函数writeDat的内容。

主观题和计算题请自行在草稿纸上作答

题目答案

【审题关键句】F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n2)。 【解题思路】 ①定义表示Fibonacci数列中第F(n-2)项的变量f0,第F(n-1)项的变量n,第F(n)项的变量f2。 ②当Fibonacci数列中第F(n)项的值f2小于t时,把数列当前第F(n-1)项的值n赋给f0,把数列当前第F(n)项的值f2赋给n,根据Fibonacci数列的递推关系,第n项的值等于第n-1项的值与第n-2项值的和,计算数列当前第n+1项的值f2= f0+n。依次循环,当f2的值大于

答案解析

暂无解析