汇编里头,输入6个元素的数组的值,求和!----累加器

这篇博客展示了如何使用汇编语言编程,输入6个整数存储到数组中,然后通过累加器计算这些元素的总和,并将结果显示出来。主要涉及汇编里的数据段、栈段、代码段的定义,以及输入、输出和循环控制等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

data segment
ary  dw 10 dup(?)
sum  dw ?
temp  db 10 dup(?)
data ends

stacker segment stack
    dw 20 dup(?)
top label word
stacker ends

code segment
    assume cs:code,ds:data,ss:stacker

main proc near
 
    mov ax,data
    mov ds,ax
    mov ax,stacker
    mov ss,ax
    lea sp,top
    
    mov cx,6
    mov si,0
L1:
    xor bx,bx
    call near ptr input
    call near ptr line
    mov ary[si],bx
    add sum,bx
    add si,2
    loop L1

    
    mov ax,sum
    mov di,0
    mov cl,10
L2:
    div cl
    mov temp[di],ah
    cmp al,0
    je L3
    add di,2
    xor ah,ah
    jmp L2

L3:
    call near ptr print

    mov ah,4ch
    int 21h
main endp

input proc near
    push ax
    push dx
    push di

    mov di,10d

L4:
    mov ah,01h
    int 21h
    cmp al,0dh
    je L5
    cmp al,'0'
    jb L4
    cmp al,'9'
    ja L4
    sub al,30h
    xor ah,ah
    xchg ax,bx
    mul di
    xchg ax,bx
    add bx,ax
    jmp L4
    
L5:
    ;call near ptr line
    ;mov dx,bx
    ;add dl,30h
    ;mov ah,02h
    ;int 21h
   
    pop di
    pop dx
    pop ax
    ret
input endp


print proc near
    push di
    push dx
    push ax
 
L6:   
    mov dl,temp[di]
    add dl,30h
    mov ah,02h
    int 21h
    cmp di,0
    je L7
    sub di,2
    jmp L6

L7:
    pop ax
    pop dx
    pop di
    ret
print endp

line proc near
  push ax
  push dx
  mov dl,0dh
  mov ah,02h
  int 21h
  mov dl,0ah
  mov ah,02h
  int 21h
  pop dx
  pop ax
  ret
line endp

code ends
end main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值