在汇编中打印数组(nasm 64位)

时间:2017-11-02 14:59:44

标签: arrays loops assembly nasm

我是装配新手,我正在试图找出如何将数组打印到屏幕上。我有一个名为“Array”的数组,大小为10个元素。

这是我的其余代码:

section .data
    msg db "The array: "
    len equ $- msg
    Array   DB  '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'

section .text
global _start

_start:
    mov eax, 4
    mov ebx, 1

    mov ecx, msg            ;prints msg
    mov edx, len
    int 0x80

    jmp printArray          ;calls print array function


    jmp Exit                ;calls exit function

printArray:

    mov ebx, offset Array   ;address array with ebx
    mov ecx, 10             ; load counter with 10
    jmp Again               ; go to Again function
    ret

Again:
   mov eax, 4
   mov ebx, 1
   int 0x80
   inc ebx                 ;increments ebx to get next element in array
   dec ecx
                            ;;  compares the counter to 0
   cmp ecx, 0
   jnz Again

Exit:

    mov eax, 1
    mov ebx, 0
    int 0x80

它打印msg并构造数组,但我需要帮助循环遍历数组并将元素打印到屏幕上。

我希望这样一个简单的例子对于刚开始的人有用。 谢谢你的帮助!

0 个答案:

没有答案