在程序集x86

时间:2016-04-01 22:27:27

标签: assembly x86

我刚刚开始使用汇编语言,我的任务是遍历和数组并添加每个数字而不是显示它,但是我似乎无法让它工作。如果有人可以解释,我试图理解我做错了什么。

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

1 个答案:

答案 0 :(得分:0)

看看有效的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,Buf - 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