assembly 在程序集x86中添加数组中的元素时循环遍历

mkh04yzy  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(71)

我刚刚开始在汇编语言,我的任务是通过循环和数组,并添加每个数字比显示它,但我似乎不能让它工作。我想知道我做错了什么,如果有人能解释的话。

this is my code
    .data

    num WORD 3, 5, 2, 7, 8, 6

    .code
    main PROC

    mov eax, 0
    mov ebx, 0
    mov ecx, 0

   mov eax, OFFSET num + TYPE num   
   mov ecx, [LENGTHOF num]  
   Lp:
      mov ebx, [ecx * TYPE num]
      add eax, ebx
   loop Lp

   exit 

   main ENDP

   END main
vawmfj5a

vawmfj5a1#

看看fasm窗口的例子,它可以工作(在控制台中打印31),希望你能从中得到一些有用的东西

include 'win32wxp.inc'

    .data

Num dd 3, 5, 2, 7, 8, 6
Buf db 16 dup (?)
Dum rd 1

    .code
Start:
    lea esi,[Num]
    mov ecx,LENGTHOF Num
    sub edx,edx
Lp: lodsd
    add edx,eax
    loop Lp

    invoke  wsprintf, addr Buf, '%d', edx
    invoke  AllocConsole
    invoke  WriteConsole,<invoke GetStdHandle,STD_OUTPUT_HANDLE>,Buf,<invoke lstrlen,addr Buf>,Dum,0
    invoke  Sleep,-1
.end Start

相关问题