早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

根据16位逻辑变量L的内容对内存单元中连续存放的十六个字符的数组SOURCE作如下处理: (1)若L的第

题目

根据16位逻辑变量L的内容对内存单元中连续存放的十六个字符的数组SOURCE作如下处理:

(1)若L的第i位为1,将SOURCE[i]的最高位置加偶校验位

(2)若L的第i位为0,SOURCE[i]不变

例如:L=0005 转换之前:67H,61H,4EH,38H……

转换之后:E7H,61H,4EH,38H……

部分程序已经在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 16

STAC SEGMENT STACK

DB 128 DUP (?)

STAC ENDS

DATA SEGMENT

L DW ?

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,L ; 数据区起始地址

LEA SI, NAME0 ; 原始数据文件名

MOV CX,2 + N ; 字节数

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

**** BEGIN ****

LEA SI, SOURCE

LEA DI, RESULT

MOV CX,N

MOV DX, (1)

LO: MOV AL, [SI]

(2) L,DX

JZ STORE

AND AL,AL

(3) STORE

(4)

STORE: MOV [DI],AL

INC SI

INC DI

(5)

LOOP LO

***** END *****

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

LEA SI, NAME1 ; 结果文件名

MOV CX,N ; 结果字节数

CALL SAVE ; 保存结果到文件

RET

&nbs

参考答案
正确答案:(1) 1 (2) TEST (3) JP (4) OR AL80H (5) SHR L1 或 SHL DX1
(1) 1 (2) TEST (3) JP (4) OR AL,80H (5) SHR L,1 或 SHL DX,1