m0_58152608 2021-06-11 08:51 采纳率: 100%
浏览 83
已采纳

数值求和问题怎么用汇编语言做了?

数值求和
提示输入数字;输入任意正整数数字int,点击Enter结束输入;输出“1+2+3+…+int”的值;点击Enter程序退出;

这个问题咋用最原始的汇编语言做了?实在是刚学学不明白,希望各位大佬帮帮我,或者给个思路也行,谢谢大家

  • 写回答

2条回答 默认 最新

  • 关注
    data segment
    d1 db 20 dup(0)
    data ends
    stack segment
    db 128 dup(0)
    stack ends
    code segment
    assume cs:code,ds:data,ss:stack
    start:
    mov ax,data
    mov ds,ax
    lea di,d1
    mov cx,5
    l0:
    mov ah,1 ;输入数为一位数字连续输入,多位数字时稍加改变即可
    int 21h
    mov [di],al
    inc di
    loop l0
    cld
    mov dl,0
    mov bx,000fh
    mov cx,5
    mov si,0
    l1:
    lodsb ;将ascii码值转换为二进制并相加
    and ax,bx
    add dl,al
    loop l1
    cmp dl,10
    jb b1
    mov ax,0
    mov al,dl
    cbw
    mov bl,10
    div bl
    add ah,30h ;讲二进制转换为ascii码
    add al,30h
    xchg al,ah
    mov bx,ax
    mov dl,ah
    mov ah,2
    int 21h
    mov dl,bl
    mov ah,2
    int 21h
    jmp b2
    b1:
    add dl,30h
    mov ah,2
    int 21h
    b2:
    mov ax,4c00h
    int 21h
    code ends
    end start

    下面的是1-100求和的

    DATA SEGMENT
          RESULT DB 4 DUP(?)
          DB 0DH,0AH,'$'
    DATA ENDS
    
    STACK SEGMENT STACK
          DB 100 DUP(?)
    STACK ENDS
    
    CODE SEGMENT
     ASSUME DS:DATA,SS:STACK,CS:CODE
     START:
     MOV AX,DATA
     MOV DS,AX
     MOV CX,100
     MOV AX,0
     NEXT:
     ADD AX,CX
     LOOP NEXT
     MOV DX,0
     MOV BX,10D
     DIV BX
     ADD DL,30H
     MOV RESULT[3],DL
     MOV DX,0
     DIV BX
     ADD DL,30H
     MOV RESULT[2],DL
     MOV DX,0
     DIV BX
     ADD DL,30H
     MOV RESULT[1],DL
     ADD AL,30H
     MOV RESULT[0],AL
     MOV AH,09H
     LEA DX,RESULT
     INT 21H
     MOV AH,4CH
     INT 21H
     CODE ENDS
     END START
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名