Loops 汇编语言中的循环

Loops 汇编语言中的循环,loops,assembly,x86,masm,irvine32,Loops,Assembly,X86,Masm,Irvine32,假设A={1,2,3,4}和B={2,3,4,5}是两个数组。我们如何使用循环来初始化它们?我们如何添加这些数组的相应元素,并使用循环将它们存储到第三个数组中?我的汇编程序是masm615 include irvine32.inc .data word ayyay1 5 dup(?) word ayyay2 5 dup(?) .code main proc top: ---------- ---------- loop top call dumpregs exit ma

假设A={1,2,3,4}和B={2,3,4,5}是两个数组。我们如何使用循环来初始化它们?我们如何添加这些数组的相应元素,并使用循环将它们存储到第三个数组中?我的汇编程序是masm615

include irvine32.inc

.data

word ayyay1 5 dup(?)

word ayyay2 5 dup(?)

.code

main proc

top:

----------

----------

loop top

call dumpregs

exit 

main endp   

end main

未经测试但具有普遍指导意义:

include irvine32.inc

.data

word ayyay1 5 dup(?)
word ayyay2 5 dup(?)

.code

main proc

  lea  edi, [ayyay1]
  lea  esi, [ayyay2]
  mov  ax, 1
  mov  bx, 2
  mov  cx, 4

top:
    mov word [edi],ax
    mov word [esi],bx
    inc ax 
    inc bx
    add edi,2  ; add to point to next word location
    add esi,2  ; add to point to next word location
loop top

call dumpregs

exit

main endp

end main

添加您尝试开发的代码,这样我们就可以了解您知道多少。您不需要使用循环,因为您知道数组中需要的值。为什么不直接用你所拥有的初始化ayyay1和ayyay2呢?是的,我知道我们可以不用循环来初始化它们,但我想知道“我们如何使用循环来初始化两个数组以及添加它们相应的元素”。谢谢。谢谢你抽出时间。但它也有很多错误。请帮助我使用无错误代码。
esi
edi
需要增加2。另外,如果有3个计数器,而只有1个计数器,这似乎有点过头了。@Micheal,我说这是一般的伪代码,并且鉴于OP似乎是初学者,我不打算在mov中引入地址偏移量。不过我会修正错误的,谢谢!主席先生,这是给许多语法错误。第5行(缺少运算符)、第6行(缺少运算符)、第12行(未定义符号)、第13行(未定义符号)、第19行(语法错误)、第20行(语法错误)。请放心,我知道答案。