【问题标题】:8086 program to find sum of Even numbers in a given series8086 程序查找给定系列中偶数的总和
【发布时间】:2020-02-23 00:30:46
【问题描述】:

我试图从 500 到 504 的内存中找到 5 个 EVEN 的总和。我无法获得所需的结果。你能帮我找出我的逻辑错误吗?

我正在尝试使用 8086 汇编语言来做到这一点

mov [500],4
mov [501],30
mov [502],15
mov [503],7
mov [504],98 
mov bl,00
mov si,500
mov cx,5

l1:
  mov dl,[si]
  test dl,01
  jnz next

; if even
  add dl,bl
  inc si
  loop l1
  jmp exit
; if odd
next: 
  inc si
  jmp l1
exit:
  mov ah,4ch
  int 21h 
  ret

【问题讨论】:

  • add dl,bl 被反转。如果您想在bl 中累积总和,则应为add bl, dlnext 部分也不会减少 cx。你也想要一个loop。您也可以共享该代码。 PS:学习使用你的模拟器单步执行代码。
  • @Jester 我无法控制两个标签的计数器值。请帮帮我:(

标签: assembly x86-16 emu8086


【解决方案1】:

S 东风

mov [501],30
mov [502],15
mov [503],7
mov [504],98 
mov bl,00
mov si,500
mov cx,5       
  l1:
  mov dl,[si]
  test dl,01
  jnz next  
; if even
  add bl,dl
  inc si
  jmp l2
; if odd 
next: 
  inc si
  jmp l2
  l2:
  dec cx;
  cmp cx,00
  jnz l1
  jmp exit
exit:
  mov ah,4ch
  int 21h
ret

终于做到了

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多