简答题

为下列数据段中的数组编制一程序,调用题7.16的宏定义SUMMING,求出该数组中各元素之和。DATADD 101246,274365,843250,475536SUMDQ?

正确答案

程序如下:
SUMMING MACRO ARRAY,COUNT,RESULT
LOCAL ADDITION
MOV ESI,0
MOV ECX,COUNT
ADDITION:MOV EAX,ARRAY[ESI*4];;双字为4字节
ADD RESULT,EAX
ADC RESULT+4,0;;将进位加到结果的高位双字中
INC ESI
LOOP ADDITION
ENDM
.MODEL SMALL
.386
.DATA
DATADD101246,274365,843250,475536
SUMDQ?
.CODE
START:MOV AX,@DATA
MOV DS,AX
SUMMING DATA,4,SUM
MOV AX,4C00H
INT 21H
END START

答案解析

相似试题
  • 编制一程序,求两个数组对应的数据之差,并把结果存入新数组SUM之中。计算一直进行到两数之差为零或数组结束。将新数组的长度存于LEN单元中。

    简答题查看答案

  • 编写宏指令COMPSS,比较2个同长度的字符串str1和str2是否相等, 2个字符串的首地址和长度为变元。写出完整程序,在数据段中写出数据定义,在代码段中写出宏定义和宏调用。并处理若相等则显示‘MATCH’否则显示‘NOT MATCH’.

    简答题查看答案

  • 编制一程序,寻找一数组中第一个零。把第一零在数组中的相对偏移量送INDEX单元中,若无零数,则送全‘0’到INDEX单元中。

    简答题查看答案

  • 主程序和所调用的子程序在同一代码段中,子程序的属性定义为()。 

    单选题查看答案

  • 编写一个函数converse,将一维数组中的数逆序存放,不允许使用辅助数组。主函数输入原始数据,调用converse,实现逆置。并将原数组和逆置后的数组输出。

    简答题查看答案

  • 假设用下列的程序段来清楚数据段中的偏移地址0000H~2000H号字存储单元中的内容(即将0送到这些存储单元中去)。

    简答题查看答案

  • 假设用下列的程序段来清楚数据段中的偏移地址0000H~2000H号字存储单元中的内容(即将0送到这些存储单元中去)。

    简答题查看答案

  • 假设用下列的程序段来清楚数据段中的偏移地址0000H~2000H号字存储单元中的内容(即将0送到这些存储单元中去)。

    简答题查看答案

  • 对用数组存储的线性表(16,15,32,11,6,30),用快速排序算法进行由小到大排序,若排序下标范围为0~5,选择元素16作为支点,调用一趟快速排序算法后,元素16在数组中的下标位置为()

    填空题查看答案