汇编语言数组求和

定义数组, NUM DB 22,33,44,55,66
求和,保存到和变量SUM DW ?
显示和
显示原数据 只求程序 谢谢大神

DATAS SEGMENT
   num DB 22,33,44,55,66
   sum DW 5 dup(0)
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
   
    lea   si,num
    call add_sub
    mov [sum],ax
    call disp_sub 
    
    MOV AH,4CH
    INT 21H
    
 add_sub  proc          ;求和子程序
mov  cx, 5
mov  al,0
mov  ah,0
lp: add   al,[si]
adc   ah,0
inc   si
loop  lp
ret 
add_sub   endp

disp_sub   proc   near        ;显示字程序
;mov   ax,sum
mov   bl,10
mov   di,0

s:
mov   dx,0
cmp  ax,0
jz   r
mov ah,0
div    bl              ;商在al, 余数在ah
mov dl,ah
push   dx             ;保存余数(个位数)
inc di
loop s
   r:
    mov cx,di
    mov   ah,02H
    
s1: pop dx
add    dl,30H
int     21H             ;显示位数
loop s1

ret
disp_sub   endp

CODES ENDS
    END START

温馨提示:内容为网友见解,仅供参考
无其他回答

汇编语言,此程序是求4个数6,88,13,46的和,求解释
问题:1.程序执行到子程序时,当遇到 PROC,像C语言一样,直接跳过,执行主程序,也像C语言一样,子程序放在主程序后面得声明;PROC 和 ENDP,是定义“过程(也可以称为子程序)”的伪指令,它们确实不被CPU执行。过程,放在前面、后面均可,不用像C语言那样笨,放在后面,并不用在前面声明。2.主...

用ARM7汇编语言写一个求和,求余数,求最大最小值的代码!急用_百度知 ...
。首先应该有一个数据区,相当于一个数组,你可以首先对他们排序,,然后呢,自然的就有最大的数据和最小的数据在数组的两端了啊。。。然后,,把中间的数据加起来,就得到和。。然后再除以数的个数。,这里,,余数再转化为小数就可以了,这里,你可以将余数乘以10后再除以个数,,得到的商呢,就...

用8086汇编语言实现两个无符号32位二进制数相加,并显示结果。注:输入...
1 int 21h cmp al,20h je mexit1 cmp al,13 je mexit2 sub al,30h mov bh,0 mov bl,al mov di,bx ; === pop dx pop ax shl ax,1 rcl dx,1 mov bx,ax mov cx,dx shl ax,1 rcl dx,1 shl ax,1 rcl dx,1 ...

用汇编语言编写10个任意数相加求和的乘坐
用汇编语言编写10个任意数相加求和的程序: CODE SEGMENT ASSUME CS:CODE ORG 100H START: PUSH CS POP DS PUSH CS POP ES CALL INPUTNUM MOV AH,2 MOV DL,13 INT 21H ...

...数组对应元素之和为零时就停止求和(要使用汇编语言编写
maze[9][9]=0;\/\/起点和终点 越界了 int maze[9][9]; 这个是定义,访问的时候最多访问maze[8][8],越界就是访问了一个数组外的非法地址 --- for (i=1;i<10;i++){ for(j=1;j<10;j++){ x=(((double)rand()\/(double)RAND_MAX)*RANGE_MAX+RANGE_MIN);if(x%2)maze[i][j...

汇编语言 执行下面程序后 AXr内容是什么? 求高手解释一下每句的意思...
array可以理解为一个数组,共10个元素,10个元素的初始值是2 程序的功能就是对数组array的10个元素求和,结果保存在AX寄存器中 程序执行后AX=10*2=20=0014H(16进制)

count 是什么语句在汇编语言里,请高手回答,具体的分析一下下面程序的...
count 是什么语句在汇编语言里,--- COUNT 不是什么语句。COUNT 是自定义的变量名称,没有什么特别的含义。数学里面学过,a、b、c、x、y...,都是变量,自己随便起名。COUNT = 10,就是说 COUNT 这个变量等于 10。

汇编语言 编写一个求最大值、最小值、总和的程序
; 数组直接在数据段内初始化 ARRY DB 5, 6, 7, 8, 16, 4, 7 ;总和不能超出255 ARRY_LEN EQU $ - ARRY ; 避免了计算数据个数的麻烦 ;定义显示数据 D_MAX DB 13, 10, 'MAX = $'D_MIN DB 13, 10, 'MIN = $'D_SUM DB 13, 10, 'SUM = $'; 定...

用汇编语言再一个数组中找出所有奇数并求和
用cld 把DF设置成0 从左往右开始读取数组里的数 然后和1 and一下 结果是奇数就相加 偶数就开始新一次循环

...ARRAY 是数列的意思吗? SUM DB ? SUM是求和吗“ ?”是什么意思_百度...
这些都是基本的汇编语言啊。ARRAY 是数组的意思。SUM并不是和的意思,在SUM DB ? 这个语句里,SUM只是一个变量,?代表这个变量没有赋初始值。是字符串结束的标志,用来给程序作为检测结束用的。EQU就是赋值的意思。

相似回答