[试题]

请编制程序,其功能是:从第0行第0列开始,依次取出N阶矩阵中对角线上的元素(字节型)并计算累加和(字型),然后将其存放在指定的内存区中。

例如:

内存中有:01H,01H,01H,02H,02H,02H,03ff,03H,03H

结果为: 01H,02H,03H,06H,00H

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

请填空BEGIN和END之间已经给出的一段源程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。

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

(试题程序)

E.XTRN LOAD:FAR, SAVE:FAR

N EQU 10

D.SEG SEGMENT

SOURCE DB N*10 DUP(?)

RESULT DB (N+2) DUP(0)

NAME0 DB 'INPUT.DAT',0

NAME1 DB 'OUTPUT.DAT',0

D.SEG ENDS

SSEG SEGMENT STACK

D.B 256 DUP (?)

SSEG ENDS

C.SEG SEGMENT

A.SSUME CS:CSEG, SS:SSEG, DS:DSEG

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DSEG

MOV DS,AX

MOV ES,AX

LEA DX, SOURCE

LEA SI,NAME0

MOV CX,N*10

C.ALL LOAD

******** BEGIN ********

LEA DI,RESULT

MOV CX,0

MOV DH,0 ;行

MOV DL,0 ;行

NEXT: MOV AL,N

MUL (1)

MOV BX,AX

MOV AL,DL(2)

MOV SI, AX ;列号送SI

MOV AL, (3) [BX+SI]

MOV [DI],AL

A.DD CL,AL(4)

INC DI

INC DH

INC DL

C.MP DL, (5)

JNE NEXT

MOV [DI],CX

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

LEA DX,RESULT

LEA &

参考答案与解析:

相关试题

请编制程序,其功能为:从SOURCE开始的内存区域存放着N个字节的有符号数。现找

[试题]请编制程序,其功能为:从SOURCE开始的内存区域存放着N个字节的有符号数。现找出最大的数,结果存放到RESULT 指示的,其后存放原N个数逻辑取反后的值。例如:数据为:09H,7EH,89H,F6H,17H……67H(N个数据)结果为:7EH (最大数),F6H,81H,76H,0CH,E8H……98H(原N个数的逻辑反)部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT 中读入从SOURCE开始的内存单元,运算结果要求从RESIULT开始存放,由SAVE 过程保存到OUTP

  • 查看答案
  • 给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第

    [主观题]给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。例如,有下列矩阵:1 2 3 4 51 2 3 4 51 2 3 4 5若k为2,程序执行结果为3 4 5 1 23 4 5 1 23 4 5 1 2请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!

  • 查看答案
  • 已知有一维数组A[0...m×n-1],若要对应为m行n列的矩阵,则下面的对应关系(),可将元素A[k](O≤<k≤<m×n)表示成矩阵的第i行、第j列的元素(0≤i≤m,0匀≤n)。

    [单选题]已知有一维数组A[0...m×n-1],若要对应为m行n列的矩阵,则下面的对应关系(),可将元素A[k](O≤<k≤<m×n)表示成矩阵的第i行、第j

  • 查看答案
  • 已知有一维数组A[0...m×n-1],若要对应为m行n列的矩阵,则下面的对应关系(),可将元素A[k](O≤<k≤<m×n)表示成矩阵的第i行、第j列的元素(0≤i≤m,0匀≤n)。

    [单选题]已知有一维数组A[0...m×n-1],若要对应为m行n列的矩阵,则下面的对应关系(),可将元素A[k](O≤<k≤<m×n)表示成矩阵的第i行、第j

  • 查看答案
  • 已知有一维数组A[0...m×n-1],若要对应为m行n列的矩阵,则下面的对应关系(),可将元素A[k](O≤<k≤<m×n)表示成矩阵的第i行、第j列的元素(0≤i≤m,0匀≤n)。

    [单选题]已知有一维数组A[0...m×n-1],若要对应为m行n列的矩阵,则下面的对应关系(),可将元素A[k](O≤<k≤<m×n)表示成矩阵的第i行、第j

  • 查看答案
  • 给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,则函数返回值为1;若不是,则函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上

    [问答题]给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,则函数返回值为1;若不是,则函数返回值为0。“幻方”

  • 查看答案
  • 设A是n阶矩阵,矩阵A的第1列的2倍加到第2列,得矩阵B,则以下选项中成立的是()。

    [单选题]设A是n阶矩阵,矩阵A的第1列的2倍加到第2列,得矩阵B,则以下选项中成立的是()。A.B的第1列的-2倍加到第2列得AB.B的第1行的-2倍加到第2

  • 查看答案
  • 设A是n阶矩阵,矩阵A的第1列的2倍加到第2列,得矩阵B,则以下选项中成立的是()。

    [单选题]设A是n阶矩阵,矩阵A的第1列的2倍加到第2列,得矩阵B,则以下选项中成立的是()。A.B的第1列的-2倍加到第2列得AB.B的第1行的-2倍加到第2

  • 查看答案
  • 请编制程序PROG1.ASM,其功能是:对10个无符号字节数据排序(升序),然后

    [试题]请编制程序PROG1.ASM,其功能是:对10个无符号字节数据排序(升序),然后剔除第一个数和最后一个数,并按四舍五入原则计算其余8个数据的算术平均值。将剩余的8个数据存入指定的内存区域中,其后存放平均值。例如:内存中有:1,5,4,0,7,9,2,6,8,3结果为:1,2,3,4,5,6,7,8,5部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件 OUTPUT1.DAT中。填空BE

  • 查看答案
  • 请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域存放着多个字

    [试题]请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域存放着多个字节的数据,其中有压缩BCD码和其他数据。现按下列编码规则进行编码:在每个压缩BCD码前面加两个字节前缀代码BEH和CCH,并在其后加两个字节后缀代码DDH和EDH;如果不是压缩BCD码,则该数据前后均加两个代码0DH和0EH。编码后的数据存放到RESULT指示的内存区域。例如:原信息为:12H,D9H,86H,54H,……结果为:BEH,CCH,12H,DDH,EDH,0DH,0EH,D9H,0DH,0EH,BEH,C

  • 查看答案
  • 请编制程序,其功能是:从第0行第0列开始,依次取出N阶矩阵中对角线上的元素(字节